131 lines
4.5 KiB
C
131 lines
4.5 KiB
C
#include "global.h"
|
|
#include "test/battle.h"
|
|
|
|
SINGLE_BATTLE_TEST("Innards Out deal dmg on fainting equal to the amount of dmg inflicted on the Innards Out mon")
|
|
{
|
|
u16 hp = 0;
|
|
PARAMETRIZE { hp = 5; }
|
|
PARAMETRIZE { hp = 15; }
|
|
PARAMETRIZE { hp = 50; }
|
|
PARAMETRIZE { hp = 100; } // This takes out Wobbuffet.
|
|
|
|
GIVEN {
|
|
PLAYER(SPECIES_PYUKUMUKU) { HP(hp); Ability(ABILITY_INNARDS_OUT); }
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_WOBBUFFET) { HP(70); SpAttack(1000); }
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
ASSUME(!IsBattleMoveStatus(MOVE_PSYCHIC));
|
|
ASSUME(GetMoveCategory(MOVE_PSYCHIC) == DAMAGE_CATEGORY_SPECIAL);
|
|
} WHEN {
|
|
TURN { MOVE(opponent, MOVE_PSYCHIC); SEND_OUT(player, 1); if (hp == 100) { SEND_OUT(opponent, 1); } }
|
|
} SCENE {
|
|
MESSAGE("The opposing Wobbuffet used Psychic!");
|
|
HP_BAR(player, hp);
|
|
ABILITY_POPUP(player, ABILITY_INNARDS_OUT);
|
|
HP_BAR(opponent, hp);
|
|
}
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Innards Out does not trigger after Gastro Acid has been used")
|
|
{
|
|
GIVEN {
|
|
PLAYER(SPECIES_PYUKUMUKU) { HP(1); Ability(ABILITY_INNARDS_OUT); }
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
ASSUME(!IsBattleMoveStatus(MOVE_PSYCHIC));
|
|
ASSUME(GetMoveEffect(MOVE_GASTRO_ACID) == EFFECT_GASTRO_ACID);
|
|
} WHEN {
|
|
TURN { MOVE(opponent, MOVE_GASTRO_ACID); }
|
|
TURN { MOVE(opponent, MOVE_PSYCHIC); SEND_OUT(player, 1); }
|
|
} SCENE {
|
|
MESSAGE("The opposing Wobbuffet used Gastro Acid!");
|
|
MESSAGE("The opposing Wobbuffet used Psychic!");
|
|
HP_BAR(player);
|
|
NONE_OF {
|
|
ABILITY_POPUP(player, ABILITY_INNARDS_OUT);
|
|
HP_BAR(opponent);
|
|
}
|
|
}
|
|
}
|
|
|
|
// According to Showdown Innards Out triggers, but does nothing.
|
|
SINGLE_BATTLE_TEST("Innards Out does not damage Magic Guard Pokemon")
|
|
{
|
|
GIVEN {
|
|
PLAYER(SPECIES_PYUKUMUKU) { HP(1); Ability(ABILITY_INNARDS_OUT); }
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_CLEFABLE) { Ability(ABILITY_MAGIC_GUARD); }
|
|
ASSUME(!IsBattleMoveStatus(MOVE_PSYCHIC));
|
|
} WHEN {
|
|
TURN { MOVE(opponent, MOVE_PSYCHIC); SEND_OUT(player, 1); }
|
|
} SCENE {
|
|
MESSAGE("The opposing Clefable used Psychic!");
|
|
HP_BAR(player);
|
|
ABILITY_POPUP(player, ABILITY_INNARDS_OUT);
|
|
NOT HP_BAR(opponent);
|
|
}
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Innards Out uses correct damage amount for Future Sight")
|
|
{
|
|
GIVEN {
|
|
ASSUME(GetMoveEffect(MOVE_FUTURE_SIGHT) == EFFECT_FUTURE_SIGHT);
|
|
PLAYER(SPECIES_PYUKUMUKU) { HP(1); Ability(ABILITY_INNARDS_OUT); }
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_WYNAUT);
|
|
} WHEN {
|
|
TURN { MOVE(opponent, MOVE_FUTURE_SIGHT); }
|
|
TURN { }
|
|
TURN { SEND_OUT(player, 1); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, opponent);
|
|
MESSAGE("Pyukumuku took the Future Sight attack!");
|
|
HP_BAR(player);
|
|
ABILITY_POPUP(player, ABILITY_INNARDS_OUT);
|
|
HP_BAR(opponent, damage: 1);
|
|
}
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Innards Out doesn't trigger if Future Sight user is not on field")
|
|
{
|
|
GIVEN {
|
|
ASSUME(GetMoveEffect(MOVE_FUTURE_SIGHT) == EFFECT_FUTURE_SIGHT);
|
|
PLAYER(SPECIES_PYUKUMUKU) { HP(1); Ability(ABILITY_INNARDS_OUT); }
|
|
PLAYER(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_WYNAUT);
|
|
} WHEN {
|
|
TURN { MOVE(opponent, MOVE_FUTURE_SIGHT); }
|
|
TURN { SWITCH(opponent, 1); }
|
|
TURN { SEND_OUT(player, 1); } //SEND_OUT(opponent, 0); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, opponent);
|
|
MESSAGE("Pyukumuku took the Future Sight attack!");
|
|
HP_BAR(player);
|
|
NONE_OF {
|
|
ABILITY_POPUP(player, ABILITY_INNARDS_OUT);
|
|
HP_BAR(opponent);
|
|
}
|
|
}
|
|
}
|
|
|
|
SINGLE_BATTLE_TEST("Innards Out triggers if Future Sight user is back on the field")
|
|
{
|
|
GIVEN {
|
|
ASSUME(GetMoveEffect(MOVE_FUTURE_SIGHT) == EFFECT_FUTURE_SIGHT);
|
|
PLAYER(SPECIES_PYUKUMUKU) { HP(1); Ability(ABILITY_INNARDS_OUT); }
|
|
OPPONENT(SPECIES_WOBBUFFET);
|
|
OPPONENT(SPECIES_WYNAUT);
|
|
} WHEN {
|
|
TURN { MOVE(opponent, MOVE_FUTURE_SIGHT); }
|
|
TURN { SWITCH(opponent, 1); }
|
|
TURN { SWITCH(opponent, 0); }
|
|
} SCENE {
|
|
ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, opponent);
|
|
MESSAGE("Pyukumuku took the Future Sight attack!");
|
|
HP_BAR(player);
|
|
ABILITY_POPUP(player, ABILITY_INNARDS_OUT);
|
|
HP_BAR(opponent);
|
|
}
|
|
}
|