100 lines
3.9 KiB
C
100 lines
3.9 KiB
C
#include "global.h"
|
|
#include "test/battle.h"
|
|
|
|
SINGLE_BATTLE_TEST("Shell Side Arm can be countered if it is physical")
|
|
{
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET) { Moves(MOVE_SHELL_SIDE_ARM); }
|
|
OPPONENT(SPECIES_REGICE) { Defense(100); SpDefense(200); }
|
|
} WHEN {
|
|
TURN { MOVE(player, MOVE_SHELL_SIDE_ARM); MOVE(opponent, MOVE_COUNTER); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_SIDE_ARM, player);
|
|
HP_BAR(opponent);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_COUNTER, opponent);
|
|
HP_BAR(player);
|
|
}
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Shell Side Arm can be mirror coated if it is special")
|
|
{
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET) { Moves(MOVE_SHELL_SIDE_ARM); }
|
|
OPPONENT(SPECIES_REGIROCK) { Defense(200); SpDefense(100); }
|
|
} WHEN {
|
|
TURN { MOVE(player, MOVE_SHELL_SIDE_ARM); MOVE(opponent, MOVE_MIRROR_COAT); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_SIDE_ARM, player);
|
|
HP_BAR(opponent);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_MIRROR_COAT, opponent);
|
|
HP_BAR(player);
|
|
}
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Shell Side Arm does not change category mid-turn")
|
|
{
|
|
s16 damage[3];
|
|
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET) { Moves(MOVE_SHELL_SIDE_ARM); }
|
|
OPPONENT(SPECIES_WOBBUFFET) { Defense(100); SpDefense(120); }
|
|
} WHEN {
|
|
TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_SHELL_SIDE_ARM); }
|
|
TURN { MOVE(opponent, MOVE_LIGHT_SCREEN); MOVE(player, MOVE_SHELL_SIDE_ARM); }
|
|
TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_SHELL_SIDE_ARM); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_SIDE_ARM, player);
|
|
HP_BAR(opponent, captureDamage: &damage[0]);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_LIGHT_SCREEN, opponent);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_SIDE_ARM, player);
|
|
HP_BAR(opponent, captureDamage: &damage[1]);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_SIDE_ARM, player);
|
|
HP_BAR(opponent, captureDamage: &damage[2]);
|
|
} THEN {
|
|
EXPECT_EQ(damage[0], damage[1]);
|
|
EXPECT_EQ(damage[1], damage[2]);
|
|
}
|
|
}
|
|
|
|
DOUBLE_BATTLE_TEST("Shell Side Arm chooses its category for each battler on the field")
|
|
{
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET) { Speed(10); Moves(MOVE_SHELL_SIDE_ARM); }
|
|
PLAYER(SPECIES_WOBBUFFET) { Speed(20); }
|
|
OPPONENT(SPECIES_REGIROCK) { Speed(30); Defense(200); SpDefense(100); }
|
|
OPPONENT(SPECIES_REGICE) { Speed(30); Defense(100); SpDefense(200); }
|
|
} WHEN {
|
|
TURN { MOVE(playerLeft, MOVE_SHELL_SIDE_ARM, target: opponentRight); MOVE(opponentRight, MOVE_COUNTER); }
|
|
TURN { MOVE(playerLeft, MOVE_SHELL_SIDE_ARM, target: opponentLeft); MOVE(opponentLeft, MOVE_MIRROR_COAT); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_SIDE_ARM, playerLeft);
|
|
HP_BAR(opponentRight);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_COUNTER, opponentRight);
|
|
HP_BAR(playerLeft);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_SIDE_ARM, playerLeft);
|
|
HP_BAR(opponentLeft);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_MIRROR_COAT, opponentLeft);
|
|
HP_BAR(playerLeft);
|
|
}
|
|
}
|
|
|
|
DOUBLE_BATTLE_TEST("Shell Side Arm does not change category mid-turn")
|
|
{
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET) { Speed(10); Moves(MOVE_SHELL_SIDE_ARM); }
|
|
PLAYER(SPECIES_WOBBUFFET) { Speed(20); }
|
|
OPPONENT(SPECIES_WOBBUFFET) { Speed(30); Defense(200); SpDefense(190); }
|
|
OPPONENT(SPECIES_WOBBUFFET) { Speed(40); }
|
|
} WHEN {
|
|
TURN { MOVE(playerLeft, MOVE_SHELL_SIDE_ARM, target: opponentLeft);
|
|
MOVE(opponentRight, MOVE_LIGHT_SCREEN);
|
|
MOVE(opponentLeft, MOVE_MIRROR_COAT);
|
|
}
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_LIGHT_SCREEN, opponentRight);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_SIDE_ARM, playerLeft);
|
|
HP_BAR(opponentLeft);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_MIRROR_COAT, opponentLeft);
|
|
HP_BAR(playerLeft);
|
|
}
|
|
}
|