87e2526665
* Add switching message macros * Add test
75 lines
2.8 KiB
C
75 lines
2.8 KiB
C
#include "global.h"
|
|
#include "test/battle.h"
|
|
|
|
ASSUMPTIONS
|
|
{
|
|
ASSUME(gMovesInfo[MOVE_STEALTH_ROCK].effect == EFFECT_STEALTH_ROCK);
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Stealth Rock damage on switch in based on typing")
|
|
{
|
|
u32 species, divisor;
|
|
|
|
PARAMETRIZE { species = SPECIES_CHARIZARD; divisor = 2; } // Fire / Flying
|
|
PARAMETRIZE { species = SPECIES_PIDGEOT; divisor = 4; } // Flying
|
|
PARAMETRIZE { species = SPECIES_RATICATE; divisor = 8; } // Normal dmg
|
|
PARAMETRIZE { species = SPECIES_GOLEM; divisor = 16; } // Ground not very effective
|
|
PARAMETRIZE { species = SPECIES_STEELIX; divisor = 32; } // Ground/Steel not very effective
|
|
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
OPPONENT(species);
|
|
} WHEN {
|
|
TURN { MOVE(player, MOVE_STEALTH_ROCK); }
|
|
TURN { SWITCH(opponent, 1); }
|
|
} SCENE {
|
|
s32 maxHP = GetMonData(&OPPONENT_PARTY[1], MON_DATA_MAX_HP);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_STEALTH_ROCK, player);
|
|
// MESSAGE("2 sent out species!");
|
|
HP_BAR(opponent, damage: maxHP / divisor);
|
|
}
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Stealth Rock damages the correct pokemon when Eject Button is triggered")
|
|
{
|
|
GIVEN {
|
|
PLAYER(SPECIES_METAPOD) { Item(ITEM_EJECT_BUTTON); }
|
|
PLAYER(SPECIES_METAPOD);
|
|
OPPONENT(SPECIES_JOLTEON);
|
|
} WHEN {
|
|
TURN { MOVE(opponent, MOVE_STEALTH_ROCK); MOVE(player, MOVE_HARDEN); }
|
|
TURN { MOVE(opponent, MOVE_QUICK_ATTACK); MOVE(player, MOVE_HARDEN); SEND_OUT(player, 1); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_STEALTH_ROCK, opponent);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_HARDEN, player);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_QUICK_ATTACK, opponent);
|
|
NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_HARDEN, player);
|
|
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player);
|
|
SEND_IN_MESSAGE("Metapod");
|
|
HP_BAR(player);
|
|
} THEN {
|
|
EXPECT_EQ(opponent->hp, opponent->maxHP);
|
|
}
|
|
}
|
|
|
|
DOUBLE_BATTLE_TEST("Stealth Rock damages the correct pokemon when Eject Button is triggered in double battle")
|
|
{
|
|
GIVEN {
|
|
PLAYER(SPECIES_METAPOD) { Item(ITEM_EJECT_BUTTON); }
|
|
PLAYER(SPECIES_METAPOD) { Item(ITEM_EJECT_BUTTON); }
|
|
PLAYER(SPECIES_METAPOD);
|
|
OPPONENT(SPECIES_JOLTEON);
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
} WHEN {
|
|
TURN { MOVE(opponentLeft, MOVE_STEALTH_ROCK); MOVE(opponentRight, MOVE_TACKLE, target: playerLeft); SEND_OUT(playerLeft, 2); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_STEALTH_ROCK, opponentLeft);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight);
|
|
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerLeft);
|
|
SEND_IN_MESSAGE("Metapod");
|
|
HP_BAR(playerLeft);
|
|
} THEN {
|
|
EXPECT_EQ(opponentLeft->hp, opponentLeft->maxHP);
|
|
}
|
|
}
|