63 lines
2.0 KiB
C
63 lines
2.0 KiB
C
#include "global.h"
|
|
#include "test/battle.h"
|
|
|
|
SINGLE_BATTLE_TEST("Shell Bell restores 1/8 HP of damage dealt")
|
|
{
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET) { Level(16); Item(ITEM_SHELL_BELL); HP(10); }
|
|
OPPONENT(SPECIES_WOBBUFFET) { Level(16); };
|
|
} WHEN {
|
|
TURN { MOVE(player, MOVE_SEISMIC_TOSS); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_SEISMIC_TOSS, player);
|
|
HP_BAR(opponent);
|
|
HP_BAR(player, damage: -2);
|
|
}
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Shell Bell doesn't restore HP for damage dealt by a foreseen move")
|
|
{
|
|
GIVEN {
|
|
ASSUME(gMovesInfo[MOVE_FUTURE_SIGHT].effect == EFFECT_FUTURE_SIGHT);
|
|
PLAYER(SPECIES_WOBBUFFET) { Level(16); Item(ITEM_SHELL_BELL); HP(10); }
|
|
OPPONENT(SPECIES_WOBBUFFET) { Level(16); };
|
|
} WHEN {
|
|
TURN { MOVE(player, MOVE_FUTURE_SIGHT); }
|
|
TURN { }
|
|
TURN { }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, player);
|
|
MESSAGE("The opposing Wobbuffet took the Future Sight attack!");
|
|
HP_BAR(opponent);
|
|
NONE_OF {
|
|
HP_BAR(player);
|
|
}
|
|
}
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Shell Bell does not activate on Future Sight if the original user is on the field")
|
|
{
|
|
s16 damage = 0;
|
|
s16 healed = 0;
|
|
|
|
GIVEN {
|
|
PLAYER(SPECIES_WOBBUFFET) { HP(1); Item(ITEM_SHELL_BELL); }
|
|
OPPONENT(SPECIES_WYNAUT);
|
|
} WHEN {
|
|
TURN { MOVE(player, MOVE_FUTURE_SIGHT); }
|
|
TURN {}
|
|
TURN {}
|
|
TURN { MOVE(player, MOVE_DRAGON_RAGE); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, player);
|
|
MESSAGE("The opposing Wynaut took the Future Sight attack!");
|
|
HP_BAR(opponent);
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_RAGE, player);
|
|
HP_BAR(opponent, captureDamage: &damage);
|
|
ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player);
|
|
HP_BAR(player, captureDamage: &healed);
|
|
} THEN {
|
|
EXPECT_MUL_EQ(damage, Q_4_12(-0.25), healed);
|
|
}
|
|
}
|