diff options
author | ElectroDeoxys <ElectroDeoxys@gmail.com> | 2020-05-11 11:34:02 +0100 |
---|---|---|
committer | ElectroDeoxys <ElectroDeoxys@gmail.com> | 2020-12-16 00:18:20 +0000 |
commit | edc1887122ac25073fa167a23d5af23ae2c37154 (patch) | |
tree | 5ad3bae9ea1a6b51b3172cf33c2334095d6c8995 | |
parent | 4137fd0fd67dcb3236425cf42050665f63fd27b0 (diff) |
Butterfree attack effects
-rw-r--r-- | src/data/effect_commands.asm | 10 | ||||
-rw-r--r-- | src/engine/effect_functions.asm | 45 |
2 files changed, 48 insertions, 7 deletions
diff --git a/src/data/effect_commands.asm b/src/data/effect_commands.asm index 7021bd9..9b93372 100644 --- a/src/data/effect_commands.asm +++ b/src/data/effect_commands.asm @@ -58,7 +58,7 @@ WeepinbellPoisonPowderEffectCommands: db $00 VictreebelLureEffectCommands: - dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, VictreebelLure_CheckBenchPokemon + dbw EFFECTCMDTYPE_INITIAL_EFFECT_1, VictreebelLure_CheckBench dbw EFFECTCMDTYPE_AFTER_DAMAGE, VictreebelLure_SwitchEffect dbw EFFECTCMDTYPE_REQUIRE_SELECTION, VictreebelLure_PlayerSelectEffect dbw EFFECTCMDTYPE_UNKNOWN_08, VictreebelLure_AISelectEffect @@ -219,13 +219,13 @@ NidorinoDoubleKickEffectCommands: db $00 ButterfreeWhirlwindEffectCommands: - dbw EFFECTCMDTYPE_AFTER_DAMAGE, $4b09 - dbw EFFECTCMDTYPE_REQUIRE_SELECTION, $4af3 - dbw EFFECTCMDTYPE_SWITCH_DEFENDING_PKMN, $4af3 + dbw EFFECTCMDTYPE_AFTER_DAMAGE, ButterfreeWhirlwind_SwitchEffect + dbw EFFECTCMDTYPE_REQUIRE_SELECTION, ButterfreeWhirlwind_CheckBench + dbw EFFECTCMDTYPE_SWITCH_DEFENDING_PKMN, ButterfreeWhirlwind_CheckBench db $00 ButterfreeMegaDrainEffectCommands: - dbw EFFECTCMDTYPE_AFTER_DAMAGE, $4b0f + dbw EFFECTCMDTYPE_AFTER_DAMAGE, ButterfreeMegaDrainEffect db $00 ParasSporeEffectCommands: diff --git a/src/engine/effect_functions.asm b/src/engine/effect_functions.asm index 5414ace..3c6fa5d 100644 --- a/src/engine/effect_functions.asm +++ b/src/engine/effect_functions.asm @@ -766,7 +766,7 @@ WeepinbellPoisonPowder_AIEffect: ; 2c738 (b:4738) ; 0x2c740 ; returns carry if non-duelist has no Bench Pokemon -VictreebelLure_CheckBenchPokemon: ; 2c740 (b:4740) +VictreebelLure_CheckBench: ; 2c740 (b:4740) ld a, DUELVARS_NUMBER_OF_POKEMON_IN_PLAY_AREA call GetNonTurnDuelistVariable ldtx hl, LureNoPokemonOnTheBenchText @@ -1405,7 +1405,48 @@ NidorinoDoubleKick_MultiplierEffect: ; 2cabb (b:4abb) ret ; 0x2caf3 - INCROM $2caf3, $2cbfb +ButterfreeWhirlwind_CheckBench: ; 2caf3 (b:4af3) + ld a, DUELVARS_NUMBER_OF_POKEMON_IN_PLAY_AREA + call GetNonTurnDuelistVariable + cp 2 + jr nc, .has_bench + ; no bench, do not do effect + ld a, $ff + ldh [hTemp_ffa0], a + ret +.has_bench + call DuelistSelectForcedSwitch + ldh a, [hTempPlayAreaLocation_ff9d] + ldh [hTemp_ffa0], a + ret +; 0x2cb09 + +ButterfreeWhirlwind_SwitchEffect: ; 2cb09 (b:4b09) + ldh a, [hTemp_ffa0] + call HandleSwitchDefendingPokemonEffect + ret +; 0x2cb0f + +ButterfreeMegaDrainEffect: ; 2cb0f (b:4b0f) + ld hl, wDealtDamage + ld a, [hli] + ld h, [hl] + ld l, a + srl h + rr l + bit 0, l + jr z, .rounded + ; round up to nearest 10 + ld de, 10 / 2 + add hl, de +.rounded + ld e, l + ld d, h + call ApplyAndAnimateHPDrain + ret +; 0x2cb27 + + INCROM $2cb27, $2cbfb Func_2cbfb: ; 2cbfb (b:4bfb) ldh a, [hAIEnergyTransPlayAreaLocation] |