diff options
author | entrpntr <entrpntr@gmail.com> | 2020-04-07 18:16:14 -0400 |
---|---|---|
committer | entrpntr <entrpntr@gmail.com> | 2020-04-07 18:16:14 -0400 |
commit | 7b003316f8bae609ff47baf14cc06ebf1b4a8000 (patch) | |
tree | 16d456429de86b4e265c144b05847f63ed20f1f7 | |
parent | a8d30a0d2d8830f05669b88b23c558cc116d3bea (diff) |
Add data/moves/effects.asm.
-rw-r--r-- | constants.asm | 2 | ||||
-rw-r--r-- | constants/battle_constants.asm | 160 | ||||
-rw-r--r-- | constants/item_constants.asm | 6 | ||||
-rw-r--r-- | constants/move_effect_constants.asm | 159 | ||||
-rw-r--r-- | data/moves/effects.asm | 2077 | ||||
-rw-r--r-- | data/moves/effects_pointers.asm | 159 | ||||
-rw-r--r-- | macros.asm | 2 | ||||
-rwxr-xr-x | macros/enum.asm | 10 | ||||
-rw-r--r-- | macros/scripts/battle_commands.asm (renamed from macros/move_effect.asm) | 26 | ||||
-rw-r--r-- | main.asm | 5 |
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 @@ -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 @@ -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:: |