summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--constants.asm2
-rw-r--r--constants/battle_constants.asm160
-rw-r--r--constants/item_constants.asm6
-rw-r--r--constants/move_effect_constants.asm159
-rw-r--r--data/moves/effects.asm2077
-rw-r--r--data/moves/effects_pointers.asm159
-rw-r--r--macros.asm2
-rwxr-xr-xmacros/enum.asm10
-rw-r--r--macros/scripts/battle_commands.asm (renamed from macros/move_effect.asm)26
-rw-r--r--main.asm5
10 files changed, 2417 insertions, 189 deletions
diff --git a/constants.asm b/constants.asm
index 7b64627d..bc74d1f2 100644
--- a/constants.asm
+++ b/constants.asm
@@ -33,7 +33,7 @@ INCLUDE "constants/mart_constants.asm"
INCLUDE "constants/menu_constants.asm"
INCLUDE "constants/mobile_constants.asm"
INCLUDE "constants/move_constants.asm"
-;INCLUDE "constants/move_effect_constants.asm"
+INCLUDE "constants/move_effect_constants.asm"
INCLUDE "constants/music_constants.asm"
INCLUDE "constants/npc_trade_constants.asm"
INCLUDE "constants/phone_constants.asm"
diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm
index 804f223c..99d86e56 100644
--- a/constants/battle_constants.asm
+++ b/constants/battle_constants.asm
@@ -162,166 +162,6 @@ SUBSTATUS_CURLED EQU 0
const WEATHER_SANDSTORM_END
-; move effects
- const_def
- const EFFECT_NORMAL_HIT
- const EFFECT_SLEEP
- const EFFECT_POISON_HIT
- const EFFECT_LEECH_HIT
- const EFFECT_BURN_HIT
- const EFFECT_FREEZE_HIT
- const EFFECT_PARALYZE_HIT
- const EFFECT_EXPLOSION
- const EFFECT_DREAM_EATER
- const EFFECT_MIRROR_MOVE
- const EFFECT_ATTACK_UP
- const EFFECT_DEFENSE_UP
- const EFFECT_SPEED_UP
- const EFFECT_SP_ATK_UP
- const EFFECT_SP_DEF_UP
- const EFFECT_ACCURACY_UP
- const EFFECT_EVASION_UP
- const EFFECT_ALWAYS_HIT
- const EFFECT_ATTACK_DOWN
- const EFFECT_DEFENSE_DOWN
- const EFFECT_SPEED_DOWN
- const EFFECT_SP_ATK_DOWN
- const EFFECT_SP_DEF_DOWN
- const EFFECT_ACCURACY_DOWN
- const EFFECT_EVASION_DOWN
- const EFFECT_HAZE
- const EFFECT_BIDE
- const EFFECT_RAMPAGE
- const EFFECT_WHIRLWIND
- const EFFECT_MULTI_HIT
- const EFFECT_CONVERSION
- const EFFECT_FLINCH_HIT
- const EFFECT_HEAL
- const EFFECT_TOXIC
- const EFFECT_PAY_DAY
- const EFFECT_LIGHT_SCREEN
- const EFFECT_TRI_ATTACK
- const EFFECT_UNUSED_25
- const EFFECT_OHKO
- const EFFECT_RAZOR_WIND
- const EFFECT_SUPER_FANG
- const EFFECT_STATIC_DAMAGE
- const EFFECT_BIND
- const EFFECT_UNUSED_2B
- const EFFECT_DOUBLE_HIT
- const EFFECT_JUMP_KICK
- const EFFECT_MIST
- const EFFECT_FOCUS_ENERGY
- const EFFECT_RECOIL_HIT
- const EFFECT_CONFUSE
- const EFFECT_ATTACK_UP_2
- const EFFECT_DEFENSE_UP_2
- const EFFECT_SPEED_UP_2
- const EFFECT_SP_ATK_UP_2
- const EFFECT_SP_DEF_UP_2
- const EFFECT_ACCURACY_UP_2
- const EFFECT_EVASION_UP_2
- const EFFECT_TRANSFORM
- const EFFECT_ATTACK_DOWN_2
- const EFFECT_DEFENSE_DOWN_2
- const EFFECT_SPEED_DOWN_2
- const EFFECT_SP_ATK_DOWN_2
- const EFFECT_SP_DEF_DOWN_2
- const EFFECT_ACCURACY_DOWN_2
- const EFFECT_EVASION_DOWN_2
- const EFFECT_REFLECT
- const EFFECT_POISON
- const EFFECT_PARALYZE
- const EFFECT_ATTACK_DOWN_HIT
- const EFFECT_DEFENSE_DOWN_HIT
- const EFFECT_SPEED_DOWN_HIT
- const EFFECT_SP_ATK_DOWN_HIT
- const EFFECT_SP_DEF_DOWN_HIT
- const EFFECT_ACCURACY_DOWN_HIT
- const EFFECT_EVASION_DOWN_HIT
- const EFFECT_SKY_ATTACK
- const EFFECT_CONFUSE_HIT
- const EFFECT_TWINEEDLE
- const EFFECT_UNUSED_4E
- const EFFECT_SUBSTITUTE
- const EFFECT_HYPER_BEAM
- const EFFECT_RAGE
- const EFFECT_MIMIC
- const EFFECT_METRONOME
- const EFFECT_LEECH_SEED
- const EFFECT_SPLASH
- const EFFECT_DISABLE
- const EFFECT_LEVEL_DAMAGE
- const EFFECT_PSYWAVE
- const EFFECT_COUNTER
- const EFFECT_ENCORE
- const EFFECT_PAIN_SPLIT
- const EFFECT_SNORE
- const EFFECT_CONVERSION2
- const EFFECT_LOCK_ON
- const EFFECT_SKETCH
- const EFFECT_DEFROST_OPPONENT
- const EFFECT_SLEEP_TALK
- const EFFECT_DESTINY_BOND
- const EFFECT_REVERSAL
- const EFFECT_SPITE
- const EFFECT_FALSE_SWIPE
- const EFFECT_HEAL_BELL
- const EFFECT_PRIORITY_HIT
- const EFFECT_TRIPLE_KICK
- const EFFECT_THIEF
- const EFFECT_MEAN_LOOK
- const EFFECT_NIGHTMARE
- const EFFECT_FLAME_WHEEL
- const EFFECT_CURSE
- const EFFECT_UNUSED_6E
- const EFFECT_PROTECT
- const EFFECT_SPIKES
- const EFFECT_FORESIGHT
- const EFFECT_PERISH_SONG
- const EFFECT_SANDSTORM
- const EFFECT_ENDURE
- const EFFECT_ROLLOUT
- const EFFECT_SWAGGER
- const EFFECT_FURY_CUTTER
- const EFFECT_ATTRACT
- const EFFECT_RETURN
- const EFFECT_PRESENT
- const EFFECT_FRUSTRATION
- const EFFECT_SAFEGUARD
- const EFFECT_SACRED_FIRE
- const EFFECT_MAGNITUDE
- const EFFECT_BATON_PASS
- const EFFECT_PURSUIT
- const EFFECT_RAPID_SPIN
- const EFFECT_UNUSED_82
- const EFFECT_UNUSED_83
- const EFFECT_MORNING_SUN
- const EFFECT_SYNTHESIS
- const EFFECT_MOONLIGHT
- const EFFECT_HIDDEN_POWER
- const EFFECT_RAIN_DANCE
- const EFFECT_SUNNY_DAY
- const EFFECT_STEEL_WING
- const EFFECT_METAL_CLAW
- const EFFECT_ANCIENTPOWER
- const EFFECT_FAKE_OUT
- const EFFECT_BELLY_DRUM
- const EFFECT_PSYCH_UP
- const EFFECT_MIRROR_COAT
- const EFFECT_SKULL_BASH
- const EFFECT_TWISTER
- const EFFECT_EARTHQUAKE
- const EFFECT_FUTURE_SIGHT
- const EFFECT_GUST
- const EFFECT_STOMP
- const EFFECT_SOLARBEAM
- const EFFECT_THUNDER
- const EFFECT_TELEPORT
- const EFFECT_BEAT_UP
- const EFFECT_FLY
- const EFFECT_DEFENSE_CURL
-
; Battle vars used in home/battle.asm
const_def
const PLAYER_SUBSTATUS_1
diff --git a/constants/item_constants.asm b/constants/item_constants.asm
index 299b59a4..5bdbc959 100644
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -202,8 +202,7 @@ if !DEF(TM01)
TM01 EQU const_value
enum_start 1
endc
- define _\@_1, "TM_\1"
- const _\@_1
+ const TM_\1
enum \1_TMNUM
ENDM
@@ -266,8 +265,7 @@ add_hm: MACRO
if !DEF(HM01)
HM01 EQU const_value
endc
- define _\@_1, "HM_\1"
- const _\@_1
+ const HM_\1
enum \1_TMNUM
ENDM
diff --git a/constants/move_effect_constants.asm b/constants/move_effect_constants.asm
new file mode 100644
index 00000000..0ca97f38
--- /dev/null
+++ b/constants/move_effect_constants.asm
@@ -0,0 +1,159 @@
+; MoveEffectsPointers indexes (see data/moves/effects_pointers.asm)
+ const_def
+ const EFFECT_NORMAL_HIT
+ const EFFECT_SLEEP
+ const EFFECT_POISON_HIT
+ const EFFECT_LEECH_HIT
+ const EFFECT_BURN_HIT
+ const EFFECT_FREEZE_HIT
+ const EFFECT_PARALYZE_HIT
+ const EFFECT_SELFDESTRUCT
+ const EFFECT_DREAM_EATER
+ const EFFECT_MIRROR_MOVE
+ const EFFECT_ATTACK_UP
+ const EFFECT_DEFENSE_UP
+ const EFFECT_SPEED_UP
+ const EFFECT_SP_ATK_UP
+ const EFFECT_SP_DEF_UP
+ const EFFECT_ACCURACY_UP
+ const EFFECT_EVASION_UP
+ const EFFECT_ALWAYS_HIT
+ const EFFECT_ATTACK_DOWN
+ const EFFECT_DEFENSE_DOWN
+ const EFFECT_SPEED_DOWN
+ const EFFECT_SP_ATK_DOWN
+ const EFFECT_SP_DEF_DOWN
+ const EFFECT_ACCURACY_DOWN
+ const EFFECT_EVASION_DOWN
+ const EFFECT_RESET_STATS
+ const EFFECT_BIDE
+ const EFFECT_RAMPAGE
+ const EFFECT_FORCE_SWITCH
+ const EFFECT_MULTI_HIT
+ const EFFECT_CONVERSION
+ const EFFECT_FLINCH_HIT
+ const EFFECT_HEAL
+ const EFFECT_TOXIC
+ const EFFECT_PAY_DAY
+ const EFFECT_LIGHT_SCREEN
+ const EFFECT_TRI_ATTACK
+ const EFFECT_UNUSED_25
+ const EFFECT_OHKO
+ const EFFECT_RAZOR_WIND
+ const EFFECT_SUPER_FANG
+ const EFFECT_STATIC_DAMAGE
+ const EFFECT_TRAP_TARGET
+ const EFFECT_UNUSED_2B
+ const EFFECT_DOUBLE_HIT
+ const EFFECT_JUMP_KICK
+ const EFFECT_MIST
+ const EFFECT_FOCUS_ENERGY
+ const EFFECT_RECOIL_HIT
+ const EFFECT_CONFUSE
+ const EFFECT_ATTACK_UP_2
+ const EFFECT_DEFENSE_UP_2
+ const EFFECT_SPEED_UP_2
+ const EFFECT_SP_ATK_UP_2
+ const EFFECT_SP_DEF_UP_2
+ const EFFECT_ACCURACY_UP_2
+ const EFFECT_EVASION_UP_2
+ const EFFECT_TRANSFORM
+ const EFFECT_ATTACK_DOWN_2
+ const EFFECT_DEFENSE_DOWN_2
+ const EFFECT_SPEED_DOWN_2
+ const EFFECT_SP_ATK_DOWN_2
+ const EFFECT_SP_DEF_DOWN_2
+ const EFFECT_ACCURACY_DOWN_2
+ const EFFECT_EVASION_DOWN_2
+ const EFFECT_REFLECT
+ const EFFECT_POISON
+ const EFFECT_PARALYZE
+ const EFFECT_ATTACK_DOWN_HIT
+ const EFFECT_DEFENSE_DOWN_HIT
+ const EFFECT_SPEED_DOWN_HIT
+ const EFFECT_SP_ATK_DOWN_HIT
+ const EFFECT_SP_DEF_DOWN_HIT
+ const EFFECT_ACCURACY_DOWN_HIT
+ const EFFECT_EVASION_DOWN_HIT
+ const EFFECT_SKY_ATTACK
+ const EFFECT_CONFUSE_HIT
+ const EFFECT_POISON_MULTI_HIT
+ const EFFECT_UNUSED_4E
+ const EFFECT_SUBSTITUTE
+ const EFFECT_HYPER_BEAM
+ const EFFECT_RAGE
+ const EFFECT_MIMIC
+ const EFFECT_METRONOME
+ const EFFECT_LEECH_SEED
+ const EFFECT_SPLASH
+ const EFFECT_DISABLE
+ const EFFECT_LEVEL_DAMAGE
+ const EFFECT_PSYWAVE
+ const EFFECT_COUNTER
+ const EFFECT_ENCORE
+ const EFFECT_PAIN_SPLIT
+ const EFFECT_SNORE
+ const EFFECT_CONVERSION2
+ const EFFECT_LOCK_ON
+ const EFFECT_SKETCH
+ const EFFECT_DEFROST_OPPONENT
+ const EFFECT_SLEEP_TALK
+ const EFFECT_DESTINY_BOND
+ const EFFECT_REVERSAL
+ const EFFECT_SPITE
+ const EFFECT_FALSE_SWIPE
+ const EFFECT_HEAL_BELL
+ const EFFECT_PRIORITY_HIT
+ const EFFECT_TRIPLE_KICK
+ const EFFECT_THIEF
+ const EFFECT_MEAN_LOOK
+ const EFFECT_NIGHTMARE
+ const EFFECT_FLAME_WHEEL
+ const EFFECT_CURSE
+ const EFFECT_UNUSED_6E
+ const EFFECT_PROTECT
+ const EFFECT_SPIKES
+ const EFFECT_FORESIGHT
+ const EFFECT_PERISH_SONG
+ const EFFECT_SANDSTORM
+ const EFFECT_ENDURE
+ const EFFECT_ROLLOUT
+ const EFFECT_SWAGGER
+ const EFFECT_FURY_CUTTER
+ const EFFECT_ATTRACT
+ const EFFECT_RETURN
+ const EFFECT_PRESENT
+ const EFFECT_FRUSTRATION
+ const EFFECT_SAFEGUARD
+ const EFFECT_SACRED_FIRE
+ const EFFECT_MAGNITUDE
+ const EFFECT_BATON_PASS
+ const EFFECT_PURSUIT
+ const EFFECT_RAPID_SPIN
+ const EFFECT_UNUSED_82
+ const EFFECT_UNUSED_83
+ const EFFECT_MORNING_SUN
+ const EFFECT_SYNTHESIS
+ const EFFECT_MOONLIGHT
+ const EFFECT_HIDDEN_POWER
+ const EFFECT_RAIN_DANCE
+ const EFFECT_SUNNY_DAY
+ const EFFECT_DEFENSE_UP_HIT
+ const EFFECT_ATTACK_UP_HIT
+ const EFFECT_ALL_UP_HIT
+ const EFFECT_FAKE_OUT
+ const EFFECT_BELLY_DRUM
+ const EFFECT_PSYCH_UP
+ const EFFECT_MIRROR_COAT
+ const EFFECT_SKULL_BASH
+ const EFFECT_TWISTER
+ const EFFECT_EARTHQUAKE
+ const EFFECT_FUTURE_SIGHT
+ const EFFECT_GUST
+ const EFFECT_STOMP
+ const EFFECT_SOLARBEAM
+ const EFFECT_THUNDER
+ const EFFECT_TELEPORT
+ const EFFECT_BEAT_UP
+ const EFFECT_FLY
+ const EFFECT_DEFENSE_CURL
diff --git a/data/moves/effects.asm b/data/moves/effects.asm
new file mode 100644
index 00000000..8e5b5c17
--- /dev/null
+++ b/data/moves/effects.asm
@@ -0,0 +1,2077 @@
+INCLUDE "data/moves/effects_pointers.asm"
+
+MoveEffects: ; used only for BANK(MoveEffects)
+
+NormalHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+DoSleep:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ checksafeguard
+ sleeptarget
+ endmove
+
+PoisonHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ poisontarget
+ endmove
+
+LeechHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ draintarget
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+BurnHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ burntarget
+ endmove
+
+FreezeHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ freezetarget
+ endmove
+
+ParalyzeHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ paralyzetarget
+ endmove
+
+Selfdestruct:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ selfdestruct
+ moveanimnosub
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+DreamEater:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ eatdream
+ checkfaint
+ buildopponentrage
+ endmove
+
+MirrorMove:
+ checkobedience
+ usedmovetext
+ doturn
+ mirrormove
+ endmove
+
+AttackUp:
+ checkobedience
+ usedmovetext
+ doturn
+ attackup
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
+ statupfailtext
+ endmove
+
+DefenseUp:
+ checkobedience
+ usedmovetext
+ doturn
+ defenseup
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
+ statupfailtext
+ endmove
+
+SpeedUp:
+ checkobedience
+ usedmovetext
+ doturn
+ speedup
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
+ statupfailtext
+ endmove
+
+SpecialAttackUp:
+ checkobedience
+ usedmovetext
+ doturn
+ specialattackup
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
+ statupfailtext
+ endmove
+
+SpecialDefenseUp:
+ checkobedience
+ usedmovetext
+ doturn
+ specialdefenseup
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
+ statupfailtext
+ endmove
+
+AccuracyUp:
+ checkobedience
+ usedmovetext
+ doturn
+ accuracyup
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
+ statupfailtext
+ endmove
+
+EvasionUp:
+ checkobedience
+ usedmovetext
+ doturn
+ lowersub
+ evasionup
+ statupanim
+ lowersubnoanim
+ raisesub
+ statupmessage
+ statupfailtext
+ endmove
+
+AttackUp2:
+ checkobedience
+ usedmovetext
+ doturn
+ attackup2
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
+ statupfailtext
+ endmove
+
+DefenseUp2:
+ checkobedience
+ usedmovetext
+ doturn
+ defenseup2
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
+ statupfailtext
+ endmove
+
+SpeedUp2:
+ checkobedience
+ usedmovetext
+ doturn
+ speedup2
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
+ statupfailtext
+ endmove
+
+SpecialAttackUp2:
+ checkobedience
+ usedmovetext
+ doturn
+ specialattackup2
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
+ statupfailtext
+ endmove
+
+SpecialDefenseUp2:
+ checkobedience
+ usedmovetext
+ doturn
+ specialdefenseup2
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
+ statupfailtext
+ endmove
+
+AccuracyUp2:
+ checkobedience
+ usedmovetext
+ doturn
+ accuracyup2
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
+ statupfailtext
+ endmove
+
+EvasionUp2:
+ checkobedience
+ usedmovetext
+ doturn
+ evasionup2
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
+ statupfailtext
+ endmove
+
+AttackDown:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ attackdown
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
+ statdownfailtext
+ endmove
+
+DefenseDown:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ defensedown
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
+ statdownfailtext
+ endmove
+
+SpeedDown:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ speeddown
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
+ statdownfailtext
+ endmove
+
+SpecialAttackDown:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ specialattackdown
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
+ statdownfailtext
+ endmove
+
+SpecialDefenseDown:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ specialdefensedown
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
+ statdownfailtext
+ endmove
+
+AccuracyDown:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ accuracydown
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
+ statdownfailtext
+ endmove
+
+EvasionDown:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ evasiondown
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
+ statdownfailtext
+ endmove
+
+AttackDown2:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ attackdown2
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
+ statdownfailtext
+ endmove
+
+DefenseDown2:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ defensedown2
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
+ statdownfailtext
+ endmove
+
+SpeedDown2:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ speeddown2
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
+ statdownfailtext
+ endmove
+
+SpecialAttackDown2:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ specialattackdown2
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
+ statdownfailtext
+ endmove
+
+SpecialDefenseDown2:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ specialdefensedown2
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
+ statdownfailtext
+ endmove
+
+AccuracyDown2:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ accuracydown2
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
+ statdownfailtext
+ endmove
+
+EvasionDown2:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ evasiondown2
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
+ statdownfailtext
+ endmove
+
+AttackDownHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ attackdown
+ statdownmessage
+ endmove
+
+DefenseDownHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ effectchance ; bug: duplicate effectchance shouldn't be here
+ defensedown
+ statdownmessage
+ endmove
+
+SpeedDownHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ speeddown
+ statdownmessage
+ endmove
+
+SpecialAttackDownHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ specialattackdown
+ statdownmessage
+ endmove
+
+SpecialDefenseDownHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ specialdefensedown
+ statdownmessage
+ endmove
+
+AccuracyDownHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ accuracydown
+ statdownmessage
+ endmove
+
+EvasionDownHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ evasiondown
+ statdownmessage
+ endmove
+
+DefenseUpHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ defenseup
+ statupmessage
+ endmove
+
+AttackUpHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ attackup
+ statupmessage
+ endmove
+
+AllUpHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ allstatsup
+ endmove
+
+PayDay:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ payday
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+Conversion:
+ checkobedience
+ usedmovetext
+ doturn
+ conversion
+ endmove
+
+ResetStats:
+ checkobedience
+ usedmovetext
+ doturn
+ resetstats
+ endmove
+
+Bide:
+ storeenergy
+ checkobedience
+ doturn
+ usedmovetext
+ unleashenergy
+ resettypematchup
+ checkhit
+ moveanim
+ bidefailtext
+ applydamage
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+Rampage:
+ checkrampage
+ checkobedience
+ doturn
+ rampage
+ usedmovetext
+ checkhit
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ clearmissdamage
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+ForceSwitch:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ forceswitch
+ endmove
+
+MultiHit:
+ checkobedience
+ usedmovetext
+ doturn
+ startloop
+ lowersub
+ checkhit
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ clearmissdamage
+ moveanimnosub
+ failuretext
+ applydamage
+ criticaltext
+ cleartext
+ supereffectivelooptext
+ checkfaint
+ buildopponentrage
+ endloop
+ raisesub
+ kingsrock
+ endmove
+
+PoisonMultiHit:
+ checkobedience
+ usedmovetext
+ doturn
+ startloop
+ lowersub
+ checkhit
+ effectchance
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ clearmissdamage
+ moveanimnosub
+ failuretext
+ applydamage
+ criticaltext
+ cleartext
+ supereffectivelooptext
+ checkfaint
+ buildopponentrage
+ endloop
+ raisesub
+ kingsrock
+ poisontarget
+ endmove
+
+FlinchHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ flinchtarget
+ endmove
+
+OHKOHit:
+ checkobedience
+ usedmovetext
+ doturn
+ stab
+ ohko
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ endmove
+
+RecoilHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ recoil
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+Mist:
+ checkobedience
+ usedmovetext
+ doturn
+ mist
+ endmove
+
+FocusEnergy:
+ checkobedience
+ usedmovetext
+ doturn
+ focusenergy
+ endmove
+
+DoConfuse:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ checksafeguard
+ confuse
+ endmove
+
+ConfuseHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ confusetarget
+ endmove
+
+Heal:
+ checkobedience
+ usedmovetext
+ doturn
+ heal
+ endmove
+
+Transform:
+ checkobedience
+ usedmovetext
+ doturn
+ transform
+ endmove
+
+LightScreen:
+Reflect:
+ checkobedience
+ usedmovetext
+ doturn
+ screen
+ endmove
+
+TriAttack:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ tristatuschance
+ endmove
+
+Toxic:
+DoPoison:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ stab
+ checksafeguard
+ poison
+ endmove
+
+DoParalyze:
+ checkobedience
+ usedmovetext
+ doturn
+ stab
+ checkhit
+ checksafeguard
+ paralyze
+ endmove
+
+SkyAttack:
+ checkcharge
+ checkobedience
+ doturn
+ charge
+ usedmovetext
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ flinchtarget
+ kingsrock
+ endmove
+
+Substitute:
+ checkobedience
+ usedmovetext
+ doturn
+ substitute
+ endmove
+
+HyperBeam:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ rechargenextturn
+ checkfaint
+ buildopponentrage
+ endmove
+
+Rage:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ checkhit
+ ragedamage
+ damagevariation
+ moveanim
+ failuretext
+ rage
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+Mimic:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ mimic
+ endmove
+
+Metronome:
+ checkobedience
+ usedmovetext
+ doturn
+ metronome
+ endmove
+
+LeechSeed:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ leechseed
+ endmove
+
+Splash:
+ checkobedience
+ usedmovetext
+ doturn
+ splash
+ endmove
+
+Disable:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ disable
+ endmove
+
+RazorWind:
+ checkcharge
+ checkobedience
+ doturn
+ charge
+ usedmovetext
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+Fly:
+ checkcharge
+ checkobedience
+ doturn
+ charge
+ usedmovetext
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ moveanimnosub
+ raisesub
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+TrapTarget:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ clearmissdamage
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ traptarget
+ endmove
+
+SuperFang:
+Psywave:
+StaticDamage:
+ checkobedience
+ usedmovetext
+ doturn
+ constantdamage
+ checkhit
+ resettypematchup
+ moveanim
+ failuretext
+ applydamage
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+Reversal:
+ checkobedience
+ usedmovetext
+ doturn
+ constantdamage
+ stab
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+Counter:
+ checkobedience
+ usedmovetext
+ doturn
+ counter
+ moveanim
+ failuretext
+ applydamage
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+Encore:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ encore
+ endmove
+
+PainSplit:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ painsplit
+ endmove
+
+Snore:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ snore
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ flinchtarget
+ kingsrock
+ endmove
+
+Conversion2:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ conversion2
+ endmove
+
+LockOn:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ lockon
+ endmove
+
+Sketch:
+ checkobedience
+ usedmovetext
+ doturn
+ sketch
+ endmove
+
+DefrostOpponent:
+ checkobedience
+ usedmovetext
+ doturn
+ defrostopponent
+ endmove
+
+SleepTalk:
+ checkobedience
+ usedmovetext
+ doturn
+ sleeptalk
+ endmove
+
+DestinyBond:
+ checkobedience
+ usedmovetext
+ doturn
+ destinybond
+ endmove
+
+Spite:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ spite
+ endmove
+
+FalseSwipe:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ falseswipe
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+HealBell:
+ checkobedience
+ usedmovetext
+ doturn
+ healbell
+ endmove
+
+TripleKick:
+ checkobedience
+ usedmovetext
+ doturn
+ startloop
+ lowersub
+ checkhit
+ critical
+ damagestats
+ damagecalc
+ triplekick
+ stab
+ damagevariation
+ clearmissdamage
+ moveanimnosub
+ failuretext
+ applydamage
+ criticaltext
+ cleartext
+ supereffectivelooptext
+ checkfaint
+ buildopponentrage
+ kickcounter
+ endloop
+ raisesub
+ kingsrock
+ endmove
+
+Thief:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ thief
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+MeanLook:
+ checkobedience
+ usedmovetext
+ doturn
+ arenatrap
+ endmove
+
+Nightmare:
+ checkobedience
+ usedmovetext
+ doturn
+ nightmare
+ endmove
+
+FlameWheel:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ defrost
+ checkfaint
+ buildopponentrage
+ burntarget
+ endmove
+
+Curse:
+ checkobedience
+ usedmovetext
+ doturn
+ curse
+ endmove
+
+Protect:
+ checkobedience
+ usedmovetext
+ doturn
+ protect
+ endmove
+
+Spikes:
+ checkobedience
+ usedmovetext
+ doturn
+ spikes
+ endmove
+
+Foresight:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ foresight
+ endmove
+
+PerishSong:
+ checkobedience
+ usedmovetext
+ doturn
+ perishsong
+ endmove
+
+Sandstorm:
+ checkobedience
+ usedmovetext
+ doturn
+ startsandstorm
+ endmove
+
+Endure:
+ checkobedience
+ usedmovetext
+ doturn
+ endure
+ endmove
+
+Rollout:
+ checkcurl
+ checkobedience
+ doturn
+ usedmovetext
+ critical
+ damagestats
+ damagecalc
+ stab
+ checkhit
+ rolloutpower
+ damagevariation
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+Swagger:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ switchturn
+ attackup2
+ switchturn
+ lowersub
+ statupanim
+ raisesub
+ failuretext
+ switchturn
+ statupmessage
+ switchturn
+ confusetarget
+ endmove
+
+FuryCutter:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ checkhit
+ furycutter
+ damagevariation
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+Attract:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ attract
+ endmove
+
+Return:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ happinesspower
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+Present:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ critical
+ damagestats
+ present
+ damagecalc
+ stab
+ damagevariation
+ clearmissdamage
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+Frustration:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ frustrationpower
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+Safeguard:
+ checkobedience
+ usedmovetext
+ doturn
+ safeguard
+ endmove
+
+SacredFire:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ defrost
+ checkfaint
+ buildopponentrage
+ burntarget
+ endmove
+
+Magnitude:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ getmagnitude
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ doubleundergrounddamage
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+BatonPass:
+ checkobedience
+ usedmovetext
+ doturn
+ batonpass
+ endmove
+
+Pursuit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ pursuit
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+RapidSpin:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ clearhazards
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+MorningSun:
+ checkobedience
+ usedmovetext
+ doturn
+ healmorn
+ endmove
+
+Synthesis:
+ checkobedience
+ usedmovetext
+ doturn
+ healday
+ endmove
+
+Moonlight:
+ checkobedience
+ usedmovetext
+ doturn
+ healnite
+ endmove
+
+HiddenPower:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ hiddenpower
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+RainDance:
+ checkobedience
+ usedmovetext
+ doturn
+ startrain
+ endmove
+
+SunnyDay:
+ checkobedience
+ usedmovetext
+ doturn
+ startsun
+ endmove
+
+FakeOut:
+ checkobedience
+ usedmovetext
+ doturn
+ checkhit
+ fakeout
+ moveanim
+ failuretext
+ endmove
+
+BellyDrum:
+ checkobedience
+ usedmovetext
+ doturn
+ bellydrum
+ endmove
+
+PsychUp:
+ checkobedience
+ usedmovetext
+ doturn
+ psychup
+ endmove
+
+MirrorCoat:
+ checkobedience
+ usedmovetext
+ doturn
+ mirrorcoat
+ moveanim
+ failuretext
+ applydamage
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+SkullBash:
+ checkcharge
+ checkobedience
+ doturn
+ charge
+ usedmovetext
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endturn
+ defenseup
+ statupmessage
+ endmove
+
+Twister:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ doubleflyingdamage
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ flinchtarget
+ endmove
+
+Earthquake:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ doubleundergrounddamage
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ endmove
+
+FutureSight:
+ checkfuturesight
+ checkobedience
+ usedmovetext
+ doturn
+ damagestats
+ damagecalc
+ futuresight
+ damagevariation ; skip here if last turn
+ checkhit
+ moveanimnosub
+ failuretext
+ applydamage
+ checkfaint
+ buildopponentrage
+ endmove
+
+Gust:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ doubleflyingdamage
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ endmove
+
+Stomp:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ doubleminimizedamage
+ checkhit
+ effectchance
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ flinchtarget
+ endmove
+
+Solarbeam:
+ checkcharge
+ checkobedience
+ doturn
+ skipsuncharge
+ charge
+ usedmovetext
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ kingsrock
+ endmove
+
+Thunder:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ thunderaccuracy
+ checkhit
+ effectchance
+ stab
+ damagevariation
+ moveanim
+ failuretext
+ applydamage
+ criticaltext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ paralyzetarget
+ endmove
+
+Teleport:
+ checkobedience
+ usedmovetext
+ doturn
+ teleport
+ endmove
+
+BeatUp:
+ checkobedience
+ usedmovetext
+ movedelay
+ doturn
+ startloop
+ lowersub
+ checkhit
+ critical
+ beatup
+ damagecalc
+ damagevariation
+ clearmissdamage
+ moveanimnosub
+ failuretext
+ applydamage
+ criticaltext
+ cleartext
+ supereffectivetext
+ checkfaint
+ buildopponentrage
+ endloop
+ beatupfailtext
+ raisesub
+ kingsrock
+ endmove
+
+DefenseCurl:
+ checkobedience
+ usedmovetext
+ doturn
+ defenseup
+ curl
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
+ statupfailtext
+ endmove
diff --git a/data/moves/effects_pointers.asm b/data/moves/effects_pointers.asm
new file mode 100644
index 00000000..94834de7
--- /dev/null
+++ b/data/moves/effects_pointers.asm
@@ -0,0 +1,159 @@
+MoveEffectsPointers:
+; entries correspond to EFFECT_* constants
+ dw NormalHit
+ dw DoSleep
+ dw PoisonHit
+ dw LeechHit
+ dw BurnHit
+ dw FreezeHit
+ dw ParalyzeHit
+ dw Selfdestruct
+ dw DreamEater
+ dw MirrorMove
+ dw AttackUp
+ dw DefenseUp
+ dw SpeedUp
+ dw SpecialAttackUp
+ dw SpecialDefenseUp
+ dw AccuracyUp
+ dw EvasionUp
+ dw NormalHit
+ dw AttackDown
+ dw DefenseDown
+ dw SpeedDown
+ dw SpecialAttackDown
+ dw SpecialDefenseDown
+ dw AccuracyDown
+ dw EvasionDown
+ dw ResetStats
+ dw Bide
+ dw Rampage
+ dw ForceSwitch
+ dw MultiHit
+ dw Conversion
+ dw FlinchHit
+ dw Heal
+ dw Toxic
+ dw PayDay
+ dw LightScreen
+ dw TriAttack
+ dw NormalHit
+ dw OHKOHit
+ dw RazorWind
+ dw SuperFang
+ dw StaticDamage
+ dw TrapTarget
+ dw NormalHit
+ dw MultiHit
+ dw NormalHit
+ dw Mist
+ dw FocusEnergy
+ dw RecoilHit
+ dw DoConfuse
+ dw AttackUp2
+ dw DefenseUp2
+ dw SpeedUp2
+ dw SpecialAttackUp2
+ dw SpecialDefenseUp2
+ dw AccuracyUp2
+ dw EvasionUp2
+ dw Transform
+ dw AttackDown2
+ dw DefenseDown2
+ dw SpeedDown2
+ dw SpecialAttackDown2
+ dw SpecialDefenseDown2
+ dw AccuracyDown2
+ dw EvasionDown2
+ dw Reflect
+ dw DoPoison
+ dw DoParalyze
+ dw AttackDownHit
+ dw DefenseDownHit
+ dw SpeedDownHit
+ dw SpecialAttackDownHit
+ dw SpecialDefenseDownHit
+ dw AccuracyDownHit
+ dw EvasionDownHit
+ dw SkyAttack
+ dw ConfuseHit
+ dw PoisonMultiHit
+ dw NormalHit
+ dw Substitute
+ dw HyperBeam
+ dw Rage
+ dw Mimic
+ dw Metronome
+ dw LeechSeed
+ dw Splash
+ dw Disable
+ dw StaticDamage
+ dw Psywave
+ dw Counter
+ dw Encore
+ dw PainSplit
+ dw Snore
+ dw Conversion2
+ dw LockOn
+ dw Sketch
+ dw DefrostOpponent
+ dw SleepTalk
+ dw DestinyBond
+ dw Reversal
+ dw Spite
+ dw FalseSwipe
+ dw HealBell
+ dw NormalHit
+ dw TripleKick
+ dw Thief
+ dw MeanLook
+ dw Nightmare
+ dw FlameWheel
+ dw Curse
+ dw NormalHit
+ dw Protect
+ dw Spikes
+ dw Foresight
+ dw PerishSong
+ dw Sandstorm
+ dw Endure
+ dw Rollout
+ dw Swagger
+ dw FuryCutter
+ dw Attract
+ dw Return
+ dw Present
+ dw Frustration
+ dw Safeguard
+ dw SacredFire
+ dw Magnitude
+ dw BatonPass
+ dw Pursuit
+ dw RapidSpin
+ dw NormalHit
+ dw NormalHit
+ dw MorningSun
+ dw Synthesis
+ dw Moonlight
+ dw HiddenPower
+ dw RainDance
+ dw SunnyDay
+ dw DefenseUpHit
+ dw AttackUpHit
+ dw AllUpHit
+ dw FakeOut
+ dw BellyDrum
+ dw PsychUp
+ dw MirrorCoat
+ dw SkullBash
+ dw Twister
+ dw Earthquake
+ dw FutureSight
+ dw Gust
+ dw Stomp
+ dw Solarbeam
+ dw Thunder
+ dw Teleport
+ dw BeatUp
+ dw Fly
+ dw DefenseCurl
diff --git a/macros.asm b/macros.asm
index df24c293..2d5cfc99 100644
--- a/macros.asm
+++ b/macros.asm
@@ -11,9 +11,9 @@ INCLUDE "macros/scripts/maps.asm"
INCLUDE "macros/scripts/events.asm"
INCLUDE "macros/scripts/text.asm"
INCLUDE "macros/scripts/movement.asm"
+INCLUDE "macros/scripts/battle_commands.asm"
INCLUDE "macros/scripts/trade_anims.asm"
-INCLUDE "macros/move_effect.asm"
INCLUDE "macros/move_anim.asm"
INCLUDE "macros/pic.asm"
INCLUDE "macros/mobile.asm"
diff --git a/macros/enum.asm b/macros/enum.asm
index 003445be..8fe5b534 100755
--- a/macros/enum.asm
+++ b/macros/enum.asm
@@ -9,7 +9,7 @@ endc
if _NARG >= 2
__enumdir__ = \2
else
-__enumdir__ = +1
+__enumdir__ = 1
endc
ENDM
@@ -41,11 +41,3 @@ shift_const: MACRO
\1 EQU (1 << const_value)
const_value = const_value + 1
ENDM
-
-; Enumerate strings
-
-define: MACRO
-if !DEF(\1)
-\1 EQUS \2
-endc
-ENDM
diff --git a/macros/move_effect.asm b/macros/scripts/battle_commands.asm
index d3761c9a..919d6e00 100644
--- a/macros/move_effect.asm
+++ b/macros/scripts/battle_commands.asm
@@ -1,10 +1,10 @@
-command: macro
+command: MACRO
enum \1_command
-\1 equs "db \1_command"
-endm
+\1 EQUS "db \1_command"
+ENDM
+; BattleCommandPointers indexes (see data/battle/effect_command_pointers.asm)
enum_start 1
-
command checkturn ; 01
command checkobedience ; 02
command usedmovetext ; 03
@@ -15,13 +15,13 @@ endm
command damagevariation ; 08
command checkhit ; 09
command lowersub ; 0a
- command hittargetnosub ; 0b
+ command moveanimnosub ; 0b
command raisesub ; 0c
command failuretext ; 0d
- command checkfaint ; 0e
+ command applydamage ; 0e
command criticaltext ; 0f
command supereffectivetext ; 10
- command checkdestinybond ; 11
+ command checkfaint ; 11
command buildopponentrage ; 12
command poisontarget ; 13
command sleeptarget ; 14
@@ -169,18 +169,18 @@ endm
command ragedamage ; a2
command resettypematchup ; a3
command allstatsup ; a4
- command effect0xa5 ; a5
+ command bidefailtext ; a5
command raisesubnoanim ; a6
command lowersubnoanim ; a7
- command effect0xa8 ; a8
+ command beatupfailtext ; a8
command clearmissdamage ; a9
command movedelay ; aa
- command hittarget ; ab
+ command moveanim ; ab
command tristatuschance ; ac
command supereffectivelooptext ; ad
command startloop ; ae
command curl ; af
- enum_start -1, -1
- command endmove
- command endturn
+ enum_start $fe
+ command endturn ; fe
+ command endmove ; ff
diff --git a/main.asm b/main.asm
index 05dac656..91cd7c07 100644
--- a/main.asm
+++ b/main.asm
@@ -208,7 +208,9 @@ ToggleDecorationsVisibility:
INCLUDE "engine/battle/read_trainer_dvs.asm"
ReturnToBattle_UseBall_:
- dr $27307, $27bd3
+ dr $27307, $2739f
+
+INCLUDE "data/moves/effects.asm"
SECTION "banka", ROMX, BANK[$a]
dr $28000, $28d88
@@ -319,6 +321,7 @@ GetItemHeldEffect:
SECTION "banke", ROMX
INCLUDE "engine/battle/ai/items.asm"
+;INCLUDE "engine/battle/ai/scoring.asm"
dr $38583, $39217
AICheckEnemyMaxHP::