summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElectroDeoxys <ElectroDeoxys@gmail.com>2020-05-11 11:34:02 +0100
committerElectroDeoxys <ElectroDeoxys@gmail.com>2020-12-16 00:18:20 +0000
commitedc1887122ac25073fa167a23d5af23ae2c37154 (patch)
tree5ad3bae9ea1a6b51b3172cf33c2334095d6c8995
parent4137fd0fd67dcb3236425cf42050665f63fd27b0 (diff)
Butterfree attack effects
-rw-r--r--src/data/effect_commands.asm10
-rw-r--r--src/engine/effect_functions.asm45
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]