summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/constants/duel_constants.asm39
-rw-r--r--src/data/effect_commands.asm1280
-rw-r--r--src/engine/bank01.asm229
-rw-r--r--src/engine/bank08.asm2
-rw-r--r--src/engine/effect_functions.asm2
-rw-r--r--src/engine/home.asm114
-rw-r--r--src/hram.asm2
-rw-r--r--src/wram.asm2
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