pokeemmo/test/battle/ability/beast_boost.c
2025-05-15 20:37:27 +02:00

72 lines
2.8 KiB
C

#include "global.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Beast Boost boosts the most proficient stat when knocking out a target")
{
u8 stats[] = {1, 1, 1, 1, 1};
PARAMETRIZE { stats[0] = 255; }
PARAMETRIZE { stats[1] = 255; }
PARAMETRIZE { stats[2] = 255; }
PARAMETRIZE { stats[3] = 255; }
PARAMETRIZE { stats[4] = 255; }
GIVEN {
PLAYER(SPECIES_NIHILEGO) { Ability(ABILITY_BEAST_BOOST); Attack(stats[0]); Defense(stats[1]); SpAttack(stats[2]); SpDefense(stats[3]); Speed(stats[4]); }
OPPONENT(SPECIES_WOBBUFFET) { HP(1); Speed(1); }
OPPONENT(SPECIES_WOBBUFFET) { Speed(1); }
} WHEN {
TURN { MOVE(player, MOVE_SCRATCH); SEND_OUT(opponent, 1); }
} SCENE {
ABILITY_POPUP(player, ABILITY_BEAST_BOOST);
switch(i) {
case 0:
MESSAGE("Nihilego's Attack rose!");
break;
case 1:
MESSAGE("Nihilego's Defense rose!");
break;
case 2:
MESSAGE("Nihilego's Sp. Atk rose!");
break;
case 3:
MESSAGE("Nihilego's Sp. Def rose!");
break;
case 4:
MESSAGE("Nihilego's Speed rose!");
break;
}
}
}
SINGLE_BATTLE_TEST("Beast Boost doesn't trigger if user is fainted")
{
GIVEN {
ASSUME(GetMoveEffect(MOVE_DESTINY_BOND) == EFFECT_DESTINY_BOND);
ASSUME(GetMovePower(MOVE_SCRATCH) > 0);
PLAYER(SPECIES_WOBBUFFET) { HP(1); }
PLAYER(SPECIES_WYNAUT);
OPPONENT(SPECIES_KARTANA) { Ability(ABILITY_BEAST_BOOST); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_DESTINY_BOND); MOVE(opponent, MOVE_SCRATCH); SEND_OUT(player, 1); SEND_OUT(opponent, 1); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_DESTINY_BOND, player);
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, opponent);
NOT ABILITY_POPUP(opponent, ABILITY_BEAST_BOOST);
SEND_IN_MESSAGE("Wynaut");
MESSAGE("2 sent out Wobbuffet!");
}
}
TO_DO_BATTLE_TEST("Beast Boost boosts Attack 1st in case of a stat tie");
TO_DO_BATTLE_TEST("Beast Boost boosts Defense 2nd in case of a stat tie");
TO_DO_BATTLE_TEST("Beast Boost boosts Special Attack 3rd in case of a stat tie");
TO_DO_BATTLE_TEST("Beast Boost boosts Special Defense 4th in case of a stat tie");
TO_DO_BATTLE_TEST("Beast Boost considers Power Split");
TO_DO_BATTLE_TEST("Beast Boost considers Guard Split");
TO_DO_BATTLE_TEST("Beast Boost considers Power Trick");
TO_DO_BATTLE_TEST("Beast Boost considers Wonder Room");
TO_DO_BATTLE_TEST("Beast Boost considers Speed Swap");
TO_DO_BATTLE_TEST("Beast Boost doesn't consider stat stages");
TO_DO_BATTLE_TEST("Beast Boost doesn't consider held items");
TO_DO_BATTLE_TEST("Beast Boost doesn't consider status condition reductions");