0a8284ce9f
* Added missing Move Effect TODO tests - Volume B * Apply suggestions from code review Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com> * Removed unused bulldoze effect file * Removed individual tests for Baton Pass + Status1 in favor of the existing single test --------- Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
160 lines
5.1 KiB
C
160 lines
5.1 KiB
C
#include "global.h"
|
|
#include "test/battle.h"
|
|
|
|
ASSUMPTIONS
|
|
{
|
|
ASSUME(gMovesInfo[MOVE_RAGING_BULL].effect == EFFECT_RAGING_BULL);
|
|
ASSUME(gMovesInfo[MOVE_SNOWSCAPE].effect == EFFECT_SNOWSCAPE);
|
|
ASSUME(gMovesInfo[MOVE_LIGHT_SCREEN].effect == EFFECT_LIGHT_SCREEN);
|
|
ASSUME(gMovesInfo[MOVE_REFLECT].effect == EFFECT_REFLECT);
|
|
ASSUME(gMovesInfo[MOVE_AURORA_VEIL].effect == EFFECT_AURORA_VEIL);
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Raging Bull removes Light Screen, Reflect and Aurora Veil from the target's side of the field")
|
|
{
|
|
u16 move;
|
|
|
|
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; }
|
|
PARAMETRIZE { move = MOVE_REFLECT; }
|
|
PARAMETRIZE { move = MOVE_AURORA_VEIL; }
|
|
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
} WHEN {
|
|
TURN { MOVE(player, MOVE_SNOWSCAPE); }
|
|
TURN { MOVE(opponent, move); MOVE(player, MOVE_RAGING_BULL); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SNOWSCAPE, player);
|
|
ANIMATION(ANIM_TYPE_MOVE, move, opponent);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGING_BULL, player);
|
|
MESSAGE("The wall shattered!");
|
|
HP_BAR(opponent);
|
|
}
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Raging Bull doesn't remove Light Screen, Reflect and Aurora Veil if the target is immune")
|
|
{
|
|
u16 move;
|
|
|
|
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; }
|
|
PARAMETRIZE { move = MOVE_REFLECT; }
|
|
PARAMETRIZE { move = MOVE_AURORA_VEIL; }
|
|
|
|
KNOWN_FAILING;
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_GASTLY);
|
|
} WHEN {
|
|
TURN { MOVE(player, MOVE_SNOWSCAPE); }
|
|
TURN { MOVE(opponent, move); MOVE(player, MOVE_RAGING_BULL); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SNOWSCAPE, player);
|
|
ANIMATION(ANIM_TYPE_MOVE, move, opponent);
|
|
NONE_OF {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGING_BULL, player);
|
|
MESSAGE("The wall shattered!");
|
|
HP_BAR(opponent);
|
|
}
|
|
}
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Raging Bull doesn't remove Light Screen, Reflect and Aurora Veil if the target Protected")
|
|
{
|
|
u16 move;
|
|
|
|
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; }
|
|
PARAMETRIZE { move = MOVE_REFLECT; }
|
|
PARAMETRIZE { move = MOVE_AURORA_VEIL; }
|
|
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
} WHEN {
|
|
TURN { MOVE(player, MOVE_SNOWSCAPE); MOVE(opponent, move); }
|
|
TURN { MOVE(player, MOVE_RAGING_BULL); MOVE(opponent, MOVE_PROTECT); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SNOWSCAPE, player);
|
|
ANIMATION(ANIM_TYPE_MOVE, move, opponent);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_PROTECT, opponent);
|
|
NONE_OF {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGING_BULL, player);
|
|
MESSAGE("The wall shattered!");
|
|
HP_BAR(opponent);
|
|
}
|
|
}
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Raging Bull doesn't remove Light Screen, Reflect and Aurora Veil if it misses")
|
|
{
|
|
u16 move;
|
|
|
|
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; }
|
|
PARAMETRIZE { move = MOVE_REFLECT; }
|
|
PARAMETRIZE { move = MOVE_AURORA_VEIL; }
|
|
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_BRIGHT_POWDER); }
|
|
} WHEN {
|
|
TURN { MOVE(player, MOVE_SNOWSCAPE); MOVE(opponent, move); }
|
|
TURN { MOVE(player, MOVE_RAGING_BULL, hit: FALSE); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SNOWSCAPE, player);
|
|
ANIMATION(ANIM_TYPE_MOVE, move, opponent);
|
|
NONE_OF {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGING_BULL, player);
|
|
MESSAGE("The wall shattered!");
|
|
HP_BAR(opponent);
|
|
}
|
|
}
|
|
}
|
|
|
|
DOUBLE_BATTLE_TEST("Raging Bull can remove Light Screen, Reflect and Aurora Veil on users side")
|
|
{
|
|
u16 move;
|
|
|
|
PARAMETRIZE { move = MOVE_LIGHT_SCREEN; }
|
|
PARAMETRIZE { move = MOVE_REFLECT; }
|
|
PARAMETRIZE { move = MOVE_AURORA_VEIL; }
|
|
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
} WHEN {
|
|
TURN {
|
|
MOVE(opponentLeft, MOVE_SNOWSCAPE);
|
|
MOVE(playerLeft, move);
|
|
MOVE(playerRight, MOVE_RAGING_BULL, target: playerLeft);
|
|
}
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SNOWSCAPE, opponentLeft);
|
|
ANIMATION(ANIM_TYPE_MOVE, move, playerLeft);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGING_BULL, playerRight);
|
|
MESSAGE("The wall shattered!");
|
|
HP_BAR(playerLeft);
|
|
}
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Move Raging Bull changes it's type depending on the Tauros Form")
|
|
{
|
|
u16 speciesPlayer;
|
|
u16 speciesOpponent;
|
|
|
|
PARAMETRIZE { speciesPlayer = SPECIES_TAUROS_PALDEAN_COMBAT_BREED; speciesOpponent = SPECIES_CHARIZARD; }
|
|
PARAMETRIZE { speciesPlayer = SPECIES_TAUROS_PALDEAN_BLAZE_BREED; speciesOpponent = SPECIES_BLASTOISE; }
|
|
PARAMETRIZE { speciesPlayer = SPECIES_TAUROS_PALDEAN_AQUA_BREED; speciesOpponent = SPECIES_VENUSAUR; }
|
|
|
|
GIVEN {
|
|
PLAYER(speciesPlayer);
|
|
OPPONENT(speciesOpponent);
|
|
} WHEN {
|
|
TURN { MOVE(player, MOVE_RAGING_BULL); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGING_BULL, player);
|
|
HP_BAR(opponent);
|
|
MESSAGE("It's not very effective…");
|
|
}
|
|
}
|