From 8bb850045695bc8309f8a769e55acffe1e5ed73f Mon Sep 17 00:00:00 2001 From: ghoulslash <41651341+ghoulslash@users.noreply.github.com> Date: Sat, 19 Oct 2024 08:03:57 -0400 Subject: [PATCH] add curious medicine test (#5540) Co-authored-by: ghoulslash --- test/battle/ability/curious_medicine.c | 40 ++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 test/battle/ability/curious_medicine.c diff --git a/test/battle/ability/curious_medicine.c b/test/battle/ability/curious_medicine.c new file mode 100644 index 0000000000..5ee336262b --- /dev/null +++ b/test/battle/ability/curious_medicine.c @@ -0,0 +1,40 @@ +#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 + MESSAGE("Foe Scolipede used Quiver Dance!"); + 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); + MESSAGE("Foe Scolipede's stat changes were reset!"); + } + } 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); + } +}