mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-25 19:24:16 +01:00
Organized tests into subfolders (#2822)
This commit is contained in:
parent
ada29313de
commit
d62c0d6d51
2
Makefile
2
Makefile
@ -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
|
||||
|
@ -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.
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -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)
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Clear Body prevents intimidate")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Cloud Nine prevents weather effects")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Compound Eyes raises accuracy")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Cute Charm inflicts infatuation on contact")
|
||||
{
|
@ -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")
|
||||
{
|
@ -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 {
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Drizzle summons rain", s16 damage)
|
||||
{
|
@ -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")
|
||||
{
|
@ -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")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Flame Body inflicts burn on contact")
|
||||
{
|
@ -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")
|
||||
{
|
@ -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")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Full Metal Body prevents intimidate")
|
||||
{
|
@ -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")
|
||||
{
|
@ -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")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Hyper Cutter prevents intimidate")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Ice Body prevents damage from hail")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Immunity prevents Poison Sting poison")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Inner Focus prevents intimidate")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Insomnia prevents sleep")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -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")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Limber prevents paralysis")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
|
||||
SINGLE_BATTLE_TEST("Magic Bounce bounces back status moves")
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Oblivious prevents Infatuation")
|
||||
{
|
21
test/battle/ability/overcoat.c
Normal file
21
test/battle/ability/overcoat.c
Normal 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].flags & FLAG_POWDER);
|
||||
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");
|
@ -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)
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Own Tempo prevents intimidate")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Pastel Veil prevents Poison Sting poison")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Poison Point inflicts poison on contact")
|
||||
{
|
66
test/battle/ability/primordial_sea.c
Normal file
66
test/battle/ability/primordial_sea.c
Normal 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.");
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -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")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Sand Veil prevents damage from sandstorm")
|
||||
{
|
@ -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")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Scrappy prevents intimidate")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Snow Cloak prevents damage from hail")
|
||||
{
|
@ -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")
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Speed Boost gradually boosts Speed")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
#define STAMINA_STAT_RAISE(target, msg) \
|
||||
{ \
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Static inflicts paralysis on contact")
|
||||
{
|
@ -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")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Sturdy prevents OHKO moves")
|
||||
{
|
@ -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)
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -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)
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -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")
|
||||
{
|
@ -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")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("White Smoke prevents intimidate")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -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")
|
||||
{
|
23
test/battle/form_change/battle_switch.c
Normal file
23
test/battle/form_change/battle_switch.c
Normal 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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
19
test/battle/form_change/faint.c
Normal file
19
test/battle/form_change/faint.c
Normal 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);
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Venusaur can Mega Evolve holding Venusaurite")
|
||||
{
|
@ -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")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
26
test/battle/hold_effect/safety_goggles.c
Normal file
26
test/battle/hold_effect/safety_goggles.c
Normal 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].flags & FLAG_POWDER);
|
||||
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");
|
@ -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
|
@ -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")
|
||||
{
|
@ -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")
|
||||
{
|
@ -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)
|
||||
{
|
@ -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")
|
||||
{
|
@ -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 ")
|
||||
{
|
@ -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")
|
||||
{
|
@ -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")
|
||||
{
|
@ -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")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Accuracy controls the proportion of misses")
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -1,5 +1,5 @@
|
||||
#include "global.h"
|
||||
#include "test_battle.h"
|
||||
#include "test/battle.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
@ -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
Loading…
Reference in New Issue
Block a user