sovereignx/test/battle/move_effect/photon_geyser.c
Eduardo Quezada D'Ottone 6d1d6a5d5f
Fixed test battle move category assumptions (#4051)
* Fixed move category assumptions

* Update test/battle/ai_check_viability.c

---------

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2024-01-24 10:43:57 +01:00

53 lines
1.7 KiB
C

#include "global.h"
#include "test/battle.h"
ASSUMPTIONS
{
ASSUME(gBattleMoves[MOVE_PHOTON_GEYSER].effect == EFFECT_PHOTON_GEYSER);
}
SINGLE_BATTLE_TEST("Photon Geyser can be mirror coated if it is a special move")
{
GIVEN {
// EFFECT_PHOTON_GEYSER requires the move data to be Special to work
ASSUME(gBattleMoves[MOVE_PHOTON_GEYSER].category == BATTLE_CATEGORY_SPECIAL);
PLAYER(SPECIES_WOBBUFFET) { Attack(100); SpAttack(110); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_PHOTON_GEYSER); MOVE(opponent, MOVE_MIRROR_COAT); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_PHOTON_GEYSER, player);
HP_BAR(opponent);
ANIMATION(ANIM_TYPE_MOVE, MOVE_MIRROR_COAT, opponent);
HP_BAR(player);
}
}
SINGLE_BATTLE_TEST("Photon Geyser can be countered if it is a physcal move")
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET) { Attack(110); SpAttack(100); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_PHOTON_GEYSER); MOVE(opponent, MOVE_COUNTER); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_PHOTON_GEYSER, player);
HP_BAR(opponent);
ANIMATION(ANIM_TYPE_MOVE, MOVE_COUNTER, opponent);
HP_BAR(player);
}
}
SINGLE_BATTLE_TEST("Photon Geyser ignores ignorable Abilities like Battle Armor")
{
GIVEN {
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_LAPRAS) { Ability(ABILITY_SHELL_ARMOR); }
} WHEN {
TURN { MOVE(player, MOVE_PHOTON_GEYSER, criticalHit: TRUE); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_PHOTON_GEYSER, player, );
HP_BAR(opponent);
MESSAGE("A critical hit!");
}
}