pokeemerald-expansion/test/battle/move_effect_secondary/throat_chop.c
PhallenTree 3494d6b064
Some checks are pending
CI / build (push) Waiting to run
CI / docs_validate (push) Waiting to run
CI / allcontributors (push) Waiting to run
Docs / deploy (push) Waiting to run
Fixes Throat Chop timer being reset with every use of the move (#9246)
2026-02-18 15:40:30 +01:00

68 lines
2.5 KiB
C

#include "global.h"
#include "test/battle.h"
ASSUMPTIONS
{
ASSUME(MoveHasAdditionalEffect(MOVE_THROAT_CHOP, MOVE_EFFECT_THROAT_CHOP) == TRUE);
}
SINGLE_BATTLE_TEST("Throat Chop prevents the usage of sound moves")
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET) { Speed(100); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(50); }
} WHEN {
TURN { MOVE(player, MOVE_THROAT_CHOP); MOVE(opponent, MOVE_HYPER_VOICE); }
TURN {}
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_THROAT_CHOP, player);
HP_BAR(opponent);
MESSAGE("The effects of Throat Chop prevent the opposing Wobbuffet from using certain moves!");
NONE_OF {
ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, opponent);
}
}
}
SINGLE_BATTLE_TEST("Throat Chop prevents sound base moves for 2 turns")
{
GIVEN {
ASSUME(IsSoundMove(MOVE_HYPER_VOICE));
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_HYPER_VOICE); }
} WHEN {
TURN { MOVE(opponent, MOVE_HYPER_VOICE); MOVE(player, MOVE_THROAT_CHOP); }
TURN { FORCED_MOVE(opponent); }
TURN { MOVE(opponent, MOVE_HYPER_VOICE); MOVE(player, MOVE_THROAT_CHOP); }
TURN { FORCED_MOVE(opponent); }
TURN { MOVE(opponent, MOVE_HYPER_VOICE); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, opponent);
ANIMATION(ANIM_TYPE_MOVE, MOVE_THROAT_CHOP, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_STRUGGLE, opponent);
ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, opponent);
ANIMATION(ANIM_TYPE_MOVE, MOVE_THROAT_CHOP, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_STRUGGLE, opponent);
ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, opponent);
}
}
SINGLE_BATTLE_TEST("Throat Chop usage when target is already prevented from using sound moves doesn't reset timer")
{
GIVEN {
ASSUME(IsSoundMove(MOVE_HYPER_VOICE));
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_HYPER_VOICE); }
} WHEN {
TURN { MOVE(opponent, MOVE_HYPER_VOICE); MOVE(player, MOVE_THROAT_CHOP); }
TURN { FORCED_MOVE(opponent); MOVE(player, MOVE_THROAT_CHOP); }
TURN { MOVE(opponent, MOVE_HYPER_VOICE); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, opponent);
ANIMATION(ANIM_TYPE_MOVE, MOVE_THROAT_CHOP, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_STRUGGLE, opponent);
ANIMATION(ANIM_TYPE_MOVE, MOVE_THROAT_CHOP, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, opponent);
}
}