#include "global.h" #include "test/battle.h" ASSUMPTIONS { ASSUME(GetMoveEffect(MOVE_MISTY_EXPLOSION) == EFFECT_MISTY_EXPLOSION); } TO_DO_BATTLE_TEST("Misty Explosion increases in power by 50% when affected by Misty Terrain") SINGLE_BATTLE_TEST("Misty Explosion causes the user to faint") { GIVEN { PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, MOVE_MISTY_EXPLOSION); } } SCENE { HP_BAR(player, hp: 0); ANIMATION(ANIM_TYPE_MOVE, MOVE_MISTY_EXPLOSION, player); MESSAGE("Wobbuffet fainted!"); } } SINGLE_BATTLE_TEST("Misty Explosion causes the user & the target to faint") { GIVEN { PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET) { HP(1); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, MOVE_MISTY_EXPLOSION); } } SCENE { HP_BAR(player, hp: 0); ANIMATION(ANIM_TYPE_MOVE, MOVE_MISTY_EXPLOSION, player); HP_BAR(opponent, hp: 0); MESSAGE("The opposing Wobbuffet fainted!"); MESSAGE("Wobbuffet fainted!"); } } SINGLE_BATTLE_TEST("Misty Explosion causes the user to faint even if it misses") { GIVEN { PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, MOVE_MISTY_EXPLOSION, hit: FALSE); } } SCENE { HP_BAR(player, hp: 0); ANIMATION(ANIM_TYPE_MOVE, MOVE_MISTY_EXPLOSION, player); MESSAGE("Wobbuffet fainted!"); } } DOUBLE_BATTLE_TEST("Misty Explosion causes everyone to faint in a double battle") { GIVEN { PLAYER(SPECIES_WOBBUFFET); PLAYER(SPECIES_WYNAUT) { HP(1); } OPPONENT(SPECIES_ABRA) { HP(1); } OPPONENT(SPECIES_KADABRA) { HP(1); } OPPONENT(SPECIES_KADABRA); } WHEN { TURN { MOVE(playerLeft, MOVE_MISTY_EXPLOSION); } } SCENE { HP_BAR(playerLeft, hp: 0); ANIMATION(ANIM_TYPE_MOVE, MOVE_MISTY_EXPLOSION, playerLeft); HP_BAR(opponentLeft, hp: 0); HP_BAR(playerRight, hp: 0); HP_BAR(opponentRight, hp: 0); MESSAGE("The opposing Abra fainted!"); MESSAGE("Wynaut fainted!"); MESSAGE("The opposing Kadabra fainted!"); MESSAGE("Wobbuffet fainted!"); } } SINGLE_BATTLE_TEST("Misty Explosion does not trigger Destiny Bond") { GIVEN { PLAYER(SPECIES_WOBBUFFET) { HP(1); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, MOVE_DESTINY_BOND); MOVE(opponent, MOVE_MISTY_EXPLOSION); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DESTINY_BOND, player); HP_BAR(opponent); ANIMATION(ANIM_TYPE_MOVE, MOVE_MISTY_EXPLOSION, opponent); HP_BAR(player); NOT HP_BAR(opponent); } }