Finished Defog tests (#8424)
This commit is contained in:
parent
f5cead9526
commit
5ac3e603dc
@ -31,6 +31,8 @@ SINGLE_BATTLE_TEST("Defog lowers evasiveness by 1 stage")
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_DEFOG, player);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("The opposing Wobbuffet's evasiveness fell!");
|
||||
} THEN {
|
||||
EXPECT_EQ(opponent->statStages[STAT_EVASION], DEFAULT_STAT_STAGE - 1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,10 +51,12 @@ SINGLE_BATTLE_TEST("Defog fails if target has minimum evasion stat change")
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("The opposing Wobbuffet's evasiveness harshly fell!");
|
||||
MESSAGE("But it failed!");
|
||||
} THEN {
|
||||
EXPECT_EQ(opponent->statStages[STAT_EVASION], DEFAULT_STAT_STAGE - 6);
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Defog lowers evasiveness of target behind Substitute (Gen4-)")
|
||||
SINGLE_BATTLE_TEST("Defog lowers evasiveness of target behind Substitute (Gen4)")
|
||||
{
|
||||
GIVEN {
|
||||
WITH_CONFIG(CONFIG_DEFOG_EFFECT_CLEARING, GEN_4);
|
||||
@ -66,10 +70,12 @@ SINGLE_BATTLE_TEST("Defog lowers evasiveness of target behind Substitute (Gen4-)
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_DEFOG, player);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("The opposing Wobbuffet's evasiveness fell!");
|
||||
} THEN {
|
||||
EXPECT_EQ(opponent->statStages[STAT_EVASION], DEFAULT_STAT_STAGE - 1);
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Defog fails if target has minimum evasion stat change behind Substitute (Gen4-)")
|
||||
SINGLE_BATTLE_TEST("Defog fails if target has minimum evasion stat change behind Substitute (Gen4)")
|
||||
{
|
||||
GIVEN {
|
||||
WITH_CONFIG(CONFIG_DEFOG_EFFECT_CLEARING, GEN_4);
|
||||
@ -86,6 +92,8 @@ SINGLE_BATTLE_TEST("Defog fails if target has minimum evasion stat change behind
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent);
|
||||
MESSAGE("The opposing Wobbuffet's evasiveness harshly fell!");
|
||||
MESSAGE("But it failed!");
|
||||
} THEN {
|
||||
EXPECT_EQ(opponent->statStages[STAT_EVASION], DEFAULT_STAT_STAGE - 6);
|
||||
}
|
||||
}
|
||||
|
||||
@ -97,7 +105,7 @@ SINGLE_BATTLE_TEST("Defog does not lower evasiveness if target behind Substitute
|
||||
PARAMETRIZE { move = MOVE_CELEBRATE; }
|
||||
|
||||
GIVEN {
|
||||
ASSUME(CONFIG_DEFOG_EFFECT_CLEARING >= GEN_5);
|
||||
WITH_CONFIG(CONFIG_DEFOG_EFFECT_CLEARING, GEN_5);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(4); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(5); }
|
||||
} WHEN {
|
||||
@ -121,10 +129,44 @@ SINGLE_BATTLE_TEST("Defog does not lower evasiveness if target behind Substitute
|
||||
MESSAGE("The opposing Wobbuffet's evasiveness fell!");
|
||||
}
|
||||
}
|
||||
} THEN {
|
||||
EXPECT_EQ(opponent->statStages[STAT_EVASION], DEFAULT_STAT_STAGE);
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Defog doesn't remove Reflect or Light Screen from the user's side", s16 damagePhysical, s16 damageSpecial)
|
||||
{
|
||||
u16 move;
|
||||
|
||||
PARAMETRIZE { move = MOVE_DEFOG; }
|
||||
PARAMETRIZE { move = MOVE_CELEBRATE; }
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(4); }
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(3); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(2); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(1); }
|
||||
} WHEN {
|
||||
TURN { MOVE(playerLeft, MOVE_REFLECT); MOVE(playerRight, MOVE_LIGHT_SCREEN); }
|
||||
TURN { MOVE(playerLeft, move, target: opponentLeft); }
|
||||
TURN { MOVE(opponentLeft, MOVE_SCRATCH, target: playerLeft); MOVE(opponentRight, MOVE_GUST, target: playerRight); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_REFLECT, playerLeft);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_LIGHT_SCREEN, playerRight);
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, playerLeft);
|
||||
NONE_OF {
|
||||
MESSAGE("Your team's Reflect wore off!");
|
||||
MESSAGE("Your team's Light Screen wore off!");
|
||||
}
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, opponentLeft);
|
||||
HP_BAR(playerLeft, captureDamage: &results[i].damagePhysical);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_GUST, opponentRight);
|
||||
HP_BAR(playerRight, captureDamage: &results[i].damageSpecial);
|
||||
} FINALLY {
|
||||
EXPECT_EQ(results[1].damagePhysical, results[0].damagePhysical);
|
||||
EXPECT_EQ(results[1].damageSpecial, results[0].damageSpecial);
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Defog doesn't remove Reflect or Light Screen from the user's side");
|
||||
DOUBLE_BATTLE_TEST("Defog removes Reflect and Light Screen from target's side", s16 damagePhysical, s16 damageSpecial)
|
||||
{
|
||||
u16 move;
|
||||
@ -148,9 +190,9 @@ DOUBLE_BATTLE_TEST("Defog removes Reflect and Light Screen from target's side",
|
||||
MESSAGE("The opposing team's Reflect wore off!");
|
||||
MESSAGE("The opposing team's Light Screen wore off!");
|
||||
}
|
||||
MESSAGE("Wobbuffet used Scratch!");
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, playerLeft);
|
||||
HP_BAR(opponentLeft, captureDamage: &results[i].damagePhysical);
|
||||
MESSAGE("Wobbuffet used Gust!");
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_GUST, playerRight);
|
||||
HP_BAR(opponentRight, captureDamage: &results[i].damageSpecial);
|
||||
} FINALLY {
|
||||
EXPECT_MUL_EQ(results[1].damagePhysical, Q_4_12(1.5), results[0].damagePhysical);
|
||||
@ -158,7 +200,38 @@ DOUBLE_BATTLE_TEST("Defog removes Reflect and Light Screen from target's side",
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Defog doesn't remove Mist or Safeguard from the user's side");
|
||||
DOUBLE_BATTLE_TEST("Defog doesn't remove Mist or Safeguard from the user's side")
|
||||
{
|
||||
u16 move;
|
||||
|
||||
PARAMETRIZE { move = MOVE_DEFOG; }
|
||||
PARAMETRIZE { move = MOVE_CELEBRATE; }
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(4); }
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(3); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(2); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(1); }
|
||||
} WHEN {
|
||||
TURN { MOVE(playerLeft, MOVE_MIST); MOVE(playerRight, MOVE_SAFEGUARD); }
|
||||
TURN { MOVE(playerLeft, move, target: opponentLeft); }
|
||||
TURN { MOVE(opponentLeft, MOVE_SCREECH, target: playerLeft); MOVE(opponentRight, MOVE_TOXIC, target: playerRight); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_MIST, playerLeft);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SAFEGUARD, playerRight);
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, playerLeft);
|
||||
NONE_OF {
|
||||
MESSAGE("Your team's Mist wore off!");
|
||||
MESSAGE("Your team's Safeguard wore off!");
|
||||
}
|
||||
MESSAGE("The opposing Wobbuffet used Screech!");
|
||||
MESSAGE("Wobbuffet is protected by the mist!");
|
||||
NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft);
|
||||
MESSAGE("The opposing Wobbuffet used Toxic!");
|
||||
MESSAGE("Wobbuffet is protected by Safeguard!");
|
||||
NOT STATUS_ICON(playerRight, badPoison: TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Defog removes Mist and Safeguard from target's side")
|
||||
{
|
||||
u16 move;
|
||||
@ -186,8 +259,7 @@ DOUBLE_BATTLE_TEST("Defog removes Mist and Safeguard from target's side")
|
||||
if (move == MOVE_DEFOG) {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCREECH, playerLeft);
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
MESSAGE("The opposing Wobbuffet is protected by the mist!");
|
||||
NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft);
|
||||
}
|
||||
@ -195,23 +267,73 @@ DOUBLE_BATTLE_TEST("Defog removes Mist and Safeguard from target's side")
|
||||
if (move == MOVE_DEFOG) {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC, playerRight);
|
||||
STATUS_ICON(opponentRight, badPoison: TRUE);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
MESSAGE("The opposing Wobbuffet is protected by Safeguard!");
|
||||
NOT STATUS_ICON(opponentRight, badPoison: TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Defog removes Stealth Rock and Sticky Web from target's side");
|
||||
TO_DO_BATTLE_TEST("Defog doesn't remove Stealth Rock or Sticky Web from user's side (Gen 4-5)");
|
||||
DOUBLE_BATTLE_TEST("Defog removes Stealth Rock and Sticky Web from target's side")
|
||||
{
|
||||
u32 move;
|
||||
|
||||
PARAMETRIZE { move = MOVE_CELEBRATE; }
|
||||
PARAMETRIZE { move = MOVE_DEFOG; }
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(4); }
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(3); }
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(3); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(2); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(1); }
|
||||
} WHEN {
|
||||
TURN { MOVE(opponentLeft, MOVE_STEALTH_ROCK); MOVE(opponentRight, MOVE_STICKY_WEB); }
|
||||
TURN { MOVE(opponentLeft, move, target: playerLeft); }
|
||||
TURN { SWITCH(playerLeft, 2); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_STEALTH_ROCK, opponentLeft);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, opponentRight);
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, opponentLeft);
|
||||
if (move == MOVE_DEFOG) {
|
||||
MESSAGE("The sticky web has disappeared from the ground around your team!");
|
||||
MESSAGE("The pointed stones disappeared from around your team!");
|
||||
}
|
||||
// Switch happens
|
||||
SWITCH_OUT_MESSAGE("Wobbuffet");
|
||||
SEND_IN_MESSAGE("Wobbuffet");
|
||||
if (move != MOVE_DEFOG) {
|
||||
HP_BAR(playerLeft);
|
||||
MESSAGE("Pointed stones dug into Wobbuffet!");
|
||||
MESSAGE("Wobbuffet was caught in a sticky web!");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft);
|
||||
MESSAGE("Wobbuffet's Speed fell!");
|
||||
} else {
|
||||
NONE_OF {
|
||||
HP_BAR(playerLeft);
|
||||
MESSAGE("Pointed stones dug into Wobbuffet!");
|
||||
MESSAGE("Wobbuffet was caught in a sticky web!");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft);
|
||||
MESSAGE("Wobbuffet's Speed fell!");
|
||||
}
|
||||
}
|
||||
} THEN {
|
||||
if (move != MOVE_DEFOG) {
|
||||
EXPECT_EQ(playerLeft->statStages[STAT_SPEED], DEFAULT_STAT_STAGE - 1);
|
||||
} else {
|
||||
EXPECT_EQ(playerLeft->statStages[STAT_SPEED], DEFAULT_STAT_STAGE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Defog removes Stealth Rock and Sticky Web from user's side (Gen 6+)")
|
||||
{
|
||||
u16 move;
|
||||
u32 move, config;
|
||||
|
||||
PARAMETRIZE { move = MOVE_DEFOG; }
|
||||
PARAMETRIZE { move = MOVE_CELEBRATE; }
|
||||
PARAMETRIZE { move = MOVE_CELEBRATE; config = GEN_5; }
|
||||
PARAMETRIZE { move = MOVE_DEFOG; config = GEN_5; }
|
||||
PARAMETRIZE { move = MOVE_DEFOG; config = GEN_6; }
|
||||
GIVEN {
|
||||
WITH_CONFIG(CONFIG_DEFOG_EFFECT_CLEARING, config);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(4); }
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(3); }
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(3); }
|
||||
@ -225,21 +347,20 @@ DOUBLE_BATTLE_TEST("Defog removes Stealth Rock and Sticky Web from user's side (
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_STEALTH_ROCK, opponentLeft);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, opponentRight);
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, playerLeft);
|
||||
if (move == MOVE_DEFOG && B_DEFOG_EFFECT_CLEARING >= GEN_6) {
|
||||
if (move == MOVE_DEFOG && config >= GEN_6) {
|
||||
MESSAGE("The sticky web has disappeared from the ground around your team!");
|
||||
MESSAGE("The pointed stones disappeared from around your team!");
|
||||
}
|
||||
// Switch happens
|
||||
SWITCH_OUT_MESSAGE("Wobbuffet");
|
||||
SEND_IN_MESSAGE("Wobbuffet");
|
||||
if (move != MOVE_DEFOG || B_DEFOG_EFFECT_CLEARING <= GEN_5) {
|
||||
if (move != MOVE_DEFOG || config <= GEN_5) {
|
||||
HP_BAR(playerLeft);
|
||||
MESSAGE("Pointed stones dug into Wobbuffet!");
|
||||
MESSAGE("Wobbuffet was caught in a sticky web!");
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft);
|
||||
MESSAGE("Wobbuffet's Speed fell!");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
NONE_OF {
|
||||
HP_BAR(playerLeft);
|
||||
MESSAGE("Pointed stones dug into Wobbuffet!");
|
||||
@ -248,18 +369,55 @@ DOUBLE_BATTLE_TEST("Defog removes Stealth Rock and Sticky Web from user's side (
|
||||
MESSAGE("Wobbuffet's Speed fell!");
|
||||
}
|
||||
}
|
||||
} THEN {
|
||||
if (move != MOVE_DEFOG || config <= GEN_5) {
|
||||
EXPECT_EQ(playerLeft->statStages[STAT_SPEED], DEFAULT_STAT_STAGE - 1);
|
||||
} else {
|
||||
EXPECT_EQ(playerLeft->statStages[STAT_SPEED], DEFAULT_STAT_STAGE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Defog removes Spikes from target's side")
|
||||
{
|
||||
u32 move;
|
||||
|
||||
PARAMETRIZE { move = MOVE_CELEBRATE; }
|
||||
PARAMETRIZE { move = MOVE_DEFOG; }
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(2); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(5); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(5); }
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_SPIKES); }
|
||||
TURN { MOVE(player, move); }
|
||||
TURN { SWITCH(opponent, 1); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SPIKES, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, player);
|
||||
if (move == MOVE_DEFOG) {
|
||||
MESSAGE("The spikes disappeared from the ground around the opposing team!");
|
||||
NONE_OF {
|
||||
HP_BAR(opponent);
|
||||
MESSAGE("The opposing Wobbuffet was hurt by the spikes!");
|
||||
}
|
||||
} else {
|
||||
NOT MESSAGE("The spikes disappeared from the ground around the opposing team!");
|
||||
HP_BAR(opponent);
|
||||
MESSAGE("The opposing Wobbuffet was hurt by the spikes!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Defog removes Spikes from target's side");
|
||||
TO_DO_BATTLE_TEST("Defog doesn't remove Spikes from user's side (Gen 4-5)");
|
||||
SINGLE_BATTLE_TEST("Defog removes Spikes from user's side (Gen 6+)")
|
||||
{
|
||||
u16 move;
|
||||
u32 move, config;
|
||||
|
||||
PARAMETRIZE { move = MOVE_DEFOG; }
|
||||
PARAMETRIZE { move = MOVE_CELEBRATE; }
|
||||
PARAMETRIZE { move = MOVE_CELEBRATE; config = GEN_5; }
|
||||
PARAMETRIZE { move = MOVE_DEFOG; config = GEN_5; }
|
||||
PARAMETRIZE { move = MOVE_DEFOG; config = GEN_6; }
|
||||
GIVEN {
|
||||
WITH_CONFIG(CONFIG_DEFOG_EFFECT_CLEARING, config);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(2); }
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(2); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(5); }
|
||||
@ -269,16 +427,15 @@ SINGLE_BATTLE_TEST("Defog removes Spikes from user's side (Gen 6+)")
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SPIKES, opponent);
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, player);
|
||||
if (move == MOVE_DEFOG && B_DEFOG_EFFECT_CLEARING >= GEN_6)
|
||||
if (move == MOVE_DEFOG && config >= GEN_6)
|
||||
MESSAGE("The spikes disappeared from the ground around your team!");
|
||||
// Switch happens
|
||||
SWITCH_OUT_MESSAGE("Wobbuffet");
|
||||
SEND_IN_MESSAGE("Wobbuffet");
|
||||
if (move != MOVE_DEFOG || B_DEFOG_EFFECT_CLEARING <= GEN_5) {
|
||||
if (move != MOVE_DEFOG || config <= GEN_5) {
|
||||
HP_BAR(player);
|
||||
MESSAGE("Wobbuffet was hurt by the spikes!");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
NONE_OF {
|
||||
HP_BAR(player);
|
||||
MESSAGE("Wobbuffet was hurt by the spikes!");
|
||||
@ -287,16 +444,20 @@ SINGLE_BATTLE_TEST("Defog removes Spikes from user's side (Gen 6+)")
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Defog doesn't remove terrain (Gen 4-7)");
|
||||
SINGLE_BATTLE_TEST("Defog removes terrain (Gen 8+)")
|
||||
{
|
||||
u16 move;
|
||||
u32 move, config;
|
||||
|
||||
PARAMETRIZE { move = MOVE_PSYCHIC_TERRAIN; }
|
||||
PARAMETRIZE { move = MOVE_ELECTRIC_TERRAIN; }
|
||||
PARAMETRIZE { move = MOVE_MISTY_TERRAIN; }
|
||||
PARAMETRIZE { move = MOVE_GRASSY_TERRAIN; }
|
||||
PARAMETRIZE { move = MOVE_PSYCHIC_TERRAIN; config = GEN_7; }
|
||||
PARAMETRIZE { move = MOVE_ELECTRIC_TERRAIN; config = GEN_7; }
|
||||
PARAMETRIZE { move = MOVE_MISTY_TERRAIN; config = GEN_7; }
|
||||
PARAMETRIZE { move = MOVE_GRASSY_TERRAIN; config = GEN_7; }
|
||||
PARAMETRIZE { move = MOVE_PSYCHIC_TERRAIN; config = GEN_8; }
|
||||
PARAMETRIZE { move = MOVE_ELECTRIC_TERRAIN; config = GEN_8; }
|
||||
PARAMETRIZE { move = MOVE_MISTY_TERRAIN; config = GEN_8; }
|
||||
PARAMETRIZE { move = MOVE_GRASSY_TERRAIN; config = GEN_8; }
|
||||
GIVEN {
|
||||
WITH_CONFIG(CONFIG_DEFOG_EFFECT_CLEARING, config);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(50); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(5); }
|
||||
} WHEN {
|
||||
@ -304,7 +465,7 @@ SINGLE_BATTLE_TEST("Defog removes terrain (Gen 8+)")
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_DEFOG, opponent);
|
||||
if (B_DEFOG_EFFECT_CLEARING >= GEN_8) {
|
||||
if (config >= GEN_8) {
|
||||
if (move == MOVE_PSYCHIC_TERRAIN) {
|
||||
MESSAGE("The weirdness disappeared from the battlefield!");
|
||||
}
|
||||
@ -330,34 +491,32 @@ SINGLE_BATTLE_TEST("Defog removes terrain (Gen 8+)")
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Defog removes Toxic Spikes from target's side");
|
||||
TO_DO_BATTLE_TEST("Defog doesn't remove Toxic Spikes from user's side (Gen 4-5)");
|
||||
SINGLE_BATTLE_TEST("Defog removes Toxic Spikes from user's side (Gen 6+)")
|
||||
SINGLE_BATTLE_TEST("Defog removes Toxic Spikes from target's side")
|
||||
{
|
||||
u16 move;
|
||||
u32 move;
|
||||
|
||||
PARAMETRIZE { move = MOVE_DEFOG; }
|
||||
PARAMETRIZE { move = MOVE_CELEBRATE; }
|
||||
PARAMETRIZE { move = MOVE_DEFOG; }
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(5); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(2); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(2); }
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_TOXIC_SPIKES); MOVE(opponent, move); }
|
||||
TURN { MOVE(player, MOVE_TOXIC_SPIKES); }
|
||||
TURN { MOVE(player, move); }
|
||||
TURN { SWITCH(opponent, 1); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC_SPIKES, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, opponent);
|
||||
if (move == MOVE_DEFOG && B_DEFOG_EFFECT_CLEARING >= GEN_6)
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, player);
|
||||
if (move == MOVE_DEFOG)
|
||||
MESSAGE("The poison spikes disappeared from the ground around the opposing team!");
|
||||
// Switch happens
|
||||
MESSAGE("2 sent out Wobbuffet!");
|
||||
if (move != MOVE_DEFOG || B_DEFOG_EFFECT_CLEARING <= GEN_5) {
|
||||
if (move != MOVE_DEFOG) {
|
||||
MESSAGE("The opposing Wobbuffet was poisoned!");
|
||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent);
|
||||
STATUS_ICON(opponent, poison: TRUE);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
NONE_OF {
|
||||
MESSAGE("The opposing Wobbuffet was poisoned!");
|
||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent);
|
||||
@ -367,7 +526,83 @@ SINGLE_BATTLE_TEST("Defog removes Toxic Spikes from user's side (Gen 6+)")
|
||||
}
|
||||
}
|
||||
|
||||
TO_DO_BATTLE_TEST("Defog doesn't remove Aurora Veil from the user's side");
|
||||
SINGLE_BATTLE_TEST("Defog removes Toxic Spikes from user's side (Gen 6+)")
|
||||
{
|
||||
u32 move, config;
|
||||
|
||||
PARAMETRIZE { move = MOVE_CELEBRATE; config = GEN_5; }
|
||||
PARAMETRIZE { move = MOVE_DEFOG; config = GEN_5; }
|
||||
PARAMETRIZE { move = MOVE_DEFOG; config = GEN_6; }
|
||||
GIVEN {
|
||||
WITH_CONFIG(CONFIG_DEFOG_EFFECT_CLEARING, config);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(5); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(2); }
|
||||
OPPONENT(SPECIES_WOBBUFFET) { Speed(2); }
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_TOXIC_SPIKES); MOVE(opponent, move); }
|
||||
TURN { SWITCH(opponent, 1); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC_SPIKES, player);
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, opponent);
|
||||
if (move == MOVE_DEFOG && config >= GEN_6)
|
||||
MESSAGE("The poison spikes disappeared from the ground around the opposing team!");
|
||||
// Switch happens
|
||||
MESSAGE("2 sent out Wobbuffet!");
|
||||
if (move != MOVE_DEFOG || config <= GEN_5) {
|
||||
MESSAGE("The opposing Wobbuffet was poisoned!");
|
||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent);
|
||||
STATUS_ICON(opponent, poison: TRUE);
|
||||
} else {
|
||||
NONE_OF {
|
||||
MESSAGE("The opposing Wobbuffet was poisoned!");
|
||||
ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent);
|
||||
STATUS_ICON(opponent, poison: TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Defog doesn't remove Aurora Veil from the user's side", s16 damagePhysical, s16 damageSpecial)
|
||||
{
|
||||
u16 move;
|
||||
|
||||
PARAMETRIZE { move = MOVE_DEFOG; }
|
||||
PARAMETRIZE { move = MOVE_CELEBRATE; }
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_HAIL) == EFFECT_HAIL);
|
||||
ASSUME(GetSpeciesType(SPECIES_GLALIE, 0) == TYPE_ICE);
|
||||
PLAYER(SPECIES_GLALIE) { Speed(4); }
|
||||
PLAYER(SPECIES_GLALIE) { Speed(3); }
|
||||
OPPONENT(SPECIES_GLALIE) { Speed(2); }
|
||||
OPPONENT(SPECIES_GLALIE) { Speed(1); }
|
||||
} WHEN {
|
||||
TURN { MOVE(playerLeft, MOVE_HAIL); MOVE(playerRight, MOVE_AURORA_VEIL); }
|
||||
TURN { MOVE(playerLeft, move, target: opponentLeft); }
|
||||
TURN { MOVE(opponentLeft, MOVE_SCRATCH, target: playerLeft); MOVE(opponentRight, MOVE_GUST, target: playerRight); }
|
||||
} SCENE {
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_HAIL, playerLeft);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_AURORA_VEIL, playerRight);
|
||||
ANIMATION(ANIM_TYPE_MOVE, move, playerLeft);
|
||||
if (move == MOVE_DEFOG) {
|
||||
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft);
|
||||
MESSAGE("The opposing Glalie's evasiveness fell!");
|
||||
}
|
||||
NOT MESSAGE("Your team's Aurora Veil wore off!");
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, opponentLeft);
|
||||
HP_BAR(playerLeft, captureDamage: &results[i].damagePhysical);
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_GUST, opponentRight);
|
||||
HP_BAR(playerRight, captureDamage: &results[i].damageSpecial);
|
||||
} THEN {
|
||||
if (move == MOVE_DEFOG)
|
||||
EXPECT_EQ(opponentLeft->statStages[STAT_EVASION], DEFAULT_STAT_STAGE - 1);
|
||||
else
|
||||
EXPECT_EQ(opponentLeft->statStages[STAT_EVASION], DEFAULT_STAT_STAGE);
|
||||
} FINALLY {
|
||||
EXPECT_EQ(results[1].damagePhysical, results[0].damagePhysical);
|
||||
EXPECT_EQ(results[1].damageSpecial, results[0].damageSpecial);
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Defog removes Aurora Veil from target's side", s16 damagePhysical, s16 damageSpecial)
|
||||
{
|
||||
u16 move;
|
||||
@ -394,10 +629,15 @@ DOUBLE_BATTLE_TEST("Defog removes Aurora Veil from target's side", s16 damagePhy
|
||||
MESSAGE("Glalie's evasiveness fell!");
|
||||
MESSAGE("Your team's Aurora Veil wore off!");
|
||||
}
|
||||
MESSAGE("The opposing Glalie used Scratch!");
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, opponentLeft);
|
||||
HP_BAR(playerLeft, captureDamage: &results[i].damagePhysical);
|
||||
MESSAGE("The opposing Glalie used Gust!");
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_GUST, opponentRight);
|
||||
HP_BAR(playerRight, captureDamage: &results[i].damageSpecial);
|
||||
} THEN {
|
||||
if (move == MOVE_DEFOG)
|
||||
EXPECT_EQ(playerLeft->statStages[STAT_EVASION], DEFAULT_STAT_STAGE - 1);
|
||||
else
|
||||
EXPECT_EQ(playerLeft->statStages[STAT_EVASION], DEFAULT_STAT_STAGE);
|
||||
} FINALLY {
|
||||
EXPECT_MUL_EQ(results[1].damagePhysical, Q_4_12(1.5), results[0].damagePhysical);
|
||||
EXPECT_MUL_EQ(results[1].damageSpecial, Q_4_12(1.5), results[0].damageSpecial);
|
||||
@ -482,9 +722,13 @@ DOUBLE_BATTLE_TEST("Defog removes everything it can")
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Defog is used on the correct side if opposing mon is behind a substitute with Screen up")
|
||||
SINGLE_BATTLE_TEST("Defog is used on the correct side if opposing mon is behind a Substitute with Screen up")
|
||||
{
|
||||
u32 config;
|
||||
PARAMETRIZE { config = GEN_4; }
|
||||
PARAMETRIZE { config = GEN_5; }
|
||||
GIVEN {
|
||||
WITH_CONFIG(CONFIG_DEFOG_EFFECT_CLEARING, config);
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
@ -496,5 +740,10 @@ SINGLE_BATTLE_TEST("Defog is used on the correct side if opposing mon is behind
|
||||
MESSAGE("Wobbuffet used Defog!");
|
||||
ANIMATION(ANIM_TYPE_MOVE, MOVE_DEFOG, player);
|
||||
MESSAGE("The opposing team's Light Screen wore off!");
|
||||
} THEN {
|
||||
if (config >= GEN_5)
|
||||
EXPECT_EQ(opponent->statStages[STAT_EVASION], DEFAULT_STAT_STAGE);
|
||||
else
|
||||
EXPECT_EQ(opponent->statStages[STAT_EVASION], DEFAULT_STAT_STAGE - 1);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user