Merge branch 'RHH/master' into RHH/upcoming

# Conflicts:
#	test/battle/move_flags/three_strikes.c
#	test/move_flag_strike_count.c
#	test/move_flag_three_strikes.c
#	test/powder_moves.c
#	test/status1.c
This commit is contained in:
Eduardo Quezada 2023-08-12 16:31:44 -04:00
commit 09fc48461f
183 changed files with 544 additions and 506 deletions

View File

@ -450,7 +450,7 @@ $(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt
# NOTE: Based on C_DEP above, but without NODEP and KEEP_TEMPS handling.
define TEST_DEP
$1: $2 $$(shell $(SCANINC) -I include -I tools/agbcc/include -I gflib -I test $2)
$1: $2 $$(shell $(SCANINC) -I include -I tools/agbcc/include -I gflib $2)
@echo "$$(CC1) <flags> -o $$@ $$<"
@$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) $$< charmap.txt -i | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ -
endef

View File

@ -447,13 +447,13 @@
#ifndef GUARD_TEST_BATTLE_H
#define GUARD_TEST_BATTLE_H
#include "global.h"
#include "battle.h"
#include "battle_anim.h"
#include "data.h"
#include "item.h"
#include "random.h"
#include "recorded_battle.h"
#include "test.h"
#include "util.h"
#include "constants/abilities.h"
#include "constants/battle_anim.h"
@ -462,6 +462,7 @@
#include "constants/items.h"
#include "constants/moves.h"
#include "constants/species.h"
#include "test/test.h"
// NOTE: If the stack is too small the test runner will probably crash
// or loop.

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Blaze boosts Fire-type moves in a pinch", s16 damage)
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Clear Body prevents intimidate")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Cloud Nine prevents weather effects")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Compound Eyes raises accuracy")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Cute Charm inflicts infatuation on contact")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Damp prevents explosion-like moves from enemies")
{

View File

@ -1,72 +1,12 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{
ASSUME(gBattleMoves[MOVE_EMBER].power != 0);
ASSUME(gBattleMoves[MOVE_EMBER].type == TYPE_FIRE);
ASSUME(gBattleMoves[MOVE_WATER_GUN].power != 0);
ASSUME(gBattleMoves[MOVE_WATER_GUN].type == TYPE_WATER);
}
SINGLE_BATTLE_TEST("Primordial Sea blocks damaging Fire-type moves")
{
GIVEN {
PLAYER(SPECIES_KYOGRE) {Item(ITEM_BLUE_ORB);}
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponent, MOVE_EMBER); }
TURN { MOVE(opponent, MOVE_EMBER); }
} SCENE {
MESSAGE("Foe Wobbuffet used Ember!");
NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, opponent);
MESSAGE("The Fire-type attack fizzled out\nin the heavy rain!");
NOT HP_BAR(player);
MESSAGE("Foe Wobbuffet used Ember!");
NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, opponent);
MESSAGE("The Fire-type attack fizzled out\nin the heavy rain!");
NOT HP_BAR(player);
} THEN {
EXPECT_EQ(player->hp, player->maxHP);
}
}
DOUBLE_BATTLE_TEST("Primordial Sea blocks damaging Fire-type moves and prints the message only once with moves hitting multiple targets")
{
GIVEN {
ASSUME(gBattleMoves[MOVE_ERUPTION].power != 0);
ASSUME(gBattleMoves[MOVE_ERUPTION].type == TYPE_FIRE);
ASSUME(gBattleMoves[MOVE_ERUPTION].target == MOVE_TARGET_BOTH);
PLAYER(SPECIES_KYOGRE) {Item(ITEM_BLUE_ORB); {Speed(5);}}
PLAYER(SPECIES_WOBBUFFET) {Speed(5);}
OPPONENT(SPECIES_WOBBUFFET) {Speed(10);}
OPPONENT(SPECIES_WOBBUFFET) {Speed(8);}
} WHEN {
TURN { MOVE(opponentLeft, MOVE_ERUPTION); }
} SCENE {
MESSAGE("Foe Wobbuffet used Eruption!");
NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_ERUPTION, opponentLeft);
MESSAGE("The Fire-type attack fizzled out\nin the heavy rain!");
NOT MESSAGE("The Fire-type attack fizzled out\nin the heavy rain!");
} THEN {
EXPECT_EQ(playerLeft->hp, playerLeft->maxHP);
EXPECT_EQ(playerRight->hp, playerRight->maxHP);
}
}
SINGLE_BATTLE_TEST("Primordial Sea does not block a move if pokemon is asleep and uses a Fire-type move") // Sleep/confusion/paralysis all happen before the check for primal weather
{
GIVEN {
PLAYER(SPECIES_KYOGRE) {Item(ITEM_BLUE_ORB);}
OPPONENT(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP);}
} WHEN {
TURN { MOVE(opponent, MOVE_EMBER); }
} SCENE {
NOT MESSAGE("The Fire-type attack fizzled out\nin the heavy rain!");
MESSAGE("Foe Wobbuffet is fast asleep.");
}
}
SINGLE_BATTLE_TEST("Desolate Land blocks damaging Water-type moves")
{
GIVEN {

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Drizzle summons rain", s16 damage)
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Dry Skin causes 1/8th Max HP damage in Sun")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Electromorphosis sets up Charge when hit by any move")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Flame Body inflicts burn on contact")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Flower Gift transforms Cherrim in harsh sunlight")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Forecast transforms Castform in weather from an opponent's move")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Full Metal Body prevents intimidate")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Hunger Switch switches Morpeko's forms at the end of the turn")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Hydration cures non-volatile Status conditions if it is raining")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Hyper Cutter prevents intimidate")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Ice Body prevents damage from hail")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Immunity prevents Poison Sting poison")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Inner Focus prevents intimidate")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Insomnia prevents sleep")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Leaf Guard prevents non-volatile status conditions in sun")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Limber prevents paralysis")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Magic Bounce bounces back status moves")

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Oblivious prevents Infatuation")
{

View File

@ -0,0 +1,21 @@
#include "global.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Overcoat blocks powder and spore moves")
{
GIVEN {
ASSUME(gBattleMoves[MOVE_STUN_SPORE].powderMove);
PLAYER(SPECIES_WYNAUT);
OPPONENT(SPECIES_PINECO) { Ability(ABILITY_OVERCOAT); }
} WHEN {
TURN { MOVE(player, MOVE_STUN_SPORE); }
} SCENE {
ABILITY_POPUP(opponent, ABILITY_OVERCOAT);
NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player);
MESSAGE("It doesn't affect Foe Pineco…");
}
}
TO_DO_BATTLE_TEST("Overcoat blocks damage from hail");
TO_DO_BATTLE_TEST("Overcoat blocks damage from sandstorm");
TO_DO_BATTLE_TEST("Overcoat blocks Effect Spore's effect");

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Overgrow boosts Grass-type moves in a pinch", s16 damage)
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Own Tempo prevents intimidate")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Pastel Veil prevents Poison Sting poison")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Poison Point inflicts poison on contact")
{

View File

@ -0,0 +1,66 @@
#include "global.h"
#include "test/battle.h"
ASSUMPTIONS
{
ASSUME(gBattleMoves[MOVE_EMBER].power != 0);
ASSUME(gBattleMoves[MOVE_EMBER].type == TYPE_FIRE);
}
SINGLE_BATTLE_TEST("Primordial Sea blocks damaging Fire-type moves")
{
GIVEN {
PLAYER(SPECIES_KYOGRE) {Item(ITEM_BLUE_ORB);}
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponent, MOVE_EMBER); }
TURN { MOVE(opponent, MOVE_EMBER); }
} SCENE {
MESSAGE("Foe Wobbuffet used Ember!");
NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, opponent);
MESSAGE("The Fire-type attack fizzled out\nin the heavy rain!");
NOT HP_BAR(player);
MESSAGE("Foe Wobbuffet used Ember!");
NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, opponent);
MESSAGE("The Fire-type attack fizzled out\nin the heavy rain!");
NOT HP_BAR(player);
} THEN {
EXPECT_EQ(player->hp, player->maxHP);
}
}
DOUBLE_BATTLE_TEST("Primordial Sea blocks damaging Fire-type moves and prints the message only once with moves hitting multiple targets")
{
GIVEN {
ASSUME(gBattleMoves[MOVE_ERUPTION].power != 0);
ASSUME(gBattleMoves[MOVE_ERUPTION].type == TYPE_FIRE);
ASSUME(gBattleMoves[MOVE_ERUPTION].target == MOVE_TARGET_BOTH);
PLAYER(SPECIES_KYOGRE) {Item(ITEM_BLUE_ORB); {Speed(5);}}
PLAYER(SPECIES_WOBBUFFET) {Speed(5);}
OPPONENT(SPECIES_WOBBUFFET) {Speed(10);}
OPPONENT(SPECIES_WOBBUFFET) {Speed(8);}
} WHEN {
TURN { MOVE(opponentLeft, MOVE_ERUPTION); }
} SCENE {
MESSAGE("Foe Wobbuffet used Eruption!");
NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_ERUPTION, opponentLeft);
MESSAGE("The Fire-type attack fizzled out\nin the heavy rain!");
NOT MESSAGE("The Fire-type attack fizzled out\nin the heavy rain!");
} THEN {
EXPECT_EQ(playerLeft->hp, playerLeft->maxHP);
EXPECT_EQ(playerRight->hp, playerRight->maxHP);
}
}
SINGLE_BATTLE_TEST("Primordial Sea does not block a move if pokemon is asleep and uses a Fire-type move") // Sleep/confusion/paralysis all happen before the check for primal weather
{
GIVEN {
PLAYER(SPECIES_KYOGRE) {Item(ITEM_BLUE_ORB);}
OPPONENT(SPECIES_WOBBUFFET) {Status1(STATUS1_SLEEP);}
} WHEN {
TURN { MOVE(opponent, MOVE_EMBER); }
} SCENE {
NOT MESSAGE("The Fire-type attack fizzled out\nin the heavy rain!");
MESSAGE("Foe Wobbuffet is fast asleep.");
}
}

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Rain Dish recovers 1/16th of Max HP in Rain")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Sand Veil prevents damage from sandstorm")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Schooling switches Level 20+ Wishiwashi's form when HP is 25-percent or less at the end of the turn")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Scrappy prevents intimidate")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Snow Cloak prevents damage from hail")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
#if B_SNOW_WARNING < GEN_9
SINGLE_BATTLE_TEST("Snow Warning summons hail")

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Speed Boost gradually boosts Speed")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
#define STAMINA_STAT_RAISE(target, msg) \
{ \

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Static inflicts paralysis on contact")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Stench has a 10% chance to flinch")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Sturdy prevents OHKO moves")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Swarm boosts Bug-type moves in a pinch", s16 damage)
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Torrent boosts Water-type moves in a pinch", s16 damage)
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Volt Absorb heals 25% when hit by electric type moves")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Water Absorb heals 25% when hit by water type moves")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("White Smoke prevents intimidate")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Zen Mode switches Darmanitan's form when HP is half or less at the end of the turn")
{

View File

@ -0,0 +1,23 @@
#include "global.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Aegislash reverts to Shield Form upon switching out")
{
GIVEN {
ASSUME(P_GEN_6_POKEMON == TRUE);
PLAYER(SPECIES_AEGISLASH);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_TACKLE); }
TURN { SWITCH(player, 1); }
TURN { SWITCH(player, 0); }
} SCENE {
ABILITY_POPUP(player, ABILITY_STANCE_CHANGE);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player);
MESSAGE("Aegislash used Tackle!");
MESSAGE("Foe Wobbuffet used Celebrate!");
} THEN {
EXPECT_EQ(player->species, SPECIES_AEGISLASH);
}
}

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Xerneas changes into Active Form upon battle start")
{
@ -79,41 +79,3 @@ SINGLE_BATTLE_TEST("Zamazenta's Iron Head becomes Behemoth Bash upon form change
EXPECT_EQ(player->moves[0], MOVE_BEHEMOTH_BASH);
}
}
SINGLE_BATTLE_TEST("Aegislash reverts to Shield Form upon switching out")
{
GIVEN {
ASSUME(P_GEN_6_POKEMON == TRUE);
PLAYER(SPECIES_AEGISLASH);
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_TACKLE); }
TURN { SWITCH(player, 1); }
TURN { SWITCH(player, 0); }
} SCENE {
ABILITY_POPUP(player, ABILITY_STANCE_CHANGE);
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player);
MESSAGE("Aegislash used Tackle!");
MESSAGE("Foe Wobbuffet used Celebrate!");
} THEN {
EXPECT_EQ(player->species, SPECIES_AEGISLASH);
}
}
SINGLE_BATTLE_TEST("Aegislash reverts to Shield Form upon fainting")
{
GIVEN {
ASSUME(P_GEN_6_POKEMON == TRUE);
PLAYER(SPECIES_AEGISLASH) { HP(1); }
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponent, MOVE_GUST); SEND_OUT(player, 1); }
} SCENE {
MESSAGE("Foe Wobbuffet used Gust!");
MESSAGE("Aegislash fainted!");
} THEN {
EXPECT_EQ(GetMonData(&PLAYER_PARTY[0], MON_DATA_SPECIES), SPECIES_AEGISLASH);
}
}

