diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 69a0526f45..de6fe66a4b 100755 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -6015,7 +6015,7 @@ static void Cmd_moveend(void) // Not strictly a protect effect, but works the same way if (gProtectStructs[gBattlerTarget].beakBlastCharge - && CanBeBurned(gBattlerAttacker, gBattlerTarget, GetBattlerAbility(gBattlerAttacker)) + && CanBeBurned(gBattlerAttacker, gBattlerAttacker, GetBattlerAbility(gBattlerAttacker)) && !(gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_NO_EFFECT)) { gProtectStructs[gBattlerAttacker].touchedProtectLike = FALSE; diff --git a/test/battle/move_effect/beak_blast.c b/test/battle/move_effect/beak_blast.c index 8c28e7f8ea..b879a198c8 100644 --- a/test/battle/move_effect/beak_blast.c +++ b/test/battle/move_effect/beak_blast.c @@ -112,6 +112,21 @@ SINGLE_BATTLE_TEST("Beak Blast burns only when contact moves are used") } } +SINGLE_BATTLE_TEST("Beak Blast doesn't burn fire types") +{ + GIVEN { + ASSUME(gSpeciesInfo[SPECIES_ARCANINE].types[0] == TYPE_FIRE || gSpeciesInfo[SPECIES_ARCANINE].types[1]); + PLAYER(SPECIES_ARCANINE); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_BEAK_BLAST); MOVE(player, MOVE_SCRATCH); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, player); + NOT STATUS_ICON(player, burn: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_BEAK_BLAST, opponent); + } +} + TO_DO_BATTLE_TEST("Beak Blast's charging message is shown regardless if it would've missed"); TO_DO_BATTLE_TEST("Beak Blast fails if it's forced by Encore after choosing a different move"); TO_DO_BATTLE_TEST("Bulletproof is immune to Beak Blast but not to the burn it causes");