2024-10-19 13:03:57 +01:00
|
|
|
#include "global.h"
|
|
|
|
#include "test/battle.h"
|
|
|
|
|
|
|
|
DOUBLE_BATTLE_TEST("Curious Medicine resets ally's stat stages upon entering battle")
|
|
|
|
{
|
|
|
|
u32 ability;
|
|
|
|
|
|
|
|
PARAMETRIZE { ability = ABILITY_CURIOUS_MEDICINE; }
|
|
|
|
PARAMETRIZE { ability = ABILITY_OWN_TEMPO; }
|
|
|
|
|
|
|
|
GIVEN {
|
|
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
|
|
OPPONENT(SPECIES_SCOLIPEDE);
|
|
|
|
OPPONENT(SPECIES_WYNAUT);
|
|
|
|
OPPONENT(SPECIES_SLOWKING_GALAR) { Ability(ability); }
|
|
|
|
} WHEN {
|
|
|
|
TURN { MOVE(opponentLeft, MOVE_QUIVER_DANCE); MOVE(playerLeft, MOVE_CHARM, target: opponentLeft); }
|
|
|
|
TURN { SWITCH(opponentRight, 2); MOVE(playerLeft, MOVE_CELEBRATE); }
|
|
|
|
} SCENE {
|
|
|
|
// Turn 1 - buff up
|
2024-10-21 18:52:45 +01:00
|
|
|
MESSAGE("The opposing Scolipede used Quiver Dance!");
|
2024-10-19 13:03:57 +01:00
|
|
|
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft);
|
|
|
|
// Turn 2 - Switch into Slowking
|
|
|
|
MESSAGE("2 sent out Slowking!");
|
|
|
|
if (ability == ABILITY_CURIOUS_MEDICINE)
|
|
|
|
{
|
|
|
|
ABILITY_POPUP(opponentRight, ABILITY_CURIOUS_MEDICINE);
|
2024-10-21 18:52:45 +01:00
|
|
|
MESSAGE("The opposing Scolipede's stat changes were removed!");
|
2024-10-19 13:03:57 +01:00
|
|
|
}
|
|
|
|
} THEN {
|
|
|
|
EXPECT_EQ(opponentLeft->statStages[STAT_ATK], (ability == ABILITY_CURIOUS_MEDICINE) ? DEFAULT_STAT_STAGE : DEFAULT_STAT_STAGE - 2);
|
|
|
|
EXPECT_EQ(opponentLeft->statStages[STAT_DEF], DEFAULT_STAT_STAGE);
|
|
|
|
EXPECT_EQ(opponentLeft->statStages[STAT_SPEED], (ability == ABILITY_CURIOUS_MEDICINE) ? DEFAULT_STAT_STAGE : DEFAULT_STAT_STAGE + 1);
|
|
|
|
EXPECT_EQ(opponentLeft->statStages[STAT_SPATK], (ability == ABILITY_CURIOUS_MEDICINE) ? DEFAULT_STAT_STAGE : DEFAULT_STAT_STAGE + 1);
|
|
|
|
EXPECT_EQ(opponentLeft->statStages[STAT_SPDEF], (ability == ABILITY_CURIOUS_MEDICINE) ? DEFAULT_STAT_STAGE : DEFAULT_STAT_STAGE + 1);
|
|
|
|
EXPECT_EQ(opponentLeft->statStages[STAT_ACC], DEFAULT_STAT_STAGE);
|
|
|
|
EXPECT_EQ(opponentLeft->statStages[STAT_EVASION], DEFAULT_STAT_STAGE);
|
|
|
|
}
|
|
|
|
}
|