diff options
-rw-r--r-- | src/constants/duel_constants.asm | 39 | ||||
-rw-r--r-- | src/data/effect_commands.asm | 1280 | ||||
-rw-r--r-- | src/engine/bank01.asm | 229 | ||||
-rw-r--r-- | src/engine/bank08.asm | 2 | ||||
-rw-r--r-- | src/engine/effect_functions.asm | 2 | ||||
-rw-r--r-- | src/engine/home.asm | 114 | ||||
-rw-r--r-- | src/hram.asm | 2 | ||||
-rw-r--r-- | src/wram.asm | 2 |
8 files changed, 873 insertions, 797 deletions
diff --git a/src/constants/duel_constants.asm b/src/constants/duel_constants.asm index 943881b..dd448aa 100644 --- a/src/constants/duel_constants.asm +++ b/src/constants/duel_constants.asm @@ -154,6 +154,45 @@ SUBSTATUS3_HEADACHE EQU 1 CAN_EVOLVE_THIS_TURN_F EQU 7 CAN_EVOLVE_THIS_TURN EQU 1 << CAN_EVOLVE_THIS_TURN_F +; effect command constants (TryExecuteEffectCommandFunction) +; ordered by (roughly) execution time +EFFECTCMDTYPE_INITIAL_EFFECT_1 EQU $01 +EFFECTCMDTYPE_INITIAL_EFFECT_2 EQU $02 +EFFECTCMDTYPE_DISCARD_ENERGY EQU $06 +EFFECTCMDTYPE_REQUIRE_SELECTION EQU $05 +EFFECTCMDTYPE_BEFORE_DAMAGE EQU $03 +EFFECTCMDTYPE_AFTER_DAMAGE EQU $04 +EFFECTCMDTYPE_SWITCH_DEFENDING_PKMN EQU $0a +EFFECTCMDTYPE_PKMN_POWER_TRIGGER EQU $07 +EFFECTCMDTYPE_AI EQU $09 +EFFECTCMDTYPE_UNKNOWN_08 EQU $08 + +; OppAction_* constants (OppActionTable) + const_def + const OPPACTION_ERROR ; $00 + const OPPACTION_PLAY_BASIC_PKMN ; $01 + const OPPACTION_EVOLVE_PKMN ; $02 + const OPPACTION_PLAY_ENERGY ; $03 + const OPPACTION_ATTEMPT_RETREAT ; $04 + const OPPACTION_FINISH_NO_ATTACK ; $05 + const OPPACTION_PLAY_TRAINER ; $06 + const OPPACTION_EXECUTE_TRAINER_EFFECTS ; $07 + const OPPACTION_BEGIN_ATTACK ; $08 + const OPPACTION_USE_ATTACK ; $09 + const OPPACTION_DEAL_ATTACK_DAMAGE ; $0a + const OPPACTION_DRAW_CARD ; $0b + const OPPACTION_USE_PKMN_POWER ; $0c + const OPPACTION_EXECUTE_PKMN_POWER_EFFECT ; $0d + const OPPACTION_FORCE_SWITCH_ACTIVE ; $0e + const OPPACTION_NO_ACTION_0F ; $0f + const OPPACTION_NO_ACTION_10 ; $10 + const OPPACTION_TOSS_COIN_A_TIMES ; $11 + const OPPACTION_6B30 ; $12 + const OPPACTION_NO_ACTION_13 ; $13 + const OPPACTION_6B3E ; $14 + const OPPACTION_6B15 ; $15 + const OPPACTION_DUEL_MAIN_SCENE ; $16 + ; wNoDamageOrEffect constants NO_DAMAGE_OR_EFFECT_AGILITY EQU $01 NO_DAMAGE_OR_EFFECT_BARRIER EQU $02 diff --git a/src/data/effect_commands.asm b/src/data/effect_commands.asm index fa1bc81..0e1886e 100644 --- a/src/data/effect_commands.asm +++ b/src/data/effect_commands.asm @@ -2,13 +2,23 @@ EffectCommands: ; 186f7 (6:46f7) ; Each move has a two-byte effect pointer (move's 7th param) that points to one of these structures. ; Similarly, trainer cards have a two-byte pointer (7th param) to one of these structures, which determines the card's function. ; Energy cards also point to one of these, but their data is just $00. -; db CommandType ($01 - $0a) +; db EFFECTCMDTYPE_* ($01 - $0a) ; dw Function ; ... ; db $00 -; Commands are associated to a time or a scope (CommandType) that determines when their function is executed during the turn. -; For example type $03 is executed right before dealing damage while type $09 is AI related and executed during enemy turn only. +; Commands are associated to a time or a scope (EFFECTCMDTYPE_*) that determines when their function is executed during the turn. +; - EFFECTCMDTYPE_INITIAL_EFFECT_1: Executed right after move or trainer card is used. Bypasses Smokescreen and Sand Attack effects. +; - EFFECTCMDTYPE_INITIAL_EFFECT_2: Executed right after move, Pokemon Power, or trainer card is used. +; - EFFECTCMDTYPE_DISCARD_ENERGY: For moves or trainer cards that require putting one or more attached energy cards into the discard pile. +; - EFFECTCMDTYPE_REQUIRE_SELECTION: For moves, Pokemon Powers, or trainer cards requring the user to select a card (from e.g. play area screen or card list). +; - EFFECTCMDTYPE_BEFORE_DAMAGE: Effect command of a move executed prior to the damage step. For trainer card or Pokemon Power, usually the main effect. +; - EFFECTCMDTYPE_AFTER_DAMAGE: Effect command executed after the damage step +; - EFFECTCMDTYPE_SWITCH_DEFENDING_PKMN: For moves that may result in the defending Pokemon being switched out +; - EFFECTCMDTYPE_PKMN_POWER_TRIGGER: Pokemon Power effects that trigger the moment the Pokemon card is played +; - EFFECTCMDTYPE_AI: Used for AI scoring +; - EFFECTCMDTYPE_UNKNOWN_08: Unknown + ; Similar move effects of different Pokemon cards all point to a different command list, ; even though in some cases their commands and function pointers match. @@ -23,1375 +33,1375 @@ EffectCommands: ; 186f7 (6:46f7) ; SpitPoison_AIEffect ; EkansSpitPoisonEffectCommands: - dbw $03, SpitPoison_Poison50PercentEffect - dbw $09, SpitPoison_AIEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, SpitPoison_Poison50PercentEffect + dbw EFFECTCMDTYPE_AI, SpitPoison_AIEffect db $00 EkansWrapEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 ArbokTerrorStrikeEffectCommands: - dbw $04, $4726 - dbw $05, $470a - dbw $0a, $470a + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $4726 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $470a + dbw EFFECTCMDTYPE_SWITCH_DEFENDING_PKMN, $470a db $00 ArbokPoisonFangEffectCommands: - dbw $03, PoisonEffect - dbw $09, PoisonFang_AIEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, PoisonEffect + dbw EFFECTCMDTYPE_AI, PoisonFang_AIEffect db $00 WeepinbellPoisonPowderEffectCommands: - dbw $03, Poison50PercentEffect - dbw $09, WeepinbellPoisonPowder_AIEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Poison50PercentEffect + dbw EFFECTCMDTYPE_AI, WeepinbellPoisonPowder_AIEffect db $00 VictreebelLureEffectCommands: - dbw $01, $4740 - dbw $04, $476a - dbw $05, $474b - dbw $08, $4764 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $4740 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $476a + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $474b + dbw EFFECTCMDTYPE_UNKNOWN_08, $4764 db $00 VictreebelAcidEffectCommands: - dbw $03, AcidEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, AcidEffect db $00 PinsirIronGripEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 CaterpieStringShotEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 GloomPoisonPowderEffectCommands: - dbw $03, PoisonEffect - dbw $09, GloomPoisonPowder_AIEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, PoisonEffect + dbw EFFECTCMDTYPE_AI, GloomPoisonPowder_AIEffect db $00 GloomFoulOdorEffectCommands: - dbw $03, FoulOdorEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, FoulOdorEffect db $00 KakunaStiffenEffectCommands: - dbw $03, KakunaStiffenEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, KakunaStiffenEffect db $00 KakunaPoisonPowderEffectCommands: - dbw $03, Poison50PercentEffect - dbw $09, KakunaPoisonPowder_AIEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Poison50PercentEffect + dbw EFFECTCMDTYPE_AI, KakunaPoisonPowder_AIEffect db $00 GolbatLeechLifeEffectCommands: - dbw $04, $47bc + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $47bc db $00 VenonatStunSporeEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 VenonatLeechLifeEffectCommands: - dbw $04, $47c6 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $47c6 db $00 ScytherSwordsDanceEffectCommands: - dbw $03, SwordsDanceEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, SwordsDanceEffect db $00 ZubatSupersonicEffectCommands: - dbw $03, ZubatSupersonicEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, ZubatSupersonicEffect db $00 ZubatLeechLifeEffectCommands: - dbw $04, $47e3 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $47e3 db $00 BeedrillTwineedleEffectCommands: - dbw $03, Twineedle_MultiplierEffect - dbw $09, Twineedle_AIEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Twineedle_MultiplierEffect + dbw EFFECTCMDTYPE_AI, Twineedle_AIEffect db $00 BeedrillPoisonStingEffectCommands: - dbw $03, Poison50PercentEffect - dbw $09, $480d + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Poison50PercentEffect + dbw EFFECTCMDTYPE_AI, $480d db $00 ExeggcuteHypnosisEffectCommands: - dbw $03, SleepEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, SleepEffect db $00 ExeggcuteLeechSeedEffectCommands: - dbw $04, $4815 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $4815 db $00 KoffingFoulGasEffectCommands: - dbw $03, FoulGas_PoisonOrConfusionEffect - dbw $09, FoulGas_AIEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, FoulGas_PoisonOrConfusionEffect + dbw EFFECTCMDTYPE_AI, FoulGas_AIEffect db $00 MetapodStiffenEffectCommands: - dbw $03, MetapodStiffenEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, MetapodStiffenEffect db $00 MetapodStunSporeEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 OddishStunSporeEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 OddishSproutEffectCommands: - dbw $01, $484a - dbw $04, $48cc - dbw $05, $485a - dbw $08, $48b7 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $484a + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $48cc + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $485a + dbw EFFECTCMDTYPE_UNKNOWN_08, $48b7 db $00 ExeggutorTeleportEffectCommands: - dbw $01, $48ec - dbw $04, $491a - dbw $05, $48f7 - dbw $08, $490f + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $48ec + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $491a + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $48f7 + dbw EFFECTCMDTYPE_UNKNOWN_08, $490f db $00 ExeggutorBigEggsplosionEffectCommands: - dbw $03, BigEggsplosion_MultiplierEffect - dbw $09, BigEggsplosion_AIEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, BigEggsplosion_MultiplierEffect + dbw EFFECTCMDTYPE_AI, BigEggsplosion_AIEffect db $00 NidokingThrashEffectCommands: - dbw $03, Thrash_ModifierEffect - dbw $04, Func_2c982 - dbw $09, Thrash_AIEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Thrash_ModifierEffect + dbw EFFECTCMDTYPE_AFTER_DAMAGE, Func_2c982 + dbw EFFECTCMDTYPE_AI, Thrash_AIEffect db $00 NidokingToxicEffectCommands: - dbw $03, Toxic_DoublePoisonEffect - dbw $09, Toxic_AIEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Toxic_DoublePoisonEffect + dbw EFFECTCMDTYPE_AI, Toxic_AIEffect db $00 NidoqueenBoyfriendsEffectCommands: - dbw $03, $4998 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4998 db $00 NidoranFFurySweepesEffectCommands: - dbw $03, $49c6 - dbw $09, $49be + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $49c6 + dbw EFFECTCMDTYPE_AI, $49be db $00 NidoranFCallForFamilyEffectCommands: - dbw $01, $49db - dbw $04, $4a6e - dbw $05, $49eb - dbw $08, $4a55 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $49db + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $4a6e + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $49eb + dbw EFFECTCMDTYPE_UNKNOWN_08, $4a55 db $00 NidoranMHornHazardEffectCommands: - dbw $03, $4a96 - dbw $09, $4a8e + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4a96 + dbw EFFECTCMDTYPE_AI, $4a8e db $00 NidorinaSupersonicEffectCommands: - dbw $03, $4aac + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4aac db $00 NidorinaDoubleKickEffectCommands: - dbw $03, $4abb - dbw $09, $4ab3 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4abb + dbw EFFECTCMDTYPE_AI, $4ab3 db $00 NidorinoDoubleKickEffectCommands: - dbw $03, $4adb - dbw $09, $4ad3 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4adb + dbw EFFECTCMDTYPE_AI, $4ad3 db $00 ButterfreeWhirlwindEffectCommands: - dbw $04, $4b09 - dbw $05, $4af3 - dbw $0a, $4af3 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $4b09 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $4af3 + dbw EFFECTCMDTYPE_SWITCH_DEFENDING_PKMN, $4af3 db $00 ButterfreeMegaDrainEffectCommands: - dbw $04, $4b0f + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $4b0f db $00 ParasSporeEffectCommands: - dbw $03, SleepEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, SleepEffect db $00 ParasectSporeEffectCommands: - dbw $03, SleepEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, SleepEffect db $00 WeedlePoisonStingEffectCommands: - dbw $03, Poison50PercentEffect - dbw $09, $4b27 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Poison50PercentEffect + dbw EFFECTCMDTYPE_AI, $4b27 db $00 IvysaurPoisonPowderEffectCommands: - dbw $03, PoisonEffect - dbw $09, $4b2f + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, PoisonEffect + dbw EFFECTCMDTYPE_AI, $4b2f db $00 BulbasaurLeechSeedEffectCommands: - dbw $04, $4b37 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $4b37 db $00 VenusaurEnergyTransEffectCommands: - dbw $02, $4b44 - dbw $03, $4b77 - dbw $04, $4bfb - dbw $05, $4b6f + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $4b44 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4b77 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $4bfb + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $4b6f db $00 GrimerNastyGooEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 GrimerMinimizeEffectCommands: - dbw $03, $4c30 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4c30 db $00 MukToxicGasEffectCommands: - dbw $01, $4c36 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $4c36 db $00 MukSludgeEffectCommands: - dbw $03, Poison50PercentEffect - dbw $09, $4c38 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Poison50PercentEffect + dbw EFFECTCMDTYPE_AI, $4c38 db $00 BellsproutCallForFamilyEffectCommands: - dbw $01, $4c40 - dbw $04, $4cc2 - dbw $05, $4c50 - dbw $08, $4cad + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $4c40 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $4cc2 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $4c50 + dbw EFFECTCMDTYPE_UNKNOWN_08, $4cad db $00 WeezingSmogEffectCommands: - dbw $03, Poison50PercentEffect - dbw $09, $4ce2 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Poison50PercentEffect + dbw EFFECTCMDTYPE_AI, $4ce2 db $00 WeezingSelfdestructEffectCommands: - dbw $04, $4cea + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $4cea db $00 VenomothShiftEffectCommands: - dbw $02, $4d09 - dbw $03, $4d5d - dbw $05, $4d21 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $4d09 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4d5d + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $4d21 db $00 VenomothVenomPowderEffectCommands: - dbw $03, $4d8c - dbw $09, $4d84 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4d8c + dbw EFFECTCMDTYPE_AI, $4d84 db $00 TangelaBindEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 TangelaPoisonPowderEffectCommands: - dbw $03, PoisonEffect - dbw $09, $4da0 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, PoisonEffect + dbw EFFECTCMDTYPE_AI, $4da0 db $00 VileplumeHealEffectCommands: - dbw $02, $4da8 - dbw $03, $4dc7 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $4da8 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4dc7 db $00 VileplumePetalDanceEffectCommands: - dbw $03, $4e2b - dbw $09, $4e23 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4e2b + dbw EFFECTCMDTYPE_AI, $4e23 db $00 TangelaStunSporeEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 TangelaPoisonWhipEffectCommands: - dbw $03, PoisonEffect - dbw $09, $4e4b + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, PoisonEffect + dbw EFFECTCMDTYPE_AI, $4e4b db $00 VenusaurSolarPowerEffectCommands: - dbw $02, $4e53 - dbw $03, $4e82 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $4e53 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4e82 db $00 VenusaurMegaDrainEffectCommands: - dbw $04, $4eb0 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $4eb0 db $00 OmastarWaterGunEffectCommands: - dbw $03, $4f05 - dbw $09, $4f05 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4f05 + dbw EFFECTCMDTYPE_AI, $4f05 db $00 OmastarSpikeCannonEffectCommands: - dbw $03, $4f12 - dbw $09, $4f0a + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4f12 + dbw EFFECTCMDTYPE_AI, $4f0a db $00 OmanyteClairvoyanceEffectCommands: - dbw $01, $4f2a + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $4f2a db $00 OmanyteWaterGunEffectCommands: - dbw $03, $4f2c - dbw $09, $4f2c + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4f2c + dbw EFFECTCMDTYPE_AI, $4f2c db $00 WartortleWithdrawEffectCommands: - dbw $03, $4f32 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4f32 db $00 BlastoiseRainDanceEffectCommands: - dbw $01, $4f46 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $4f46 db $00 BlastoiseHydroPumpEffectCommands: - dbw $03, $4f48 - dbw $09, $4f48 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4f48 + dbw EFFECTCMDTYPE_AI, $4f48 db $00 GyaradosBubblebeamEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 KinglerFlailEffectCommands: - dbw $03, $4f54 - dbw $09, $4f4e + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $4f54 + dbw EFFECTCMDTYPE_AI, $4f4e db $00 KrabbyCallForFamilyEffectCommands: - dbw $01, $4f5d - dbw $04, $4fdf - dbw $05, $4f6d - dbw $08, $4fca + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $4f5d + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $4fdf + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $4f6d + dbw EFFECTCMDTYPE_UNKNOWN_08, $4fca db $00 MagikarpFlailEffectCommands: - dbw $03, $5005 - dbw $09, $4fff + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5005 + dbw EFFECTCMDTYPE_AI, $4fff db $00 PsyduckHeadacheEffectCommands: - dbw $03, $500e + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $500e db $00 PsyduckFurySweepesEffectCommands: - dbw $03, $501e - dbw $09, $5016 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $501e + dbw EFFECTCMDTYPE_AI, $5016 db $00 GolduckPsyshockEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 GolduckHyperBeamEffectCommands: - dbw $04, $506b - dbw $05, $5033 - dbw $08, $5065 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $506b + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $5033 + dbw EFFECTCMDTYPE_UNKNOWN_08, $5065 db $00 SeadraWaterGunEffectCommands: - dbw $03, $5085 - dbw $09, $5085 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5085 + dbw EFFECTCMDTYPE_AI, $5085 db $00 SeadraAgilityEffectCommands: - dbw $03, $508b + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $508b db $00 ShellderSupersonicEffectCommands: - dbw $03, $509d + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $509d db $00 ShellderHideInShellEffectCommands: - dbw $03, $50a4 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $50a4 db $00 VaporeonQuickAttackEffectCommands: - dbw $03, $50c0 - dbw $09, $50b8 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $50c0 + dbw EFFECTCMDTYPE_AI, $50b8 db $00 VaporeonWaterGunEffectCommands: - dbw $03, $50d3 - dbw $09, $50d3 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $50d3 + dbw EFFECTCMDTYPE_AI, $50d3 db $00 DewgongIceBeamEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 StarmieRecoverEffectCommands: - dbw $01, $50d9 - dbw $02, $50f0 - dbw $04, $5114 - dbw $06, $510e - dbw $08, $5103 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $50d9 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $50f0 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $5114 + dbw EFFECTCMDTYPE_DISCARD_ENERGY, $510e + dbw EFFECTCMDTYPE_UNKNOWN_08, $5103 db $00 StarmieStarFreezeEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 SquirtleBubbleEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 SquirtleWithdrawEffectCommands: - dbw $03, $5120 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5120 db $00 HorseaSmokescreenEffectCommands: - dbw $03, $5134 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5134 db $00 TentacruelSupersonicEffectCommands: - dbw $03, $513a + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $513a db $00 TentacruelJellyfishStingEffectCommands: - dbw $03, PoisonEffect - dbw $09, $5141 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, PoisonEffect + dbw EFFECTCMDTYPE_AI, $5141 db $00 PoliwhirlAmnesiaEffectCommands: - dbw $01, $5149 - dbw $02, $516f - dbw $03, $5179 - dbw $08, $5173 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5149 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $516f + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5179 + dbw EFFECTCMDTYPE_UNKNOWN_08, $5173 db $00 PoliwhirlDoubleslapEffectCommands: - dbw $03, $51c8 - dbw $09, $51c0 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $51c8 + dbw EFFECTCMDTYPE_AI, $51c0 db $00 PoliwrathWaterGunEffectCommands: - dbw $03, $51e0 - dbw $09, $51e0 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $51e0 + dbw EFFECTCMDTYPE_AI, $51e0 db $00 PoliwrathWhirlpoolEffectCommands: - dbw $04, $5214 - dbw $05, $51e6 - dbw $08, $520e + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $5214 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $51e6 + dbw EFFECTCMDTYPE_UNKNOWN_08, $520e db $00 PoliwagWaterGunEffectCommands: - dbw $03, $5227 - dbw $09, $5227 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5227 + dbw EFFECTCMDTYPE_AI, $5227 db $00 CloysterClampEffectCommands: - dbw $03, $522d + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $522d db $00 CloysterSpikeCannonEffectCommands: - dbw $03, $524e - dbw $09, $5246 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $524e + dbw EFFECTCMDTYPE_AI, $5246 db $00 ArticunoFreezeDryEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 ArticunoBlizzardEffectCommands: - dbw $03, $5266 - dbw $04, $526f + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5266 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $526f db $00 TentacoolCowardiceEffectCommands: - dbw $02, $528b - dbw $03, $52c3 - dbw $05, $52ae + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $528b + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $52c3 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $52ae db $00 LaprasWaterGunEffectCommands: - dbw $03, $52eb - dbw $09, $52eb + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $52eb + dbw EFFECTCMDTYPE_AI, $52eb db $00 LaprasConfuseRayEffectCommands: - dbw $03, Confusion50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Confusion50PercentEffect db $00 ArticunoQuickfreezeEffectCommands: - dbw $01, $52f1 - dbw $07, $52f3 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $52f1 + dbw EFFECTCMDTYPE_PKMN_POWER_TRIGGER, $52f3 db $00 ArticunoIceBreathEffectCommands: - dbw $03, $5329 - dbw $04, $532e + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5329 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $532e db $00 VaporeonFocusEnergyEffectCommands: - dbw $03, $533f + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $533f db $00 ArcanineFlamethrowerEffectCommands: - dbw $01, $5363 - dbw $02, $5371 - dbw $06, $5379 - dbw $08, $5375 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5363 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $5371 + dbw EFFECTCMDTYPE_DISCARD_ENERGY, $5379 + dbw EFFECTCMDTYPE_UNKNOWN_08, $5375 db $00 ArcanineTakeDownEffectCommands: - dbw $04, $537f + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $537f db $00 ArcanineQuickAttackEffectCommands: - dbw $03, $538d - dbw $09, $5385 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $538d + dbw EFFECTCMDTYPE_AI, $5385 db $00 ArcanineFlamesOfRageEffectCommands: - dbw $01, $53a0 - dbw $02, $53ae - dbw $03, $53ef - dbw $06, $53de - dbw $08, $53d5 - dbw $09, $53e9 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $53a0 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $53ae + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $53ef + dbw EFFECTCMDTYPE_DISCARD_ENERGY, $53de + dbw EFFECTCMDTYPE_UNKNOWN_08, $53d5 + dbw EFFECTCMDTYPE_AI, $53e9 db $00 RapidashStompEffectCommands: - dbw $03, $5400 - dbw $09, $53f8 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5400 + dbw EFFECTCMDTYPE_AI, $53f8 db $00 RapidashAgilityEffectCommands: - dbw $03, $5413 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5413 db $00 NinetailsLureEffectCommands: - dbw $01, $5425 - dbw $04, $544f - dbw $05, $5430 - dbw $08, $5449 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5425 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $544f + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $5430 + dbw EFFECTCMDTYPE_UNKNOWN_08, $5449 db $00 NinetailsFireBlastEffectCommands: - dbw $01, $5463 - dbw $02, $5471 - dbw $06, $5479 - dbw $08, $5475 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5463 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $5471 + dbw EFFECTCMDTYPE_DISCARD_ENERGY, $5479 + dbw EFFECTCMDTYPE_UNKNOWN_08, $5475 db $00 CharmanderEmberEffectCommands: - dbw $01, $547f - dbw $02, $548d - dbw $06, $5495 - dbw $08, $5491 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $547f + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $548d + dbw EFFECTCMDTYPE_DISCARD_ENERGY, $5495 + dbw EFFECTCMDTYPE_UNKNOWN_08, $5491 db $00 MoltresWildfireEffectCommands: - dbw $01, $549b - dbw $02, $54a9 - dbw $04, $54f4 - dbw $06, $54e1 - dbw $08, $54dd + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $549b + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $54a9 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $54f4 + dbw EFFECTCMDTYPE_DISCARD_ENERGY, $54e1 + dbw EFFECTCMDTYPE_UNKNOWN_08, $54dd db $00 Moltres1DiveBombEffectCommands: - dbw $03, $552b - dbw $09, $5523 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $552b + dbw EFFECTCMDTYPE_AI, $5523 db $00 FlareonQuickAttackEffectCommands: - dbw $03, $5549 - dbw $09, $5541 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5549 + dbw EFFECTCMDTYPE_AI, $5541 db $00 FlareonFlamethrowerEffectCommands: - dbw $01, $555c - dbw $02, $556a - dbw $06, $5572 - dbw $08, $556e + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $555c + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $556a + dbw EFFECTCMDTYPE_DISCARD_ENERGY, $5572 + dbw EFFECTCMDTYPE_UNKNOWN_08, $556e db $00 MagmarFlamethrowerEffectCommands: - dbw $01, $5578 - dbw $02, $5586 - dbw $06, $558e - dbw $08, $558a + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5578 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $5586 + dbw EFFECTCMDTYPE_DISCARD_ENERGY, $558e + dbw EFFECTCMDTYPE_UNKNOWN_08, $558a db $00 MagmarSmokescreenEffectCommands: - dbw $03, $5594 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5594 db $00 MagmarSmogEffectCommands: - dbw $03, Poison50PercentEffect - dbw $09, $559a + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Poison50PercentEffect + dbw EFFECTCMDTYPE_AI, $559a db $00 CharmeleonFlamethrowerEffectCommands: - dbw $01, $55a2 - dbw $02, $55b0 - dbw $06, $55b8 - dbw $08, $55b4 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $55a2 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $55b0 + dbw EFFECTCMDTYPE_DISCARD_ENERGY, $55b8 + dbw EFFECTCMDTYPE_UNKNOWN_08, $55b4 db $00 CharizardEnergyBurnEffectCommands: - dbw $01, $55be + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $55be db $00 CharizardFireSpinEffectCommands: - dbw $01, $55c0 - dbw $02, $55cd - dbw $06, $5614 - dbw $08, $5606 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $55c0 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $55cd + dbw EFFECTCMDTYPE_DISCARD_ENERGY, $5614 + dbw EFFECTCMDTYPE_UNKNOWN_08, $5606 db $00 VulpixConfuseRayEffectCommands: - dbw $03, Confusion50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Confusion50PercentEffect db $00 FlareonRageEffectCommands: - dbw $03, $563e - dbw $09, $5638 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $563e + dbw EFFECTCMDTYPE_AI, $5638 db $00 NinetailsMixUpEffectCommands: - dbw $04, $5647 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $5647 db $00 NinetailsDancingEmbersEffectCommands: - dbw $03, $56ab - dbw $09, $56a3 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $56ab + dbw EFFECTCMDTYPE_AI, $56a3 db $00 MoltresFiregiverEffectCommands: - dbw $01, $56c0 - dbw $07, $56c2 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $56c0 + dbw EFFECTCMDTYPE_PKMN_POWER_TRIGGER, $56c2 db $00 Moltres2DiveBombEffectCommands: - dbw $03, $5776 - dbw $09, $576e + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5776 + dbw EFFECTCMDTYPE_AI, $576e db $00 AbraPsyshockEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 GengarCurseEffectCommands: - dbw $02, $57fc - dbw $03, $58bb - dbw $05, $5834 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $57fc + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $58bb + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $5834 db $00 GengarDarkMindEffectCommands: - dbw $04, $593c - dbw $05, $5903 - dbw $08, $592a + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $593c + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $5903 + dbw EFFECTCMDTYPE_UNKNOWN_08, $592a db $00 GastlySleepingGasEffectCommands: - dbw $03, $594f + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $594f db $00 GastlyDestinyBondEffectCommands: - dbw $01, $5956 - dbw $02, $5964 - dbw $03, $5987 - dbw $06, $5981 - dbw $08, $5976 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5956 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $5964 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5987 + dbw EFFECTCMDTYPE_DISCARD_ENERGY, $5981 + dbw EFFECTCMDTYPE_UNKNOWN_08, $5976 db $00 GastlyLickEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 GastlyEnergyConversionEffectCommands: - dbw $01, $598d - dbw $04, $59b4 - dbw $05, $5994 - dbw $08, $599b + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $598d + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $59b4 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $5994 + dbw EFFECTCMDTYPE_UNKNOWN_08, $599b db $00 HaunterHypnosisEffectCommands: - dbw $03, SleepEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, SleepEffect db $00 HaunterDreamEaterEffectCommands: - dbw $01, $59d6 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $59d6 db $00 HaunterTransparencyEffectCommands: - dbw $01, $59e5 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $59e5 db $00 HaunterNightmareEffectCommands: - dbw $03, SleepEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, SleepEffect db $00 HypnoProphecyEffectCommands: - dbw $01, $59e7 - dbw $04, $5a41 - dbw $05, $5a00 - dbw $08, $5a3c + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $59e7 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $5a41 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $5a00 + dbw EFFECTCMDTYPE_UNKNOWN_08, $5a3c db $00 HypnoDarkMindEffectCommands: - dbw $04, $5b64 - dbw $05, $5b2b - dbw $08, $5b52 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $5b64 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $5b2b + dbw EFFECTCMDTYPE_UNKNOWN_08, $5b52 db $00 DrowzeeConfuseRayEffectCommands: - dbw $03, Confusion50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Confusion50PercentEffect db $00 MrMimeInvisibleWallEffectCommands: - dbw $01, $5b77 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5b77 db $00 MrMimeMeditateEffectCommands: - dbw $03, $5b7f - dbw $09, $5b79 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5b7f + dbw EFFECTCMDTYPE_AI, $5b79 db $00 AlakazamDamageSwapEffectCommands: - dbw $02, $5b8e - dbw $03, $5ba2 - dbw $04, $5c27 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $5b8e + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5ba2 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $5c27 db $00 AlakazamConfuseRayEffectCommands: - dbw $03, Confusion50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Confusion50PercentEffect db $00 MewPsywaveEffectCommands: - dbw $03, $5c49 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5c49 db $00 MewDevolutionBeamEffectCommands: - dbw $01, $5c53 - dbw $02, $5c64 - dbw $03, $5cb6 - dbw $04, $5cbb - dbw $08, $5c9e + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5c53 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $5c64 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5cb6 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $5cbb + dbw EFFECTCMDTYPE_UNKNOWN_08, $5c9e db $00 MewNeutralizingShieldEffectCommands: - dbw $01, $5d79 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5d79 db $00 MewPsyshockEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 MewtwoPsychicEffectCommands: - dbw $03, $5d81 - dbw $09, $5d7b + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5d81 + dbw EFFECTCMDTYPE_AI, $5d7b db $00 MewtwoBarrierEffectCommands: - dbw $01, $5d8e - dbw $02, $5d9c - dbw $03, $5dbf - dbw $06, $5db9 - dbw $08, $5dae + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5d8e + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $5d9c + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5dbf + dbw EFFECTCMDTYPE_DISCARD_ENERGY, $5db9 + dbw EFFECTCMDTYPE_UNKNOWN_08, $5dae db $00 Mewtwo3EnergyAbsorptionEffectCommands: - dbw $01, $5dc5 - dbw $04, $5dec - dbw $05, $5dcc - dbw $08, $5dd3 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5dc5 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $5dec + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $5dcc + dbw EFFECTCMDTYPE_UNKNOWN_08, $5dd3 db $00 Mewtwo2EnergyAbsorptionEffectCommands: - dbw $01, $5dff - dbw $04, $5e26 - dbw $05, $5e06 - dbw $08, $5e0d + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5dff + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $5e26 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $5e06 + dbw EFFECTCMDTYPE_UNKNOWN_08, $5e0d db $00 SlowbroStrangeBehaviorEffectCommands: - dbw $02, $5e39 - dbw $03, $5e5b - dbw $04, $5eb3 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $5e39 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5e5b + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $5eb3 db $00 SlowbroPsyshockEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 SlowpokeSpacingOutEffectCommands: - dbw $01, $5ed5 - dbw $03, $5ee0 - dbw $04, $5ef1 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5ed5 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5ee0 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $5ef1 db $00 SlowpokeScavengeEffectCommands: - dbw $01, $5f05 - dbw $02, $5f1a - dbw $04, $5f5f - dbw $05, $5f46 - dbw $06, $5f40 - dbw $08, $5f2d + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5f05 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $5f1a + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $5f5f + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $5f46 + dbw EFFECTCMDTYPE_DISCARD_ENERGY, $5f40 + dbw EFFECTCMDTYPE_UNKNOWN_08, $5f2d db $00 SlowpokeAmnesiaEffectCommands: - dbw $01, $5f74 - dbw $02, $5f7b - dbw $03, $5f85 - dbw $08, $5f7f + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5f74 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $5f7b + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5f85 + dbw EFFECTCMDTYPE_UNKNOWN_08, $5f7f db $00 KadabraRecoverEffectCommands: - dbw $01, $5f89 - dbw $02, $5fa0 - dbw $04, $5fc3 - dbw $06, $5fbd - dbw $08, $5fb2 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $5f89 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $5fa0 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $5fc3 + dbw EFFECTCMDTYPE_DISCARD_ENERGY, $5fbd + dbw EFFECTCMDTYPE_UNKNOWN_08, $5fb2 db $00 JynxDoubleslapEffectCommands: - dbw $03, $5fd7 - dbw $09, $5fcf + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5fd7 + dbw EFFECTCMDTYPE_AI, $5fcf db $00 JynxMeditateEffectCommands: - dbw $03, $5ff2 - dbw $09, $5fec + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $5ff2 + dbw EFFECTCMDTYPE_AI, $5fec db $00 MewMysteryAttackEffectCommands: - dbw $03, $6009 - dbw $04, $603e - dbw $09, $6001 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6009 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $603e + dbw EFFECTCMDTYPE_AI, $6001 db $00 GeodudeStoneBarrageEffectCommands: - dbw $03, $6052 - dbw $09, $604a + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6052 + dbw EFFECTCMDTYPE_AI, $604a db $00 OnixHardenEffectCommands: - dbw $03, $6075 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6075 db $00 PrimeapeFurySweepesEffectCommands: - dbw $03, $6083 - dbw $09, $607b + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6083 + dbw EFFECTCMDTYPE_AI, $607b db $00 PrimeapeTantrumEffectCommands: - dbw $03, $6099 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6099 db $00 MachampStrikesBackEffectCommands: - dbw $01, $60af + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $60af db $00 KabutoKabutoArmorEffectCommands: - dbw $01, $60b1 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $60b1 db $00 KabutopsAbsorbEffectCommands: - dbw $04, $60b3 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $60b3 db $00 CuboneSnivelEffectCommands: - dbw $03, $60cb + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $60cb db $00 CuboneRageEffectCommands: - dbw $03, $60d7 - dbw $09, $60d1 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $60d7 + dbw EFFECTCMDTYPE_AI, $60d1 db $00 MarowakBonemerangEffectCommands: - dbw $03, $60e8 - dbw $09, $60e0 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $60e8 + dbw EFFECTCMDTYPE_AI, $60e0 db $00 MarowakCallforFriendEffectCommands: - dbw $01, $6100 - dbw $04, $6194 - dbw $05, $6110 - dbw $08, $6177 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $6100 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6194 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $6110 + dbw EFFECTCMDTYPE_UNKNOWN_08, $6177 db $00 MachokeKarateChopEffectCommands: - dbw $03, $61ba - dbw $09, $61b4 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $61ba + dbw EFFECTCMDTYPE_AI, $61b4 db $00 MachokeSubmissionEffectCommands: - dbw $04, $61d1 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $61d1 db $00 GolemSelfdestructEffectCommands: - dbw $04, $61d7 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $61d7 db $00 GravelerHardenEffectCommands: - dbw $03, $61f6 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $61f6 db $00 RhydonRamEffectCommands: - dbw $04, $6212 - dbw $05, $61fc - dbw $0a, $61fc + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6212 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $61fc + dbw EFFECTCMDTYPE_SWITCH_DEFENDING_PKMN, $61fc db $00 RhyhornLeerEffectCommands: - dbw $03, $621d + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $621d db $00 HitmonleeStretchKickEffectCommands: - dbw $01, $6231 - dbw $04, $625b - dbw $05, $623c - dbw $08, $6255 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $6231 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $625b + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $623c + dbw EFFECTCMDTYPE_UNKNOWN_08, $6255 db $00 SandshrewSandAttackEffectCommands: - dbw $03, $626b + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $626b db $00 SandslashFurySweepesEffectCommands: - dbw $03, $6279 - dbw $09, $6271 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6279 + dbw EFFECTCMDTYPE_AI, $6271 db $00 DugtrioEarthquakeEffectCommands: - dbw $04, $628f + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $628f db $00 AerodactylPrehistoricPowerEffectCommands: - dbw $01, $629a + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $629a db $00 MankeyPeekEffectCommands: - dbw $02, $629c - dbw $03, $62b4 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $629c + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $62b4 db $00 MarowakBoneAttackEffectCommands: - dbw $03, $630f + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $630f db $00 MarowakWailEffectCommands: - dbw $01, $631c - dbw $04, $6335 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $631c + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6335 db $00 ElectabuzzThundershockEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 ElectabuzzThunderpunchEffectCommands: - dbw $03, $63a1 - dbw $04, $63b0 - dbw $09, $6399 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $63a1 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $63b0 + dbw EFFECTCMDTYPE_AI, $6399 db $00 ElectabuzzLightScreenEffectCommands: - dbw $03, $63ba + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $63ba db $00 ElectabuzzQuickAttackEffectCommands: - dbw $03, $63c8 - dbw $09, $63c0 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $63c8 + dbw EFFECTCMDTYPE_AI, $63c0 db $00 MagnemiteThunderWaveEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 MagnemiteSelfdestructEffectCommands: - dbw $04, $63db + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $63db db $00 ZapdosThunderEffectCommands: - dbw $03, $63fa - dbw $04, $6409 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $63fa + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6409 db $00 ZapdosThunderboltEffectCommands: - dbw $03, $6419 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6419 db $00 ZapdosThunderstormEffectCommands: - dbw $04, $6429 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6429 db $00 JolteonQuickAttackEffectCommands: - dbw $03, $64c3 - dbw $09, $64bb + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $64c3 + dbw EFFECTCMDTYPE_AI, $64bb db $00 JolteonPinMissileEffectCommands: - dbw $03, $64de - dbw $09, $64d6 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $64de + dbw EFFECTCMDTYPE_AI, $64d6 db $00 FlyingPikachuThundershockEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 FlyingPikachuFlyEffectCommands: - dbw $03, $64fc - dbw $09, $64f4 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $64fc + dbw EFFECTCMDTYPE_AI, $64f4 db $00 PikachuThunderJoltEffectCommands: - dbw $03, $651a - dbw $04, $6529 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $651a + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6529 db $00 PikachuSparkEffectCommands: - dbw $04, $6574 - dbw $05, $6539 - dbw $08, $6562 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6574 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $6539 + dbw EFFECTCMDTYPE_UNKNOWN_08, $6562 db $00 Pikachu3GrowlEffectCommands: - dbw $03, $6589 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6589 db $00 Pikachu3ThundershockEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 Pikachu4GrowlEffectCommands: - dbw $03, $658f + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $658f db $00 Pikachu4ThundershockEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 ElectrodeChainLightningEffectCommands: - dbw $04, $6595 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6595 db $00 RaichuAgilityEffectCommands: - dbw $03, $65dc + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $65dc db $00 RaichuThunderEffectCommands: - dbw $03, $65ee - dbw $04, $65fd + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $65ee + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $65fd db $00 RaichuGigashockEffectCommands: - dbw $04, $671f - dbw $05, $660d - dbw $08, $66c3 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $671f + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $660d + dbw EFFECTCMDTYPE_UNKNOWN_08, $66c3 db $00 MagnetonThunderWaveEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 Magneton1SelfdestructEffectCommands: - dbw $04, $6739 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6739 db $00 MagnetonSonicboomEffectCommands: - dbw $03, $6758 - dbw $04, $675e - dbw $09, $6758 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6758 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $675e + dbw EFFECTCMDTYPE_AI, $6758 db $00 Magneton2SelfdestructEffectCommands: - dbw $04, $675f + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $675f db $00 ZapdosPealOfThunderEffectCommands: - dbw $01, $677e - dbw $07, $6780 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $677e + dbw EFFECTCMDTYPE_PKMN_POWER_TRIGGER, $6780 db $00 ZapdosBigThunderEffectCommands: - dbw $04, $67cb + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $67cb db $00 MagnemiteMagneticStormEffectCommands: - dbw $04, $67d5 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $67d5 db $00 ElectrodeSonicboomEffectCommands: - dbw $03, $6870 - dbw $04, $6876 - dbw $09, $6870 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6870 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6876 + dbw EFFECTCMDTYPE_AI, $6870 db $00 ElectrodeEnergySpikeEffectCommands: - dbw $01, $6877 - dbw $04, $68f6 - dbw $05, $687b - dbw $08, $68f1 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $6877 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $68f6 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $687b + dbw EFFECTCMDTYPE_UNKNOWN_08, $68f1 db $00 JolteonDoubleKickEffectCommands: - dbw $03, $6938 - dbw $09, $6930 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6938 + dbw EFFECTCMDTYPE_AI, $6930 db $00 JolteonStunNeedleEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 EeveeTailWagEffectCommands: - dbw $03, $694e + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $694e db $00 EeveeQuickAttackEffectCommands: - dbw $03, $696a - dbw $09, $6962 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $696a + dbw EFFECTCMDTYPE_AI, $6962 db $00 SpearowMirrorMoveEffectCommands: - dbw $01, $697f - dbw $02, $6981 - dbw $03, $6987 - dbw $04, $6989 - dbw $05, $6983 - dbw $08, $6985 - dbw $09, $697d + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $697f + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $6981 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6987 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6989 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $6983 + dbw EFFECTCMDTYPE_UNKNOWN_08, $6985 + dbw EFFECTCMDTYPE_AI, $697d db $00 FearowAgilityEffectCommands: - dbw $03, $6ab8 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6ab8 db $00 DragoniteStepInEffectCommands: - dbw $02, $6aca - dbw $03, $6ae8 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $6aca + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6ae8 db $00 Dragonite2SlamEffectCommands: - dbw $03, $6afe - dbw $09, $6af6 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6afe + dbw EFFECTCMDTYPE_AI, $6af6 db $00 SnorlaxThickSkinnedEffectCommands: - dbw $01, $6b15 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $6b15 db $00 SnorlaxBodySlamEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 FarfetchdLeekSlapEffectCommands: - dbw $01, $6b1f - dbw $03, $6b34 - dbw $06, $6b2c - dbw $09, $6b17 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $6b1f + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6b34 + dbw EFFECTCMDTYPE_DISCARD_ENERGY, $6b2c + dbw EFFECTCMDTYPE_AI, $6b17 db $00 KangaskhanFetchEffectCommands: - dbw $04, $6b40 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6b40 db $00 KangaskhanCometPunchEffectCommands: - dbw $03, $6b65 - dbw $09, $6b5d + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6b65 + dbw EFFECTCMDTYPE_AI, $6b5d db $00 TaurosStompEffectCommands: - dbw $03, $6b83 - dbw $09, $6b7b + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6b83 + dbw EFFECTCMDTYPE_AI, $6b7b db $00 TaurosRampageEffectCommands: - dbw $03, $6ba1 - dbw $09, $6b96 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6ba1 + dbw EFFECTCMDTYPE_AI, $6b96 db $00 DoduoFuryAttackEffectCommands: - dbw $03, $6bc2 - dbw $09, $6bba + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6bc2 + dbw EFFECTCMDTYPE_AI, $6bba db $00 DodrioRetreatAidEffectCommands: - dbw $01, $6bd7 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $6bd7 db $00 DodrioRageEffectCommands: - dbw $03, $6bdf - dbw $09, $6bd9 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6bdf + dbw EFFECTCMDTYPE_AI, $6bd9 db $00 MeowthPayDayEffectCommands: - dbw $04, $6be8 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6be8 db $00 DragonairSlamEffectCommands: - dbw $03, $6c14 - dbw $09, $6c0c + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6c14 + dbw EFFECTCMDTYPE_AI, $6c0c db $00 DragonairHyperBeamEffectCommands: - dbw $04, $6c35 - dbw $05, $6c2c - dbw $08, $6c2f + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6c35 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $6c2c + dbw EFFECTCMDTYPE_UNKNOWN_08, $6c2f db $00 ClefableMetronomeEffectCommands: - dbw $01, $6c77 - dbw $02, $6c82 - dbw $08, $6c7e + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $6c77 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $6c82 + dbw EFFECTCMDTYPE_UNKNOWN_08, $6c7e db $00 ClefableMinimizeEffectCommands: - dbw $03, $6c88 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6c88 db $00 PidgeotHurricaneEffectCommands: - dbw $04, $6c8e + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6c8e db $00 PidgeottoWhirlwindEffectCommands: - dbw $04, $6ce9 - dbw $05, $6cd3 - dbw $0a, $6cd3 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6ce9 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $6cd3 + dbw EFFECTCMDTYPE_SWITCH_DEFENDING_PKMN, $6cd3 db $00 PidgeottoMirrorMoveEffectCommands: - dbw $01, $6cf2 - dbw $02, $6cf5 - dbw $03, $6cfe - dbw $04, $6d01 - dbw $05, $6cf8 - dbw $08, $6cfb - dbw $09, $6cef + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $6cf2 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $6cf5 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6cfe + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6d01 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $6cf8 + dbw EFFECTCMDTYPE_UNKNOWN_08, $6cfb + dbw EFFECTCMDTYPE_AI, $6cef db $00 ClefairySingEffectCommands: - dbw $03, $6d04 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6d04 db $00 ClefairyMetronomeEffectCommands: - dbw $01, $6d0b - dbw $02, $6d16 - dbw $08, $6d12 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $6d0b + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $6d16 + dbw EFFECTCMDTYPE_UNKNOWN_08, $6d12 db $00 WigglytuffLullabyEffectCommands: - dbw $03, SleepEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, SleepEffect db $00 WigglytuffDoTheWaveEffectCommands: - dbw $03, $6d87 - dbw $09, $6d87 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6d87 + dbw EFFECTCMDTYPE_AI, $6d87 db $00 JigglypuffLullabyEffectCommands: - dbw $03, SleepEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, SleepEffect db $00 JigglypuffFirstAidEffectCommands: - dbw $01, $6d94 - dbw $04, $6d9f + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $6d94 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6d9f db $00 JigglypuffDoubleEdgeEffectCommands: - dbw $04, $6da6 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6da6 db $00 PersianPounceEffectCommands: - dbw $03, $6dac + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6dac db $00 LickitungTongueWrapEffectCommands: - dbw $03, Paralysis50PercentEffect + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, Paralysis50PercentEffect db $00 LickitungSupersonicEffectCommands: - dbw $03, $6db2 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6db2 db $00 PidgeyWhirlwindEffectCommands: - dbw $04, $6dcf - dbw $05, $6db9 - dbw $0a, $6db9 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6dcf + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $6db9 + dbw EFFECTCMDTYPE_SWITCH_DEFENDING_PKMN, $6db9 db $00 PorygonConversion1EffectCommands: - dbw $01, $6dd5 - dbw $02, $6ded - dbw $04, $6dfb - dbw $08, $6df7 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $6dd5 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $6ded + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6dfb + dbw EFFECTCMDTYPE_UNKNOWN_08, $6df7 db $00 PorygonConversion2EffectCommands: - dbw $01, $6e1f - dbw $02, $6e31 - dbw $04, $6e5e - dbw $08, $6e3c + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $6e1f + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $6e31 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6e5e + dbw EFFECTCMDTYPE_UNKNOWN_08, $6e3c db $00 ChanseyScrunchEffectCommands: - dbw $03, $6ee7 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6ee7 db $00 ChanseyDoubleEdgeEffectCommands: - dbw $04, $6efb + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6efb db $00 RaticateSuperFangEffectCommands: - dbw $03, $6f07 - dbw $09, $6f01 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6f07 + dbw EFFECTCMDTYPE_AI, $6f01 db $00 TrainerCardAsPokemonEffectCommands: - dbw $02, $6f18 - dbw $03, $6f3c - dbw $05, $6f27 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $6f18 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6f3c + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $6f27 db $00 DragoniteHealingWindEffectCommands: - dbw $01, $6f51 - dbw $07, $6f53 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $6f51 + dbw EFFECTCMDTYPE_PKMN_POWER_TRIGGER, $6f53 db $00 Dragonite1SlamEffectCommands: - dbw $03, $6fa4 - dbw $09, $6f9c + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $6fa4 + dbw EFFECTCMDTYPE_AI, $6f9c db $00 MeowthCatPunchEffectCommands: - dbw $04, $6fe0 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6fe0 db $00 DittoMorphEffectCommands: - dbw $04, $6ff6 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $6ff6 db $00 PidgeotSlicingWindEffectCommands: - dbw $04, $70bf + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $70bf db $00 PidgeotGaleEffectCommands: - dbw $03, $70d0 - dbw $04, $70d6 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $70d0 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $70d6 db $00 JigglypuffFriendshipSongEffectCommands: - dbw $01, $710d - dbw $04, $7119 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $710d + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $7119 db $00 JigglypuffExpandEffectCommands: - dbw $04, $7153 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, $7153 db $00 DoubleColorlessEnergyEffectCommands: @@ -1416,191 +1426,191 @@ GrassEnergyEffectCommands: db $00 SuperPotionEffectCommands: - dbw $01, $7159 - dbw $02, $7167 - dbw $03, $71b5 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7159 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $7167 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $71b5 db $00 ImakuniEffectCommands: - dbw $03, $7216 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $7216 db $00 EnergyRemovalEffectCommands: - dbw $01, $7252 - dbw $02, $725f - dbw $03, $7273 - dbw $08, $726f + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7252 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $725f + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $7273 + dbw EFFECTCMDTYPE_UNKNOWN_08, $726f db $00 EnergyRetrievalEffectCommands: - dbw $01, $728e - dbw $02, $72a0 - dbw $03, $72f8 - dbw $05, $72b9 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $728e + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $72a0 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $72f8 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $72b9 db $00 EnergySearchEffectCommands: - dbw $01, $731c - dbw $03, $7372 - dbw $05, $7328 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $731c + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $7372 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $7328 db $00 ProfessorOakEffectCommands: - dbw $03, $73a1 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $73a1 db $00 PotionEffectCommands: - dbw $01, $73ca - dbw $02, $73d1 - dbw $03, $73ef + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $73ca + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $73d1 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $73ef db $00 GamblerEffectCommands: - dbw $03, $73f9 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $73f9 db $00 ItemFinderEffectCommands: - dbw $01, $743b - dbw $02, $744a - dbw $03, $7463 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $743b + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $744a + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $7463 db $00 DefenderEffectCommands: - dbw $02, $7488 - dbw $03, $7499 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $7488 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $7499 db $00 MysteriousFossilEffectCommands: - dbw $01, $74b3 - dbw $03, $74bf + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $74b3 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $74bf db $00 FullHealEffectCommands: - dbw $01, $74c5 - dbw $03, $74d1 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $74c5 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $74d1 db $00 ImposterProfessorOakEffectCommands: - dbw $03, $74e1 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $74e1 db $00 ComputerSearchEffectCommands: - dbw $01, $7513 - dbw $02, $752a - dbw $03, $7545 - dbw $05, $752e + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7513 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $752a + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $7545 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $752e db $00 ClefairyDollEffectCommands: - dbw $01, $7561 - dbw $03, $756d + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7561 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $756d db $00 MrFujiEffectCommands: - dbw $01, $7573 - dbw $02, $757e - dbw $03, $758f + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7573 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $757e + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $758f db $00 PlusPowerEffectCommands: - dbw $03, $75e0 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $75e0 db $00 SwitchEffectCommands: - dbw $01, $75ee - dbw $02, $75f9 - dbw $03, $760a + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $75ee + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $75f9 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $760a db $00 PokemonCenterEffectCommands: - dbw $01, $7611 - dbw $03, $7618 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7611 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $7618 db $00 PokemonFluteEffectCommands: - dbw $01, $7659 - dbw $02, $7672 - dbw $03, $768f + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7659 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $7672 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $768f db $00 PokemonBreederEffectCommands: - dbw $01, $76b3 - dbw $02, $76c1 - dbw $03, $76f4 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $76b3 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $76c1 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $76f4 db $00 ScoopUpEffectCommands: - dbw $01, $7795 - dbw $02, $77a0 - dbw $03, $77c3 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7795 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $77a0 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $77c3 db $00 PokemonTraderEffectCommands: - dbw $01, $7826 - dbw $02, $7838 - dbw $03, $788d - dbw $05, $7853 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7826 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $7838 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $788d + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $7853 db $00 PokedexEffectCommands: - dbw $01, $78e1 - dbw $03, $79aa - dbw $05, $78ed + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $78e1 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $79aa + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $78ed db $00 BillEffectCommands: - dbw $03, $79c4 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $79c4 db $00 LassEffectCommands: - dbw $03, $79e3 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $79e3 db $00 MaintenanceEffectCommands: - dbw $01, $7a70 - dbw $02, $7a7b - dbw $03, $7a85 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7a70 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $7a7b + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $7a85 db $00 PokeBallEffectCommands: - dbw $01, $7aad - dbw $03, $7b15 - dbw $05, $7ab9 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7aad + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $7b15 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $7ab9 db $00 RecycleEffectCommands: - dbw $01, $7b36 - dbw $03, $7b68 - dbw $05, $7b41 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7b36 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $7b68 + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $7b41 db $00 ReviveEffectCommands: - dbw $01, $7b80 - dbw $02, $7b93 - dbw $03, $7bb0 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7b80 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $7b93 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $7bb0 db $00 DevolutionSprayEffectCommands: - dbw $01, $7c0b - dbw $02, $7c24 - dbw $03, $7c99 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7c0b + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $7c24 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $7c99 db $00 SuperEnergyRemovalEffectCommands: - dbw $01, $7cd0 - dbw $02, $7ce4 - dbw $03, $7d73 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7cd0 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $7ce4 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $7d73 db $00 SuperEnergyRetrievalEffectCommands: - dbw $01, $7da4 - dbw $02, $7db6 - dbw $03, $7dfa - dbw $05, $7dba + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7da4 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $7db6 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $7dfa + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $7dba db $00 GustOfWindEffectCommands: - dbw $01, $7e6e - dbw $02, $7e79 - dbw $03, $7e90 + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, $7e6e + dbw EFFECTCMDTYPE_INITIAL_EFFECT_2, $7e79 + dbw EFFECTCMDTYPE_BEFORE_DAMAGE, $7e90 db $00 diff --git a/src/engine/bank01.asm b/src/engine/bank01.asm index c7a31d0..f0ac3ae 100644 --- a/src/engine/bank01.asm +++ b/src/engine/bank01.asm @@ -346,7 +346,7 @@ DuelMainInterface: ; 426d (1:426d) cp DUELIST_TYPE_PLAYER jr z, PrintDuelMenuAndHandleInput cp DUELIST_TYPE_LINK_OPP - jp z, Func_6911 + jp z, DoLinkOpponentTurn ; DUELIST_TYPE_AI_OPP xor a ld [wVBlankCounter], a @@ -417,8 +417,8 @@ DuelMenuFunctionTable: ; 42f1 (1:42f1) Func_42fd: ; 42fd (1:42fd) call DrawCardFromDeck call nc, AddCardToHand - ld a, $0b - call SetAIAction_SerialSendDuelData + ld a, OPPACTION_DRAW_CARD + call SetOppAction_SerialSendDuelData jp PrintDuelMenuAndHandleInput.menu_items_printed ; 0x430b @@ -532,8 +532,8 @@ DuelMenu_Done: ; 439a (1:439a) call DoPracticeDuelAction ; always jumps on practice duel (no action requires player to select Done) jp c, RestartPracticeDuelTurn - ld a, $05 - call SetAIAction_SerialSendDuelData + ld a, OPPACTION_FINISH_NO_ATTACK + call SetOppAction_SerialSendDuelData call ClearNonTurnTemporaryDuelvars ret @@ -559,8 +559,8 @@ DuelMenu_Retreat: ; 43ab (1:43ab) ld [wBenchSelectedPokemon], a ld a, [wBenchSelectedPokemon] ldh [hTempPlayAreaLocation_ffa1], a - ld a, $04 - call SetAIAction_SerialSendDuelData + ld a, OPPACTION_ATTEMPT_RETREAT + call SetOppAction_SerialSendDuelData call AttemptRetreat jr nc, .done call DrawDuelMainScene @@ -591,8 +591,8 @@ DuelMenu_Retreat: ; 43ab (1:43ab) call ReturnRetreatCostCardsToArena pop af jp c, DuelMainInterface - ld a, $04 - call SetAIAction_SerialSendDuelData + ld a, OPPACTION_ATTEMPT_RETREAT + call SetOppAction_SerialSendDuelData call AttemptRetreat .done @@ -636,18 +636,18 @@ OpenPlayerHandScreen: ; 4436 (1:4436) bit TYPE_TRAINER_F, c jr nz, .trainer_card bit TYPE_ENERGY_F, c - jr nz, UseEnergyCard - call UsePokemonCard + jr nz, PlayEnergyCard + call PlayPokemonCard jr c, ReloadCardListScreen ; jump if card not played jp DuelMainInterface .trainer_card - call UseTrainerCard + call PlayTrainerCard jr c, ReloadCardListScreen ; jump if card not played jp DuelMainInterface -; use the energy card with deck index at hTempCardIndex_ff98 +; play the energy card with deck index at hTempCardIndex_ff98 ; c contains the type of energy card being played -UseEnergyCard: ; 4477 (1:4477) +PlayEnergyCard: ; 4477 (1:4477) ld a, c cp TYPE_ENERGY_WATER jr nz, .not_water_energy @@ -672,8 +672,8 @@ UseEnergyCard: ; 4477 (1:4477) ldh [hTemp_ffa0], a call PutHandCardInPlayArea call PrintPlayAreaCardList_EnableLCD - ld a, $03 - call SetAIAction_SerialSendDuelData + ld a, OPPACTION_PLAY_ENERGY + call SetOppAction_SerialSendDuelData call PrintAttachedEnergyToPokemon jp DuelMainInterface @@ -703,11 +703,11 @@ ReloadCardListScreen: ; 44d2 (1:44d2) jp OpenPlayerHandScreen.handle_input ; 0x44db -; use a basic Pokemon card on the arena or bench, or place an stage 1 or 2 +; place a basic Pokemon card on the arena or bench, or place an stage 1 or 2 ; Pokemon card over a Pokemon card already in play to evolve it. ; the card to use is loaded in wLoadedCard1 and its deck index is at hTempCardIndex_ff98. ; return nc if the card was played, carry if it wasn't. -UsePokemonCard: ; 44db (1:44db) +PlayPokemonCard: ; 44db (1:44db) ld a, [wLoadedCard1Stage] or a ; BASIC jr nz, .try_evolve ; jump if the card being played is a Stage 1 or 2 Pokemon @@ -722,8 +722,8 @@ UsePokemonCard: ; 44db (1:44db) add DUELVARS_ARENA_CARD_STAGE call GetTurnDuelistVariable ld [hl], BASIC - ld a, $01 - call SetAIAction_SerialSendDuelData + ld a, OPPACTION_PLAY_BASIC_PKMN + call SetOppAction_SerialSendDuelData ldh a, [hTempCardIndex_ff98] call LoadCardDataToBuffer1_FromDeckIndex ld a, 20 @@ -793,8 +793,8 @@ UsePokemonCard: ; 44db (1:44db) ldh [hTempPlayAreaLocation_ffa1], a call EvolvePokemonCard jr c, .try_evolve_loop ; jump if evolution wasn't successsful somehow - ld a, $02 - call SetAIAction_SerialSendDuelData + ld a, OPPACTION_EVOLVE_PKMN + call SetOppAction_SerialSendDuelData call PrintPlayAreaCardList_EnableLCD call PrintPokemonEvolvedIntoPokemon call Func_161e @@ -5795,8 +5795,9 @@ ReturnRetreatCostCardsToArena: ; 6564 (1:6564) jr .loop ; 0x657a -; discard retreat cost energy cards and attempt retreat. +; discard retreat cost energy cards and attempt retreat of the arena card. ; return carry if unable to retreat this turn due to unsuccessful confusion check +; if successful, the retreated card is replaced with a bench Pokemon card AttemptRetreat: ; 657a (1:657a) call DiscardRetreatCostCards ldh a, [hTemp_ffa0] @@ -5934,7 +5935,9 @@ DrawHPBar: ; 6614 (1:6614) ret ; 0x6635 -Func_6635: ; 6635 (1:6635) +; when an opponent's Pokemon card attacks, this displays a screen +; containing the description and information of the used move +DisplayOpponentUsedMoveScreen: ; 6635 (1:6635) call ZeroObjectPositionsAndToggleOAMCopy call EmptyScreen call LoadDuelCardSymbolTiles @@ -6227,10 +6230,11 @@ CheckSkipDelayAllowed: ; 67b2 (1:67b2) ret ; 0x67be -; related to ai taking their turn in a duel -; called multiple times during one ai turn +; related to AI taking their turn in a duel +; called multiple times during one AI turn +; each call results in the execution of an OppActionTable function AIMakeDecision: ; 67be (1:67be) - ldh [hAIActionTableIndex], a + ldh [hOppActionTableIndex], a ld hl, wSkipDuelistIsThinkingDelay ld a, [hl] ld [hl], $0 @@ -6243,13 +6247,13 @@ AIMakeDecision: ; 67be (1:67be) jr c, .delay_loop .skip_delay - ldh a, [hAIActionTableIndex] - ld hl, wAITurnEnded + ldh a, [hOppActionTableIndex] + ld hl, wOpponentTurnEnded ld [hl], 0 - ld hl, AIActionTable + ld hl, OppActionTable call JumpToFunctionInTable ld a, [wDuelFinished] - ld hl, wAITurnEnded + ld hl, wOpponentTurnEnded or [hl] jr nz, .turn_ended ld a, [wSkipDuelistIsThinkingDelay] @@ -6438,12 +6442,14 @@ PrintPokemonEvolvedIntoPokemon: ; 68fa (1:68fa) ret ; 0x6911 -Func_6911: ; 6911 (1:6911) +; handle the opponent's turn in a link duel +; loop until either [wOpponentTurnEnded] or [wDuelFinished] is non-0 +DoLinkOpponentTurn: ; 6911 (1:6911) xor a - ld [wAITurnEnded], a + ld [wOpponentTurnEnded], a xor a ld [wSkipDuelistIsThinkingDelay], a -.asm_6919 +.link_opp_turn_loop ld a, [wSkipDuelistIsThinkingDelay] or a jr nz, .asm_6932 @@ -6464,60 +6470,64 @@ Func_6911: ; 6911 (1:6911) jp nz, DuelTransmissionError xor a ld [wSkipDuelistIsThinkingDelay], a - ldh a, [hAIActionTableIndex] + ldh a, [hOppActionTableIndex] cp $17 jp nc, DuelTransmissionError - ld hl, AIActionTable + ld hl, OppActionTable call JumpToFunctionInTable - ld hl, wAITurnEnded + ld hl, wOpponentTurnEnded ld a, [wDuelFinished] or [hl] - jr z, .asm_6919 + jr z, .link_opp_turn_loop ret ; 0x695e -AIActionTable: ; 695e (1:695e) +; actions for the opponent's turn +; on a link duel, this is referenced by DoLinkOpponentTurn in a loop (on each opponent's HandleTurn) +; on a non-link duel (vs AI opponent), this is referenced by AIMakeDecision +OppActionTable: ; 695e (1:695e) dw DuelTransmissionError - dw AIAction_PlayBenchPokemon - dw AIAction_EvolvePokemon - dw AIAction_UseEnergyCard - dw AIAction_TryRetreat - dw AIAction_FinishedTurnNoAttack - dw AIAction_UseTrainerCard - dw AIAction_TryExecuteEffect - dw AIAction_Attack - dw AIAction_AttackEffect - dw AIAction_AttackDamage - dw AIAction_DrawCard - dw AIAction_UsePokemonPower - dw AIAction_6b07 - dw AIAction_ForceOpponentSwitchActive - dw AIAction_NoAction - dw AIAction_NoAction - dw AIAction_TossCoinATimes - dw AIAction_6b30 - dw AIAction_NoAction - dw AIAction_6b3e - dw AIAction_6b15 - dw AIAction_DrawDuelMainScene - -AIAction_DrawCard: ; 698c (1:698c) + dw OppAction_PlayBasicPokemonCard + dw OppAction_EvolvePokemonCard + dw OppAction_PlayEnergyCard + dw OppAction_AttemptRetreat + dw OppAction_FinishTurnWithoutAttacking + dw OppAction_PlayTrainerCard + dw OppAction_ExecuteTrainerCardEffectCommands + dw OppAction_BeginUseAttack + dw OppAction_UseAttack + dw OppAction_DealAttackDamage + dw OppAction_DrawCard + dw OppAction_UsePokemonPower + dw OppAction_ExecutePokemonPowerEffect + dw OppAction_ForceSwitchActive + dw OppAction_NoAction + dw OppAction_NoAction + dw OppAction_TossCoinATimes + dw OppAction_6b30 + dw OppAction_NoAction + dw OppAction_6b3e + dw OppAction_6b15 + dw OppAction_DrawDuelMainScene + +OppAction_DrawCard: ; 698c (1:698c) call DrawCardFromDeck call nc, AddCardToHand ret ; 0x6993 -AIAction_FinishedTurnNoAttack: ; 6993 (1:6993) +OppAction_FinishTurnWithoutAttacking: ; 6993 (1:6993) call DrawDuelMainScene call ClearNonTurnTemporaryDuelvars ldtx hl, FinishedTurnWithoutAttackingText call DrawWideTextBox_WaitForInput ld a, 1 - ld [wAITurnEnded], a + ld [wOpponentTurnEnded], a ret ; 0x69a5 -AIAction_UseEnergyCard: ; 69a5 (1:69a5) +; attach an energy card from hand to the arena or a benched Pokemon +OppAction_PlayEnergyCard: ; 69a5 (1:69a5) ldh a, [hTempPlayAreaLocation_ffa1] ldh [hTempPlayAreaLocation_ff9d], a ld e, a @@ -6534,7 +6544,8 @@ AIAction_UseEnergyCard: ; 69a5 (1:69a5) ret ; 0x69c5 -AIAction_EvolvePokemon: ; 69c5 (1:69c5) +; evolve a Pokemon card in the arena or in the bench +OppAction_EvolvePokemonCard: ; 69c5 (1:69c5) ldh a, [hTempPlayAreaLocation_ffa1] ldh [hTempPlayAreaLocation_ff9d], a ldh a, [hTemp_ffa0] @@ -6548,7 +6559,8 @@ AIAction_EvolvePokemon: ; 69c5 (1:69c5) ret ; 0x69e0 -AIAction_PlayBenchPokemon: ; 69e0 (1:69e0) +; place a basic Pokemon card from hand in the bench +OppAction_PlayBasicPokemonCard: ; 69e0 (1:69e0) ldh a, [hTemp_ffa0] ldh [hTempCardIndex_ff98], a call PutHandPokemonCardInPlayArea @@ -6564,7 +6576,10 @@ AIAction_PlayBenchPokemon: ; 69e0 (1:69e0) ret ; 0x69ff -AIAction_TryRetreat: ; 69ff (1:69ff) +; attempt the retreat of the active Pokemon card +; if successful, discard the required energy cards for retreat and +; swap the retreated card with a Pokemon card from the bench +OppAction_AttemptRetreat: ; 69ff (1:69ff) ld a, DUELVARS_ARENA_CARD call GetTurnDuelistVariable push af @@ -6586,7 +6601,8 @@ AIAction_TryRetreat: ; 69ff (1:69ff) ret ; 0x6a23 -AIAction_UseTrainerCard: ; 6a23 (1:6a23) +; play trainer card from hand +OppAction_PlayTrainerCard: ; 6a23 (1:6a23) call LoadNonPokemonCardEffectCommands call DisplayUsedTrainerCardDetailScreen call PrintUsedTrainerCardDescription @@ -6596,11 +6612,12 @@ AIAction_UseTrainerCard: ; 6a23 (1:6a23) ret ; 0x6a35 -; for trainer card effects -AIAction_TryExecuteEffect: ; 6a35 (1:6a35) - ld a, $06 +; execute the effect commands of the trainer card that is being played +; used only for Trainer cards, as a continuation of OppAction_PlayTrainerCard +OppAction_ExecuteTrainerCardEffectCommands: ; 6a35 (1:6a35) + ld a, EFFECTCMDTYPE_DISCARD_ENERGY call TryExecuteEffectCommandFunction - ld a, $03 + ld a, EFFECTCMDTYPE_BEFORE_DAMAGE call TryExecuteEffectCommandFunction call DrawDuelMainScene ldh a, [hTempCardIndex_ff9f] @@ -6610,10 +6627,9 @@ AIAction_TryExecuteEffect: ; 6a35 (1:6a35) ret ; 0x6a4e -; determine if an attack is successful -; if no, end the turn early -; if yes, AIAction_AttackEffect and AIAction_AttackDamage can be called next -AIAction_Attack: ; 6a4e (1:6a4e) +; begin the execution of an attack and handle the attack being +; possibly unsuccessful due to Sand Attack or Smokescreen +OppAction_BeginUseAttack: ; 6a4e (1:6a4e) ldh a, [hTempCardIndex_ff9f] ld d, a ldh a, [hTemp_ffa0] @@ -6623,34 +6639,39 @@ AIAction_Attack: ; 6a4e (1:6a4e) ld a, $01 ld [wSkipDuelistIsThinkingDelay], a call CheckSandAttackOrSmokescreenSubstatus - jr c, .has_status_effect + jr c, .has_status ld a, DUELVARS_ARENA_CARD_STATUS call GetTurnDuelistVariable and CNF_SLP_PRZ cp CONFUSED - jr z, .has_status_effect + jr z, .has_status call ExchangeRNG ret -.has_status_effect + +; we make it here is attacker is affected by +; Sand Attack, Smokescreen, or confusion +.has_status call DrawDuelMainScene call PrintPokemonsAttackText call WaitForWideTextBoxInput call ExchangeRNG call HandleSandAttackOrSmokescreenSubstatus - ret nc ; attack is successful + ret nc ; return if attack is successful (won the coin toss) call ClearNonTurnTemporaryDuelvars - ; only end the turn if the attack fails + ; end the turn if the attack fails ld a, 1 - ld [wAITurnEnded], a + ld [wOpponentTurnEnded], a ret ; 0x6a8c -AIAction_AttackEffect: ; 6a8c (1:6a8c) - ld a, $06 +; display the attack used by the opponent, and handle +; EFFECTCMDTYPE_DISCARD_ENERGY and confusion damage to self +OppAction_UseAttack: ; 6a8c (1:6a8c) + ld a, EFFECTCMDTYPE_DISCARD_ENERGY call TryExecuteEffectCommandFunction call CheckSelfConfusionDamage jr c, .confusion_damage - call Func_6635 + call DisplayOpponentUsedMoveScreen call PrintPokemonsAttackText call WaitForWideTextBoxInput call ExchangeRNG @@ -6659,20 +6680,21 @@ AIAction_AttackEffect: ; 6a8c (1:6a8c) ret .confusion_damage call DealConfusionDamageToSelf - ; only end the turn if the attack fails + ; end the turn if dealing damage to self due to confusion ld a, 1 - ld [wAITurnEnded], a + ld [wOpponentTurnEnded], a ret ; 0x6ab1 -AIAction_AttackDamage: ; 6ab1 (1:6ab1) - call Func_179a +OppAction_DealAttackDamage: ; 6ab1 (1:6ab1) + call DealAttackDamage ld a, 1 - ld [wAITurnEnded], a + ld [wOpponentTurnEnded], a ret ; 0x6aba -AIAction_ForceOpponentSwitchActive: ; 6aba (1:6aba) +; force the player to switch the active Pokemon with a benched Pokemon +OppAction_ForceSwitchActive: ; 6aba (1:6aba) ldtx hl, SelectPkmnOnBenchToSwitchWithActiveText call DrawWideTextBox_WaitForInput call SwapTurn @@ -6688,7 +6710,7 @@ AIAction_ForceOpponentSwitchActive: ; 6aba (1:6aba) ret ; 0x6ad9 -AIAction_UsePokemonPower: ; 6ad9 (1:6ad9) +OppAction_UsePokemonPower: ; 6ad9 (1:6ad9) ldh a, [hTempCardIndex_ff9f] ld d, a ld e, $00 @@ -6711,29 +6733,30 @@ AIAction_UsePokemonPower: ; 6ad9 (1:6ad9) ret ; 0x6b07 -AIAction_6b07: ; 6b07 (1:6b07) +; execute the EFFECTCMDTYPE_BEFORE_DAMAGE command of the used Pokemon Power +OppAction_ExecutePokemonPowerEffect: ; 6b07 (1:6b07) call Func_7415 - ld a, $03 + ld a, EFFECTCMDTYPE_BEFORE_DAMAGE call TryExecuteEffectCommandFunction ld a, $01 ld [wSkipDuelistIsThinkingDelay], a ret ; 0x6b15 -AIAction_6b15: ; 6b15 (1:6b15) - ld a, $04 +OppAction_6b15: ; 6b15 (1:6b15) + ld a, EFFECTCMDTYPE_AFTER_DAMAGE call TryExecuteEffectCommandFunction ld a, $01 ld [wSkipDuelistIsThinkingDelay], a ret ; 0x6b20 -AIAction_DrawDuelMainScene: ; 6b20 (1:6b20) +OppAction_DrawDuelMainScene: ; 6b20 (1:6b20) call DrawDuelMainScene ret ; 0x6b24 -AIAction_TossCoinATimes: ; 6b24 (1:6b24) +OppAction_TossCoinATimes: ; 6b24 (1:6b24) call SerialRecv8Bytes call TossCoinATimes ld a, $01 @@ -6741,7 +6764,7 @@ AIAction_TossCoinATimes: ; 6b24 (1:6b24) ret ; 0x6b30 -AIAction_6b30: ; 6b30 (1:6b30) +OppAction_6b30: ; 6b30 (1:6b30) ldh a, [hWhoseTurn] push af ldh a, [hTemp_ffa0] @@ -6752,7 +6775,7 @@ AIAction_6b30: ; 6b30 (1:6b30) ret ; 0x6b3e -AIAction_6b3e: ; 6b3e (1:6b3e) +OppAction_6b3e: ; 6b3e (1:6b3e) call DrawDuelMainScene ld a, DUELVARS_ARENA_CARD_STATUS call GetTurnDuelistVariable @@ -6782,7 +6805,7 @@ AIAction_6b3e: ; 6b3e (1:6b3e) ret ; 0x6b7d -AIAction_NoAction: ; 6b7d (1:6b7d) +OppAction_NoAction: ; 6b7d (1:6b7d) ret ; 0x6b7e diff --git a/src/engine/bank08.asm b/src/engine/bank08.asm index ca52ca5..a3614af 100644 --- a/src/engine/bank08.asm +++ b/src/engine/bank08.asm @@ -49,7 +49,7 @@ Func_200e5: ; 200e5 (8:40e5) bank1call CheckCantUseTrainerDueToHeadache jp c, $41a8 call LoadNonPokemonCardEffectCommands - ld a, $1 + ld a, EFFECTCMDTYPE_INITIAL_EFFECT_1 call TryExecuteEffectCommandFunction jp c, $41a8 farcall $5, $743b diff --git a/src/engine/effect_functions.asm b/src/engine/effect_functions.asm index c8d8f24..ab7bd38 100644 --- a/src/engine/effect_functions.asm +++ b/src/engine/effect_functions.asm @@ -110,7 +110,7 @@ Func_2c08c: push de push af ld a, $11 - call SetAIAction_SerialSendDuelData + call SetOppAction_SerialSendDuelData pop af pop de call SerialSend8Bytes diff --git a/src/engine/home.asm b/src/engine/home.asm index ff07a17..5271270 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -2812,19 +2812,21 @@ ExchangeRNG: ; 0f58 (0:0f58) jp c, DuelTransmissionError ret -; sets hAIActionTableIndex to an AI action specified in register a. -; send 10 bytes of data to the other game from hAIActionTableIndex, hTempCardIndex_ff9f, +; sets hOppActionTableIndex to an AI action specified in register a. +; send 10 bytes of data to the other game from hOppActionTableIndex, hTempCardIndex_ff9f, ; hTemp_ffa0, and hTempPlayAreaLocation_ffa1, and hTempRetreatCostCards. ; finally exchange RNG data. -SetAIAction_SerialSendDuelData: ; 0f7f (0:0f7f) +; the receiving side will use this data to read the OPP_ACTION_* value in +; [hOppActionTableIndex] and match it by calling the correspoding OppAction* function +SetOppAction_SerialSendDuelData: ; 0f7f (0:0f7f) push hl push bc - ldh [hAIActionTableIndex], a + ldh [hOppActionTableIndex], a ld a, DUELVARS_DUELIST_TYPE call GetNonTurnDuelistVariable cp DUELIST_TYPE_LINK_OPP jr nz, .not_link - ld hl, hAIActionTableIndex + ld hl, hOppActionTableIndex ld bc, 10 call SerialSendBytes call ExchangeRNG @@ -2834,13 +2836,13 @@ SetAIAction_SerialSendDuelData: ; 0f7f (0:0f7f) ret ; 0xf9b -; receive 10 bytes of data from wSerialRecvBuf and store them into hAIActionTableIndex, +; receive 10 bytes of data from wSerialRecvBuf and store them into hOppActionTableIndex, ; hTempCardIndex_ff9f, hTemp_ffa0, and hTempPlayAreaLocation_ffa1, ; and hTempRetreatCostCards. also exchange RNG data. SerialRecvDuelData: ; 0f9b (0:0f9b) push hl push bc - ld hl, hAIActionTableIndex + ld hl, hOppActionTableIndex ld bc, 10 call SerialRecvBytes call ExchangeRNG @@ -3789,8 +3791,8 @@ EvolvePokemonCard: ; 13a2 (0:13a2) ldh a, [hTempCardIndex_ff98] call PutHandCardInPlayArea ; update the Pokemon's HP with the difference - ldh a, [hTempPlayAreaLocation_ff9d] - ld a, e ; derp + ldh a, [hTempPlayAreaLocation_ff9d] ; derp + ld a, e add DUELVARS_ARENA_CARD_HP call GetTurnDuelistVariable ld a, [wLoadedCard2HP] @@ -4368,7 +4370,7 @@ Func_161e: ; 161e (0:161e) call DrawWideTextBox_WaitForInput call ExchangeRNG call Func_7415 - ld a, $07 + ld a, EFFECTCMDTYPE_PKMN_POWER_TRIGGER call TryExecuteEffectCommandFunction ret ; 0x16ad @@ -4461,7 +4463,7 @@ Func_16f6: ; 16f6 (0:16f6) bank1call ClearNonTurnTemporaryDuelvars_CopyStatus ret -; use attack or Pokemon Power +; Use an attack (from DuelMenu_Attack) or a Pokemon Power (from DuelMenu_PkmnPower) UseAttackOrPokemonPower: ; 1730 (0:1730) ld a, [wSelectedMoveIndex] ld [wPlayerAttackingMoveIndex], a @@ -4473,52 +4475,51 @@ UseAttackOrPokemonPower: ; 1730 (0:1730) cp POKEMON_POWER jp z, UsePokemonPower call Func_16f6 - ld a, $1 + ld a, EFFECTCMDTYPE_INITIAL_EFFECT_1 call TryExecuteEffectCommandFunction jp c, DrawWideTextBox_WaitForInput_ReturnCarry call CheckSandAttackOrSmokescreenSubstatus - jr c, .asm_1766 - ld a, $2 + jr c, .sand_attack_smokescreen + ld a, EFFECTCMDTYPE_INITIAL_EFFECT_2 call TryExecuteEffectCommandFunction jp c, ReturnCarry - call Func_1874 - jr .asm_1777 -.asm_1766 - call Func_1874 + call SendAttackDataToLinkOpponent + jr .next +.sand_attack_smokescreen + call SendAttackDataToLinkOpponent call HandleSandAttackOrSmokescreenSubstatus jp c, ClearNonTurnTemporaryDuelvars_ResetCarry - ld a, $2 + ld a, EFFECTCMDTYPE_INITIAL_EFFECT_2 call TryExecuteEffectCommandFunction jp c, ReturnCarry -.asm_1777 - ld a, $9 - call SetAIAction_SerialSendDuelData - ld a, $6 +.next + ld a, OPPACTION_USE_ATTACK + call SetOppAction_SerialSendDuelData + ld a, EFFECTCMDTYPE_DISCARD_ENERGY call TryExecuteEffectCommandFunction call CheckSelfConfusionDamage jp c, DealConfusionDamageToSelf call DrawDuelMainScene_PrintPokemonsAttackText call WaitForWideTextBoxInput call ExchangeRNG - ld a, $5 + ld a, EFFECTCMDTYPE_REQUIRE_SELECTION call TryExecuteEffectCommandFunction - ld a, $a - call SetAIAction_SerialSendDuelData + ld a, OPPACTION_DEAL_ATTACK_DAMAGE + call SetOppAction_SerialSendDuelData ; fallthrough -; deal attack damage -Func_179a: ; 179a (0:179a) +DealAttackDamage: ; 179a (0:179a) call Func_7415 ld a, [wLoadedMoveCategory] and RESIDUAL - jr nz, .asm_17ad + jr nz, .deal_damage call SwapTurn call HandleNoDamageOrEffectSubstatus call SwapTurn -.asm_17ad +.deal_damage xor a ldh [hTempPlayAreaLocation_ff9d], a - ld a, $3 + ld a, EFFECTCMDTYPE_BEFORE_DAMAGE call TryExecuteEffectCommandFunction call ApplyDamageModifiers_DamageToTarget call Func_189d @@ -4562,7 +4563,7 @@ Func_17ed: ; 17ed (0:17ed) Func_17fb: ; 17fb (0:17fb) ld a, [wTempNonTurnDuelistCardID] push af - ld a, $4 + ld a, EFFECTCMDTYPE_AFTER_DAMAGE call TryExecuteEffectCommandFunction pop af ld [wTempNonTurnDuelistCardID], a @@ -4610,24 +4611,27 @@ DealConfusionDamageToSelf: ; 1828 (0:1828) ; use Pokemon Power UsePokemonPower: ; 184b (0:184b) call Func_7415 - ld a, $2 + ld a, EFFECTCMDTYPE_INITIAL_EFFECT_2 call TryExecuteEffectCommandFunction jr c, DisplayUsePokemonPowerScreen_WaitForInput - ld a, $5 + ld a, EFFECTCMDTYPE_REQUIRE_SELECTION call TryExecuteEffectCommandFunction jr c, ReturnCarry - ld a, $c - call SetAIAction_SerialSendDuelData + ld a, OPPACTION_USE_PKMN_POWER + call SetOppAction_SerialSendDuelData call ExchangeRNG - ld a, $d - call SetAIAction_SerialSendDuelData - ld a, $3 + ld a, OPPACTION_EXECUTE_PKMN_POWER_EFFECT + call SetOppAction_SerialSendDuelData + ld a, EFFECTCMDTYPE_BEFORE_DAMAGE call TryExecuteEffectCommandFunction - ld a, $16 - call SetAIAction_SerialSendDuelData + ld a, OPPACTION_DUEL_MAIN_SCENE + call SetOppAction_SerialSendDuelData ret -Func_1874: ; 1874 (0:1874) +; called by UseAttackOrPokemonPower (on an attack only) +; in a link duel, it's used to send the other game data about the +; attack being in use, triggering a call to OppAction_BeginUseAttack in the receiver +SendAttackDataToLinkOpponent: ; 1874 (0:1874) ld a, [wccec] or a ret nz @@ -4641,8 +4645,8 @@ Func_1874: ; 1874 (0:1874) ldh [hTempCardIndex_ff9f], a ld a, [wPlayerAttackingMoveIndex] ldh [hTemp_ffa0], a - ld a, $8 - call SetAIAction_SerialSendDuelData + ld a, OPPACTION_BEGIN_ATTACK + call SetOppAction_SerialSendDuelData call ExchangeRNG pop af ldh [hTempCardIndex_ff9f], a @@ -4707,10 +4711,10 @@ CheckSelfConfusionDamage: ; 18d7 (0:18d7) ret ; 0x18f9 -; use the trainer card with deck index at hTempCardIndex_ff98. +; play the trainer card with deck index at hTempCardIndex_ff98. ; a trainer card is like a move effect, with its own effect commands. ; return nc if the card was played, carry if it wasn't. -UseTrainerCard: ; 18f9 (0:18f9) +PlayTrainerCard: ; 18f9 (0:18f9) call CheckCantUseTrainerDueToHeadache jr c, .cant_use ldh a, [hWhoseTurn] @@ -4718,7 +4722,7 @@ UseTrainerCard: ; 18f9 (0:18f9) ldh a, [hTempCardIndex_ff98] ldh [hTempCardIndex_ff9f], a call LoadNonPokemonCardEffectCommands - ld a, $01 + ld a, EFFECTCMDTYPE_INITIAL_EFFECT_1 call TryExecuteEffectCommandFunction jr nc, .can_use .cant_use @@ -4726,20 +4730,20 @@ UseTrainerCard: ; 18f9 (0:18f9) scf ret .can_use - ld a, $02 + ld a, EFFECTCMDTYPE_INITIAL_EFFECT_2 call TryExecuteEffectCommandFunction jr c, .done - ld a, $06 - call SetAIAction_SerialSendDuelData + ld a, OPPACTION_PLAY_TRAINER + call SetOppAction_SerialSendDuelData call DisplayUsedTrainerCardDetailScreen call ExchangeRNG - ld a, $06 + ld a, EFFECTCMDTYPE_DISCARD_ENERGY call TryExecuteEffectCommandFunction - ld a, $05 + ld a, EFFECTCMDTYPE_REQUIRE_SELECTION call TryExecuteEffectCommandFunction - ld a, $07 - call SetAIAction_SerialSendDuelData - ld a, $03 + ld a, OPPACTION_EXECUTE_TRAINER_EFFECTS + call SetOppAction_SerialSendDuelData + ld a, EFFECTCMDTYPE_BEFORE_DAMAGE call TryExecuteEffectCommandFunction ldh a, [hTempCardIndex_ff9f] call MoveHandCardToDiscardPile diff --git a/src/hram.asm b/src/hram.asm index bfdf81a..9cdba06 100644 --- a/src/hram.asm +++ b/src/hram.asm @@ -70,7 +70,7 @@ hTempPlayAreaLocation_ff9d:: ; ff9d ds $1 ; index for AIActionTable -hAIActionTableIndex:: ; ff9e +hOppActionTableIndex:: ; ff9e ds $1 ; deck index of a card (0-59) diff --git a/src/wram.asm b/src/wram.asm index caba9d1..00beec2 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -730,7 +730,7 @@ wSortCardListByID:: ; cbdf wcbe0:: ; cbe0 ds $1 -wAITurnEnded:: ; cbe1 +wOpponentTurnEnded:: ; cbe1 ds $1 wOppRNG1:: ; cbe2 |