hedara90 27b542466f
Fix Flame Burst timeout if primary target is fainted (#7793)
Co-authored-by: Hedara <hedara90@gmail.com>
2025-09-25 10:39:56 +02:00

57 lines
1.7 KiB
C

#include "global.h"
#include "test/battle.h"
ASSUMPTIONS
{
ASSUME(GetMoveAdditionalEffectById(MOVE_FLAME_BURST, 0)->moveEffect == MOVE_EFFECT_FLAME_BURST);
}
// Flame Burst AoE is supposed to hit through Substitute
DOUBLE_BATTLE_TEST("Flame Burst Substitute")
{
GIVEN {
ASSUME(GetMoveEffect(MOVE_SUBSTITUTE) == EFFECT_SUBSTITUTE);
PLAYER(SPECIES_WOBBUFFET);
PLAYER(SPECIES_WYNAUT);
OPPONENT(SPECIES_WYNAUT);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponentLeft, MOVE_SUBSTITUTE); MOVE(playerRight, MOVE_FLAME_BURST, target: opponentRight); }
} SCENE {
MESSAGE("The bursting flames hit the opposing Wynaut!");
NOT MESSAGE("The substitute took damage for the opposing Wynaut!");
}
}
DOUBLE_BATTLE_TEST("Flame Burst doesn't crash, opponent to player")
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_WYNAUT);
OPPONENT(SPECIES_WYNAUT);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponentRight, MOVE_FLAME_BURST, target: playerLeft); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_FLAME_BURST, opponentRight);
HP_BAR(playerRight);
MESSAGE("Wobbuffet fainted!");
}
}
DOUBLE_BATTLE_TEST("Flame Burst doesn't crash, player to opponent")
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET)
PLAYER(SPECIES_WYNAUT);
OPPONENT(SPECIES_WYNAUT) { HP(1); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(playerLeft, MOVE_FLAME_BURST, target: opponentLeft); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_FLAME_BURST, playerLeft);
HP_BAR(opponentRight);
MESSAGE("The opposing Wynaut fainted!");
}
}