62 lines
2.4 KiB
C
62 lines
2.4 KiB
C
#include "global.h"
|
|
#include "test/battle.h"
|
|
|
|
TO_DO_BATTLE_TEST("TODO: Write No Retreat (Move Effect) test titles")
|
|
|
|
SINGLE_BATTLE_TEST("No Retreat raises user's Atk/Def/Sp.Atk/Sp.Def/Speed unless No Retreat was already used by user")
|
|
{
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
} WHEN {
|
|
TURN { MOVE(player, MOVE_NO_RETREAT); }
|
|
TURN { MOVE(player, MOVE_NO_RETREAT); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_NO_RETREAT, player);
|
|
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
|
|
NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_NO_RETREAT, player);
|
|
} THEN {
|
|
EXPECT_EQ(player->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 1);
|
|
EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE + 1);
|
|
EXPECT_EQ(player->statStages[STAT_SPATK], DEFAULT_STAT_STAGE + 1);
|
|
EXPECT_EQ(player->statStages[STAT_SPDEF], DEFAULT_STAT_STAGE + 1);
|
|
EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE + 1);
|
|
bool32 escapePrevention = gBattleMons[0].volatiles.escapePrevention;
|
|
EXPECT_EQ(escapePrevention, TRUE);
|
|
}
|
|
}
|
|
|
|
// Question: If No Retreat is used is the mon blocking the switch out changed?
|
|
SINGLE_BATTLE_TEST("No Retreat won't fail if user is prevented from escaping")
|
|
{
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
} WHEN {
|
|
TURN { MOVE(opponent, MOVE_MEAN_LOOK); MOVE(player, MOVE_NO_RETREAT); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_MEAN_LOOK, opponent);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_NO_RETREAT, player);
|
|
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
|
|
}
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("No Retreat won't activate Protean if it fails due to already being used by the user")
|
|
{
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_KECLEON) { Ability(ABILITY_PROTEAN); }
|
|
} WHEN {
|
|
TURN { MOVE(player, MOVE_NO_RETREAT); MOVE(opponent, MOVE_SKILL_SWAP); }
|
|
TURN { MOVE(player, MOVE_NO_RETREAT); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_NO_RETREAT, player);
|
|
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SKILL_SWAP, opponent);
|
|
NONE_OF {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_NO_RETREAT, player);
|
|
ABILITY_POPUP(player, ABILITY_PROTEAN);
|
|
}
|
|
}
|
|
}
|