View File

@ -0,0 +1,19 @@
#include "global.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Aegislash reverts to Shield Form upon fainting")
{
GIVEN {
ASSUME(P_GEN_6_POKEMON == TRUE);
PLAYER(SPECIES_AEGISLASH) { HP(1); }
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponent, MOVE_GUST); SEND_OUT(player, 1); }
} SCENE {
MESSAGE("Foe Wobbuffet used Gust!");
MESSAGE("Aegislash fainted!");
} THEN {
EXPECT_EQ(GetMonData(&PLAYER_PARTY[0], MON_DATA_SPECIES), SPECIES_AEGISLASH);
}
}

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Venusaur can Mega Evolve holding Venusaurite")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Primal reversion happens for Groudon only when holding Red Orb")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -0,0 +1,26 @@
#include "global.h"
#include "test/battle.h"
ASSUMPTIONS
{
gItems[ITEM_SAFETY_GOGGLES].holdEffect == HOLD_EFFECT_SAFETY_GOGGLES;
};
SINGLE_BATTLE_TEST("Safety Goggles block powder and spore moves")
{
GIVEN {
ASSUME(gBattleMoves[MOVE_STUN_SPORE].powderMove);
ASSUME(gItems[ITEM_SAFETY_GOGGLES].holdEffect == HOLD_EFFECT_SAFETY_GOGGLES);
PLAYER(SPECIES_WYNAUT);
OPPONENT(SPECIES_ABRA) { Item(ITEM_SAFETY_GOGGLES); }
} WHEN {
TURN { MOVE(player, MOVE_STUN_SPORE); }
} SCENE {
NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player);
MESSAGE("Foe Abra is not affected thanks to its SafetyGoggles!");
}
}
TO_DO_BATTLE_TEST("Safety Goggles blocks damage from hail");
TO_DO_BATTLE_TEST("Safety Goggles blocks damage from sandstorm");
TO_DO_BATTLE_TEST("Safety Goggles blocks Effect Spore's effect");

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
// Please add Utility Umbrella interactions with move, item and ability effects on their respective files.
ASSUMPTIONS

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Paralyze Heal heals a battler from being paralyzed")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Full Restore restores a battler's HP and cures any primary status")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("X Attack sharply raises battler's Attack stat", s16 damage)
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Items can restore a battler's HP by a fixed amount")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Ether restores the PP of one of a battler's moves by 10 ")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Revive restores a fainted battler's HP to half")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Dire Hit increases a battler's critical hit chance by 2 stages")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Guard Spec. sets Mist effect on the battlers side")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Accuracy controls the proportion of misses")
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

View File

@ -1,5 +1,5 @@
#include "global.h"
#include "test_battle.h"
#include "test/battle.h"
ASSUMPTIONS
{

Some files were not shown because too many files have changed in this diff Show More