205 lines
4.1 KiB
CoffeeScript
205 lines
4.1 KiB
CoffeeScript
{_} = require('underscore')
|
|
{Ability} = require('./data/abilities')
|
|
{Item} = require('./data/items')
|
|
{Attachment, Status} = require('./attachment')
|
|
|
|
module.exports = Priorities = {}
|
|
|
|
Priorities.beforeMove ?= [
|
|
# Things that should happen no matter what
|
|
Attachment.Pursuit
|
|
Attachment.Fling
|
|
Attachment.DestinyBond
|
|
|
|
# Order-dependent
|
|
Status.Freeze
|
|
Status.Sleep
|
|
Ability.Truant
|
|
Attachment.Flinch
|
|
Attachment.Disable
|
|
Attachment.HealBlock
|
|
Attachment.GravityPokemon
|
|
Attachment.Taunt
|
|
Attachment.ImprisonPrevention
|
|
Attachment.Confusion
|
|
Attachment.Attract
|
|
Status.Paralyze
|
|
|
|
# Things that should happen only if the move starts executing
|
|
Attachment.FocusPunch
|
|
Attachment.Recharge
|
|
Attachment.Metronome
|
|
Attachment.Grudge
|
|
Attachment.Rage
|
|
Attachment.Charging
|
|
Attachment.FuryCutter
|
|
Item.ChoiceBand
|
|
Item.ChoiceScarf
|
|
Item.ChoiceSpecs
|
|
Ability.MoldBreaker
|
|
Ability.Teravolt
|
|
Ability.Turboblaze
|
|
]
|
|
|
|
Priorities.switchIn ?= [
|
|
Attachment.BatonPass
|
|
|
|
# Order-dependent
|
|
Ability.Unnerve
|
|
Attachment.HealingWish
|
|
Attachment.LunarDance
|
|
Attachment.StealthRock
|
|
Attachment.Spikes
|
|
Attachment.ToxicSpikes
|
|
|
|
# TODO: Are these in the correct order?
|
|
Ability.AirLock
|
|
Ability.CloudNine
|
|
Ability.Chlorophyll
|
|
Ability.SwiftSwim
|
|
Ability.SandRush
|
|
Ability.Drizzle
|
|
Ability.Drought
|
|
Ability.SandStream
|
|
Ability.SnowWarning
|
|
Ability.MoldBreaker
|
|
Ability.Teravolt
|
|
Ability.Turboblaze
|
|
Ability.Anticipation
|
|
Ability.ArenaTrap
|
|
Ability.Download
|
|
Ability.Forewarn
|
|
Ability.Frisk
|
|
Ability.Imposter
|
|
Ability.Intimidate
|
|
Ability.Klutz
|
|
Ability.MagicBounce
|
|
Ability.MagnetPull
|
|
Ability.Pressure
|
|
Ability.ShadowTag
|
|
Ability.SlowStart
|
|
Ability.Trace
|
|
]
|
|
|
|
Priorities.endTurn ?= [
|
|
# Non-order-dependent
|
|
Attachment.AbilityCancel
|
|
Attachment.Flinch
|
|
Attachment.Roost
|
|
Attachment.MicleBerry
|
|
Attachment.LockOn
|
|
Attachment.Recharge
|
|
Attachment.Momentum
|
|
Attachment.MeFirst
|
|
Attachment.Charge
|
|
Attachment.ProtectCounter
|
|
Attachment.Protect
|
|
Attachment.Endure
|
|
Attachment.Pursuit
|
|
Attachment.Present
|
|
Attachment.MagicCoat
|
|
Attachment.EchoedVoice
|
|
Attachment.Rampage
|
|
Attachment.Fling
|
|
Attachment.DelayedAttack
|
|
Ability.SlowStart
|
|
|
|
# Order-dependent
|
|
Ability.RainDish
|
|
Ability.DrySkin
|
|
Ability.SolarPower
|
|
Ability.IceBody
|
|
|
|
# Team attachments
|
|
Attachment.FutureSight
|
|
Attachment.DoomDesire
|
|
Attachment.Wish
|
|
|
|
# TODO: Fire Pledge/Grass Pledge
|
|
Ability.ShedSkin
|
|
Ability.Hydration
|
|
Ability.Healer
|
|
Item.Leftovers
|
|
Item.BlackSludge
|
|
|
|
Attachment.AquaRing
|
|
Attachment.Ingrain
|
|
Attachment.LeechSeed
|
|
|
|
Status.Burn
|
|
Status.Toxic
|
|
Status.Poison
|
|
Ability.PoisonHeal
|
|
Attachment.Nightmare
|
|
|
|
Attachment.Curse
|
|
Attachment.Trap
|
|
Attachment.Taunt
|
|
Attachment.Encore
|
|
Attachment.Disable
|
|
Attachment.MagnetRise
|
|
Attachment.Telekinesis
|
|
Attachment.HealBlock
|
|
Attachment.Embargo
|
|
Attachment.Yawn
|
|
Attachment.PerishSong
|
|
Attachment.Reflect
|
|
Attachment.LightScreen
|
|
Attachment.Screen
|
|
# Attachment.Mist
|
|
Attachment.Safeguard
|
|
Attachment.Tailwind
|
|
Attachment.LuckyChant
|
|
# TODO: Pledge moves
|
|
Attachment.Gravity
|
|
Attachment.GravityPokemon
|
|
Attachment.TrickRoom
|
|
# Attachment.WonderRoom
|
|
# Attachment.MagicRoom
|
|
Attachment.Uproar
|
|
Ability.SpeedBoost
|
|
Ability.BadDreams
|
|
Ability.Harvest
|
|
Ability.Moody
|
|
Item.ToxicOrb
|
|
Item.FlameOrb
|
|
Item.StickyBarb
|
|
# Ability.ZenMode
|
|
]
|
|
|
|
Priorities.shouldBlockExecution ?= [
|
|
# Type-immunity/Levitate (Move#use)
|
|
# Wide Guard/Quick Guard
|
|
Attachment.Protect
|
|
Attachment.MagicCoat
|
|
# TODO: Reimplement Magic Bounce as its own thing
|
|
Ability.DrySkin
|
|
Ability.FlashFire
|
|
Ability.Lightningrod
|
|
Ability.MotorDrive
|
|
Ability.SapSipper
|
|
Ability.Soundproof
|
|
Ability.StormDrain
|
|
Ability.Telepathy
|
|
Ability.VoltAbsorb
|
|
Ability.WaterAbsorb
|
|
Ability.WonderGuard
|
|
Attachment.Ingrain
|
|
Attachment.Charging
|
|
Attachment.SmackDown
|
|
Attachment.Substitute
|
|
]
|
|
|
|
Priorities.isImmune ?= [
|
|
Attachment.GravityPokemon # Gravity overrides Ground-type immunities.
|
|
Attachment.Ingrain
|
|
Attachment.SmackDown
|
|
Item.IronBall
|
|
Attachment.Telekinesis
|
|
Ability.Levitate
|
|
Attachment.MagnetRise
|
|
Item.AirBalloon
|
|
Attachment.Identify
|
|
Ability.Soundproof
|
|
]
|