pokeemmo/test/battle/ability/aftermath.c
2025-04-30 17:18:52 -04:00

51 lines
1.7 KiB
C

#include "global.h"
#include "test/battle.h"
SINGLE_BATTLE_TEST("Aftermath damages the attacker by 1/4th of its max HP if fainted by a contact move")
{
s16 aftermathDamage;
GIVEN {
PLAYER(SPECIES_VOLTORB) { HP(1); Ability(ABILITY_AFTERMATH); };
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN {MOVE(opponent, MOVE_SCRATCH);}
} SCENE {
MESSAGE("The opposing Wobbuffet used Scratch!");
ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, opponent);
MESSAGE("Voltorb fainted!");
ABILITY_POPUP(player, ABILITY_AFTERMATH);
HP_BAR(opponent, captureDamage: &aftermathDamage);
} THEN {
EXPECT_EQ(aftermathDamage, opponent->maxHP / 4);
}
}
SINGLE_BATTLE_TEST("Aftermath ability pop-up will be displayed correctly: player point of view")
{
GIVEN {
PLAYER(SPECIES_SHROOMISH) { Ability(ABILITY_POISON_HEAL); };
OPPONENT(SPECIES_VOLTORB) { HP(1); Ability(ABILITY_AFTERMATH); };
} WHEN {
TURN {MOVE(player, MOVE_HEADBUTT);}
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_HEADBUTT, player);
MESSAGE("The opposing Voltorb fainted!");
ABILITY_POPUP(opponent, ABILITY_AFTERMATH);
}
}
SINGLE_BATTLE_TEST("Aftermath ability pop-up will be displayed correctly: opponent point of view")
{
GIVEN {
PLAYER(SPECIES_VOLTORB) { HP(1); Ability(ABILITY_AFTERMATH); };
OPPONENT(SPECIES_SHROOMISH) { Ability(ABILITY_POISON_HEAL); };
} WHEN {
TURN {MOVE(opponent, MOVE_HEADBUTT);}
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_HEADBUTT, opponent);
MESSAGE("Voltorb fainted!");
ABILITY_POPUP(player, ABILITY_AFTERMATH);
}
}