#include "global.h" #include "test/battle.h" ASSUMPTIONS { ASSUME(gMovesInfo[MOVE_WATER_GUN].category == DAMAGE_CATEGORY_SPECIAL); ASSUME(gMovesInfo[MOVE_ENTRAINMENT].effect == EFFECT_ENTRAINMENT); } SINGLE_BATTLE_TEST("Vessel of Ruin reduces Sp. Atk if opposing mon's ability doesn't match") { s16 damage[2]; GIVEN { PLAYER(SPECIES_TING_LU) { Ability(ABILITY_VESSEL_OF_RUIN); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(opponent, MOVE_WATER_GUN); MOVE(player, MOVE_ENTRAINMENT); } TURN { MOVE(opponent, MOVE_WATER_GUN); } } SCENE { ABILITY_POPUP(player, ABILITY_VESSEL_OF_RUIN); MESSAGE("Ting-Lu's Vessel of Ruin weakened the Sp. Atk of all surrounding Pokémon!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, opponent); HP_BAR(player, captureDamage: &damage[0]); ANIMATION(ANIM_TYPE_MOVE, MOVE_ENTRAINMENT, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, opponent); HP_BAR(player, captureDamage: &damage[1]); } THEN { EXPECT_MUL_EQ(damage[0], Q_4_12(1.33), damage[1]); } } SINGLE_BATTLE_TEST("Vessel of Ruin's message displays correctly after all battlers fainted - Player") { GIVEN { ASSUME(gMovesInfo[MOVE_EXPLOSION].effect == EFFECT_EXPLOSION); PLAYER(SPECIES_WOBBUFFET) { HP(1);} PLAYER(SPECIES_TING_LU); OPPONENT(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(opponent, MOVE_EXPLOSION); SEND_OUT(player, 1); SEND_OUT(opponent, 1); } TURN { MOVE(player, MOVE_TACKLE); MOVE(opponent, MOVE_RUINATION); } } SCENE { HP_BAR(opponent, hp: 0); ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, opponent); // Everyone faints. MESSAGE("Go! Ting-Lu!"); MESSAGE("2 sent out Wobbuffet!"); ABILITY_POPUP(player, ABILITY_VESSEL_OF_RUIN); MESSAGE("Ting-Lu's Vessel of Ruin weakened the Sp. Atk of all surrounding Pokémon!"); } } SINGLE_BATTLE_TEST("Vessel of Ruin's message displays correctly after all battlers fainted - Opponent") { GIVEN { ASSUME(gMovesInfo[MOVE_EXPLOSION].effect == EFFECT_EXPLOSION); PLAYER(SPECIES_WOBBUFFET); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET) { HP(1);} OPPONENT(SPECIES_TING_LU); } WHEN { TURN { MOVE(player, MOVE_EXPLOSION); SEND_OUT(player, 1); SEND_OUT(opponent, 1); } TURN { MOVE(player, MOVE_RUINATION); MOVE(opponent, MOVE_TACKLE); } } SCENE { HP_BAR(player, hp: 0); ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, player); // Everyone faints. SEND_IN_MESSAGE("Wobbuffet"); MESSAGE("2 sent out Ting-Lu!"); ABILITY_POPUP(opponent, ABILITY_VESSEL_OF_RUIN); MESSAGE("The opposing Ting-Lu's Vessel of Ruin weakened the Sp. Atk of all surrounding Pokémon!"); } }