Added tests for fainting form changes (#8912)
This commit is contained in:
parent
955617381f
commit
c2256e5e59
@ -259,13 +259,13 @@ SINGLE_BATTLE_TEST("Morpeko Hangry reverts to Full Belly Form upon battle end af
|
||||
|
||||
SINGLE_BATTLE_TEST("Ogerpon reverts to the correct form upon battle end after terastallizing")
|
||||
{
|
||||
u32 species;
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_TEAL; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_WELLSPRING; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_HEARTHFLAME; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_CORNERSTONE; }
|
||||
u32 species, item;
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_TEAL; item = ITEM_NONE; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_WELLSPRING; item = ITEM_WELLSPRING_MASK; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_HEARTHFLAME; item = ITEM_HEARTHFLAME_MASK; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_CORNERSTONE; item = ITEM_CORNERSTONE_MASK; }
|
||||
GIVEN {
|
||||
PLAYER(species);
|
||||
PLAYER(species) { Item(item); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_TERA); }
|
||||
|
||||
@ -69,3 +69,46 @@ DOUBLE_BATTLE_TEST("Causing a Forecast or Flower Gift Pokémon to faint should n
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Ogerpon reverts to the correct form upon fainting after terastallizing")
|
||||
{
|
||||
u32 species, item;
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_TEAL; item = ITEM_NONE; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_WELLSPRING; item = ITEM_WELLSPRING_MASK; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_HEARTHFLAME; item = ITEM_HEARTHFLAME_MASK; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_CORNERSTONE; item = ITEM_CORNERSTONE_MASK; }
|
||||
GIVEN {
|
||||
PLAYER(species) { HP(1); Item(item); }
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN {
|
||||
MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_TERA);
|
||||
MOVE(opponent, MOVE_SCRATCH);
|
||||
SEND_OUT(player, 1);
|
||||
}
|
||||
TURN { USE_ITEM(player, ITEM_REVIVE, 0); }
|
||||
TURN { SWITCH(player, 0); }
|
||||
} THEN {
|
||||
EXPECT_EQ(player->species, species);
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Terapagos reverts to the correct form upon fainting after terastallizing")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_TERAPAGOS_NORMAL) { HP(1); }
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN {
|
||||
MOVE(player, MOVE_MEMENTO, gimmick: GIMMICK_TERA);
|
||||
MOVE(opponent, MOVE_SCRATCH);
|
||||
SEND_OUT(player, 1);
|
||||
}
|
||||
TURN { USE_ITEM(player, ITEM_REVIVE, 0); }
|
||||
TURN { SWITCH(player, 0); }
|
||||
} THEN {
|
||||
EXPECT_EQ(player->species, SPECIES_TERAPAGOS_TERASTAL); // Not Normal form due to Tera Shift
|
||||
}
|
||||
}
|
||||
|
||||
@ -43,3 +43,22 @@ SINGLE_BATTLE_TEST("Dynamax: Venusaur returns its base Form upon battle end afte
|
||||
EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), SPECIES_VENUSAUR);
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Dynamax: Venusaur returns its base Form upon fainting end after Gigantamaxing")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_VENUSAUR) { HP(1); GigantamaxFactor(TRUE); }
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN {
|
||||
MOVE(player, MOVE_SCRATCH, gimmick: GIMMICK_DYNAMAX);
|
||||
MOVE(opponent, MOVE_SCRATCH);
|
||||
SEND_OUT(player, 1);
|
||||
}
|
||||
TURN { USE_ITEM(player, ITEM_REVIVE, 0); }
|
||||
TURN { SWITCH(player, 0); }
|
||||
} THEN {
|
||||
EXPECT_EQ(player->species, SPECIES_VENUSAUR);
|
||||
}
|
||||
}
|
||||
|
||||
@ -216,3 +216,41 @@ SINGLE_BATTLE_TEST("Rayquaza returns its base Form upon battle end after Mega Ev
|
||||
EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), SPECIES_RAYQUAZA);
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Venusaur returns its base Form upon fainting end after Mega Evolving")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_VENUSAUR) { HP(1); Item(ITEM_VENUSAURITE); }
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN {
|
||||
MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_MEGA);
|
||||
MOVE(opponent, MOVE_SCRATCH);
|
||||
SEND_OUT(player, 1);
|
||||
}
|
||||
TURN { USE_ITEM(player, ITEM_REVIVE, 0); }
|
||||
TURN { SWITCH(player, 0); }
|
||||
} THEN {
|
||||
EXPECT_EQ(player->species, SPECIES_VENUSAUR);
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Rayquaza returns its base Form upon fainting end after Mega Evolving")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_RAYQUAZA) { HP(1); Moves(MOVE_DRAGON_ASCENT, MOVE_CELEBRATE); }
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN {
|
||||
MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_MEGA);
|
||||
MOVE(opponent, MOVE_SCRATCH);
|
||||
SEND_OUT(player, 1);
|
||||
}
|
||||
TURN { USE_ITEM(player, ITEM_REVIVE, 0); }
|
||||
TURN { SWITCH(player, 0); }
|
||||
} THEN {
|
||||
EXPECT_EQ(player->species, SPECIES_RAYQUAZA);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Primal reversion happens for Groudon only when holding Red Orb")
|
||||
SINGLE_BATTLE_TEST("Primal Reversion happens for Groudon only when holding Red Orb")
|
||||
{
|
||||
u16 heldItem;
|
||||
PARAMETRIZE { heldItem = ITEM_NONE; }
|
||||
@ -33,7 +33,7 @@ SINGLE_BATTLE_TEST("Primal reversion happens for Groudon only when holding Red O
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Primal reversion happens for Kyogre only when holding Blue Orb")
|
||||
SINGLE_BATTLE_TEST("Primal Reversion happens for Kyogre only when holding Blue Orb")
|
||||
{
|
||||
u16 heldItem;
|
||||
PARAMETRIZE { heldItem = ITEM_NONE; }
|
||||
@ -65,7 +65,7 @@ SINGLE_BATTLE_TEST("Primal reversion happens for Kyogre only when holding Blue O
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Primal reversion's order is determined by Speed - opponent faster")
|
||||
DOUBLE_BATTLE_TEST("Primal Reversion's order is determined by Speed - opponent faster")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_KYOGRE) { Item(ITEM_BLUE_ORB); Speed(5); }
|
||||
@ -91,7 +91,7 @@ DOUBLE_BATTLE_TEST("Primal reversion's order is determined by Speed - opponent f
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Primal reversion's order is determined by Speed - player faster")
|
||||
DOUBLE_BATTLE_TEST("Primal Reversion's order is determined by Speed - player faster")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_KYOGRE) { Item(ITEM_BLUE_ORB); Speed(20); }
|
||||
@ -117,7 +117,7 @@ DOUBLE_BATTLE_TEST("Primal reversion's order is determined by Speed - player fas
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Primal reversion happens after a mon is sent out after a mon is fainted")
|
||||
SINGLE_BATTLE_TEST("Primal Reversion happens after a mon is sent out after a mon is fainted")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(!IsBattleMoveStatus(MOVE_SCRATCH));
|
||||
@ -136,7 +136,7 @@ SINGLE_BATTLE_TEST("Primal reversion happens after a mon is sent out after a mon
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Primal reversion happens after a mon is switched in")
|
||||
SINGLE_BATTLE_TEST("Primal Reversion happens after a mon is switched in")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
@ -153,7 +153,7 @@ SINGLE_BATTLE_TEST("Primal reversion happens after a mon is switched in")
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Primal reversion happens after a switch-in caused by Eject Button")
|
||||
SINGLE_BATTLE_TEST("Primal Reversion happens after a switch-in caused by Eject Button")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(!IsBattleMoveStatus(MOVE_SCRATCH));
|
||||
@ -174,7 +174,7 @@ SINGLE_BATTLE_TEST("Primal reversion happens after a switch-in caused by Eject B
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Primal reversion happens after a switch-in caused by Red Card")
|
||||
SINGLE_BATTLE_TEST("Primal Reversion happens after a switch-in caused by Red Card")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(!IsBattleMoveStatus(MOVE_SCRATCH));
|
||||
@ -194,7 +194,7 @@ SINGLE_BATTLE_TEST("Primal reversion happens after a switch-in caused by Red Car
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Primal reversion happens after the entry hazards damage")
|
||||
SINGLE_BATTLE_TEST("Primal Reversion happens after the entry hazards damage")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_SPIKES) == EFFECT_SPIKES);
|
||||
@ -215,7 +215,7 @@ SINGLE_BATTLE_TEST("Primal reversion happens after the entry hazards damage")
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Primal reversion happens immediately if it was brought in by U-turn")
|
||||
SINGLE_BATTLE_TEST("Primal Reversion happens immediately if it was brought in by U-turn")
|
||||
{
|
||||
GIVEN {
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
@ -236,7 +236,7 @@ SINGLE_BATTLE_TEST("Primal reversion happens immediately if it was brought in by
|
||||
}
|
||||
|
||||
|
||||
DOUBLE_BATTLE_TEST("Primal reversion triggers for multiple battlers if multiple fainted the previous turn")
|
||||
DOUBLE_BATTLE_TEST("Primal Reversion triggers for multiple battlers if multiple fainted the previous turn")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveTarget(MOVE_EARTHQUAKE) == MOVE_TARGET_FOES_AND_ALLY);
|
||||
@ -259,7 +259,7 @@ DOUBLE_BATTLE_TEST("Primal reversion triggers for multiple battlers if multiple
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Primal reversion triggers for all battlers if multiple fainted the previous turn")
|
||||
DOUBLE_BATTLE_TEST("Primal Reversion triggers for all battlers if multiple fainted the previous turn")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_EXPLOSION) == EFFECT_EXPLOSION);
|
||||
@ -287,7 +287,7 @@ DOUBLE_BATTLE_TEST("Primal reversion triggers for all battlers if multiple faint
|
||||
}
|
||||
}
|
||||
|
||||
DOUBLE_BATTLE_TEST("Primal reversion and other switch-in effects trigger for all battlers if multiple fainted the previous turn")
|
||||
DOUBLE_BATTLE_TEST("Primal Reversion and other switch-in effects trigger for all battlers if multiple fainted the previous turn")
|
||||
{
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_EXPLOSION) == EFFECT_EXPLOSION);
|
||||
@ -333,7 +333,7 @@ DOUBLE_BATTLE_TEST("Primal reversion and other switch-in effects trigger for all
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Primal reversion is reverted upon battle end")
|
||||
SINGLE_BATTLE_TEST("Primal Reversion is reverted upon battle end")
|
||||
{
|
||||
u32 species, item;
|
||||
PARAMETRIZE { species = SPECIES_GROUDON; item = ITEM_RED_ORB; }
|
||||
@ -347,3 +347,25 @@ SINGLE_BATTLE_TEST("Primal reversion is reverted upon battle end")
|
||||
EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), species);
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Primal Reversion is NOT reverted upon fainting")
|
||||
{
|
||||
u32 species, item, targetSpecies;
|
||||
PARAMETRIZE { species = SPECIES_GROUDON; item = ITEM_RED_ORB; targetSpecies = SPECIES_GROUDON_PRIMAL; }
|
||||
PARAMETRIZE { species = SPECIES_KYOGRE; item = ITEM_BLUE_ORB; targetSpecies = SPECIES_KYOGRE_PRIMAL; }
|
||||
GIVEN {
|
||||
PLAYER(species) { HP(1); Item(item); }
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN {
|
||||
MOVE(player, MOVE_CELEBRATE);
|
||||
MOVE(opponent, MOVE_SCRATCH);
|
||||
SEND_OUT(player, 1);
|
||||
}
|
||||
TURN { USE_ITEM(player, ITEM_REVIVE, 0); }
|
||||
TURN { SWITCH(player, 0); }
|
||||
} THEN {
|
||||
EXPECT_EQ(player->species, targetSpecies);
|
||||
}
|
||||
}
|
||||
|
||||
@ -135,3 +135,25 @@ SINGLE_BATTLE_TEST("Necrozma returns its proper Form upon battle end after Ultra
|
||||
EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), species);
|
||||
}
|
||||
}
|
||||
|
||||
SINGLE_BATTLE_TEST("Necrozma returns its proper Form upon fainting after Ultra Bursting")
|
||||
{
|
||||
u32 species;
|
||||
PARAMETRIZE { species = SPECIES_NECROZMA_DUSK_MANE; }
|
||||
PARAMETRIZE { species = SPECIES_NECROZMA_DAWN_WINGS; }
|
||||
GIVEN {
|
||||
PLAYER(species) { HP(1); Item(ITEM_ULTRANECROZIUM_Z); }
|
||||
PLAYER(SPECIES_WOBBUFFET);
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN {
|
||||
MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_ULTRA_BURST);
|
||||
MOVE(opponent, MOVE_SCRATCH);
|
||||
SEND_OUT(player, 1);
|
||||
}
|
||||
TURN { USE_ITEM(player, ITEM_REVIVE, 0); }
|
||||
TURN { SWITCH(player, 0); }
|
||||
} THEN {
|
||||
EXPECT_EQ(player->species, species);
|
||||
}
|
||||
}
|
||||
|
||||
@ -761,19 +761,19 @@ SINGLE_BATTLE_TEST("(TERA) Transformed Pokémon can't Terastalize")
|
||||
|
||||
SINGLE_BATTLE_TEST("(TERA) Pokemon with Tera forms change upon Terastallizing")
|
||||
{
|
||||
u32 species, targetSpecies;
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_TEAL; targetSpecies = SPECIES_OGERPON_TEAL_TERA; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_WELLSPRING; targetSpecies = SPECIES_OGERPON_WELLSPRING_TERA; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_HEARTHFLAME; targetSpecies = SPECIES_OGERPON_HEARTHFLAME_TERA; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_CORNERSTONE; targetSpecies = SPECIES_OGERPON_CORNERSTONE_TERA; }
|
||||
PARAMETRIZE { species = SPECIES_TERAPAGOS_TERASTAL; targetSpecies = SPECIES_TERAPAGOS_STELLAR; }
|
||||
u32 species, target, item;
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_TEAL; target = SPECIES_OGERPON_TEAL_TERA; item = ITEM_NONE; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_WELLSPRING; target = SPECIES_OGERPON_WELLSPRING_TERA; item = ITEM_WELLSPRING_MASK; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_HEARTHFLAME; target = SPECIES_OGERPON_HEARTHFLAME_TERA; item = ITEM_HEARTHFLAME_MASK; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_CORNERSTONE; target = SPECIES_OGERPON_CORNERSTONE_TERA; item = ITEM_CORNERSTONE_MASK; }
|
||||
PARAMETRIZE { species = SPECIES_TERAPAGOS_TERASTAL; target = SPECIES_TERAPAGOS_STELLAR; item = ITEM_NONE; }
|
||||
GIVEN {
|
||||
PLAYER(species);
|
||||
PLAYER(species) { Item(item); }
|
||||
OPPONENT(SPECIES_WOBBUFFET);
|
||||
} WHEN {
|
||||
TURN { MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_TERA); }
|
||||
} THEN {
|
||||
EXPECT_EQ(player->species, targetSpecies);
|
||||
EXPECT_EQ(player->species, target);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -15,8 +15,8 @@ SINGLE_BATTLE_TEST("Ogerpon Masks increase the base power of moves by 20%", s16
|
||||
{
|
||||
u32 species;
|
||||
u32 item;
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_TEAL; item = ITEM_NONE; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_WELLSPRING; item = ITEM_CORNERSTONE_MASK; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_TEAL; item = ITEM_NONE; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_WELLSPRING; item = ITEM_CORNERSTONE_MASK; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_HEARTHFLAME; item = ITEM_WELLSPRING_MASK; }
|
||||
PARAMETRIZE { species = SPECIES_OGERPON_CORNERSTONE; item = ITEM_HEARTHFLAME_MASK; }
|
||||
|
||||
|
||||
@ -8,14 +8,12 @@ ASSUMPTIONS
|
||||
|
||||
SINGLE_BATTLE_TEST("Ivy Cudgel changes the move type depending on the form of Ogerpon")
|
||||
{
|
||||
u16 species;
|
||||
u16 ogerpon;
|
||||
u16 item;
|
||||
u32 species, ogerpon, item;
|
||||
|
||||
PARAMETRIZE { species = SPECIES_BLASTOISE; ogerpon = SPECIES_OGERPON_TEAL; item = ITEM_NONE; }
|
||||
PARAMETRIZE { species = SPECIES_BLASTOISE; ogerpon = SPECIES_OGERPON_TEAL; item = ITEM_NONE; }
|
||||
PARAMETRIZE { species = SPECIES_CHARIZARD; ogerpon = SPECIES_OGERPON_CORNERSTONE; item = ITEM_CORNERSTONE_MASK; }
|
||||
PARAMETRIZE { species = SPECIES_CHARIZARD; ogerpon = SPECIES_OGERPON_WELLSPRING; item = ITEM_WELLSPRING_MASK; }
|
||||
PARAMETRIZE { species = SPECIES_VENUSAUR; ogerpon = SPECIES_OGERPON_HEARTHFLAME; item = ITEM_HEARTHFLAME_MASK; }
|
||||
PARAMETRIZE { species = SPECIES_CHARIZARD; ogerpon = SPECIES_OGERPON_WELLSPRING; item = ITEM_WELLSPRING_MASK; }
|
||||
PARAMETRIZE { species = SPECIES_VENUSAUR; ogerpon = SPECIES_OGERPON_HEARTHFLAME; item = ITEM_HEARTHFLAME_MASK; }
|
||||
|
||||
GIVEN {
|
||||
PLAYER(ogerpon) { Item(item); }
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user