pokeemerald/test/item_effect_cure_status.c

340 lines
11 KiB
C
Raw Normal View History

2023-04-21 00:29:58 +02:00
#include "global.h"
#include "test_battle.h"
SINGLE_BATTLE_TEST("Paralyze Heal heals a battler from being paralyzed")
2023-04-21 00:29:58 +02:00
{
GIVEN {
ASSUME(gItems[ITEM_PARALYZE_HEAL].battleUsage == EFFECT_ITEM_CURE_STATUS);
PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_PARALYSIS); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { USE_ITEM(player, ITEM_PARALYZE_HEAL, partyIndex: 0); }
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-21 00:29:58 +02:00
}
}
SINGLE_BATTLE_TEST("Antidote heals a battler from being poisoned")
2023-04-21 00:29:58 +02:00
{
GIVEN {
ASSUME(gItems[ITEM_ANTIDOTE].battleUsage == EFFECT_ITEM_CURE_STATUS);
2023-04-21 10:25:58 +02:00
PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_POISON); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { USE_ITEM(player, ITEM_ANTIDOTE, partyIndex: 0); }
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-21 10:25:58 +02:00
}
}
SINGLE_BATTLE_TEST("Antidote heals a battler from being badly poisoned")
2023-04-21 10:25:58 +02:00
{
GIVEN {
ASSUME(gItems[ITEM_ANTIDOTE].battleUsage == EFFECT_ITEM_CURE_STATUS);
PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_TOXIC_POISON); }
2023-04-21 00:29:58 +02:00
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { USE_ITEM(player, ITEM_ANTIDOTE, partyIndex: 0); }
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-21 00:29:58 +02:00
}
}
SINGLE_BATTLE_TEST("Awakening heals a battler from being asleep")
2023-04-21 00:29:58 +02:00
{
GIVEN {
ASSUME(gItems[ITEM_AWAKENING].battleUsage == EFFECT_ITEM_CURE_STATUS);
PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { USE_ITEM(player, ITEM_AWAKENING, partyIndex: 0); }
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-21 00:29:58 +02:00
}
}
SINGLE_BATTLE_TEST("Burn Heal heals a battler from being burned")
2023-04-21 00:29:58 +02:00
{
GIVEN {
ASSUME(gItems[ITEM_BURN_HEAL].battleUsage == EFFECT_ITEM_CURE_STATUS);
PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_BURN); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { USE_ITEM(player, ITEM_BURN_HEAL, partyIndex: 0); }
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-21 00:29:58 +02:00
}
}
SINGLE_BATTLE_TEST("Ice Heal heals a battler from being paralyzed")
2023-04-21 00:29:58 +02:00
{
GIVEN {
ASSUME(gItems[ITEM_ICE_HEAL].battleUsage == EFFECT_ITEM_CURE_STATUS);
PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_FREEZE); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { USE_ITEM(player, ITEM_ICE_HEAL, partyIndex: 0); }
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-21 00:29:58 +02:00
}
}
SINGLE_BATTLE_TEST("Full Heal heals a battler from any primary status")
2023-04-21 00:29:58 +02:00
{
u16 status;
PARAMETRIZE{ status = STATUS1_BURN; }
PARAMETRIZE{ status = STATUS1_FREEZE; }
PARAMETRIZE{ status = STATUS1_PARALYSIS; }
PARAMETRIZE{ status = STATUS1_POISON; }
PARAMETRIZE{ status = STATUS1_TOXIC_POISON; }
PARAMETRIZE{ status = STATUS1_SLEEP; }
GIVEN {
ASSUME(gItems[ITEM_FULL_HEAL].battleUsage == EFFECT_ITEM_CURE_STATUS);
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { USE_ITEM(player, ITEM_FULL_HEAL, partyIndex: 0); }
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-21 00:29:58 +02:00
}
}
SINGLE_BATTLE_TEST("Heal Powder heals a battler from any primary status")
2023-04-24 22:36:58 +02:00
{
u16 status;
PARAMETRIZE{ status = STATUS1_BURN; }
PARAMETRIZE{ status = STATUS1_FREEZE; }
PARAMETRIZE{ status = STATUS1_PARALYSIS; }
PARAMETRIZE{ status = STATUS1_POISON; }
PARAMETRIZE{ status = STATUS1_TOXIC_POISON; }
PARAMETRIZE{ status = STATUS1_SLEEP; }
GIVEN {
ASSUME(gItems[ITEM_HEAL_POWDER].battleUsage == EFFECT_ITEM_CURE_STATUS);
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { USE_ITEM(player, ITEM_HEAL_POWDER, partyIndex: 0); }
} SCENE {
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-24 22:36:58 +02:00
}
}
SINGLE_BATTLE_TEST("Pewter Crunchies heals a battler from any primary status")
2023-04-21 10:25:58 +02:00
{
u16 status;
PARAMETRIZE{ status = STATUS1_BURN; }
PARAMETRIZE{ status = STATUS1_FREEZE; }
PARAMETRIZE{ status = STATUS1_PARALYSIS; }
PARAMETRIZE{ status = STATUS1_POISON; }
PARAMETRIZE{ status = STATUS1_TOXIC_POISON; }
PARAMETRIZE{ status = STATUS1_SLEEP; }
GIVEN {
ASSUME(gItems[ITEM_PEWTER_CRUNCHIES].battleUsage == EFFECT_ITEM_CURE_STATUS);
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { USE_ITEM(player, ITEM_PEWTER_CRUNCHIES, partyIndex: 0); }
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-21 10:25:58 +02:00
}
}
SINGLE_BATTLE_TEST("Lava Cookies heals a battler from any primary status")
2023-04-21 00:29:58 +02:00
{
2023-04-21 10:25:58 +02:00
u16 status;
PARAMETRIZE{ status = STATUS1_BURN; }
PARAMETRIZE{ status = STATUS1_FREEZE; }
PARAMETRIZE{ status = STATUS1_PARALYSIS; }
PARAMETRIZE{ status = STATUS1_POISON; }
PARAMETRIZE{ status = STATUS1_TOXIC_POISON; }
PARAMETRIZE{ status = STATUS1_SLEEP; }
2023-04-21 00:29:58 +02:00
GIVEN {
2023-04-21 10:25:58 +02:00
ASSUME(gItems[ITEM_LAVA_COOKIE].battleUsage == EFFECT_ITEM_CURE_STATUS);
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { USE_ITEM(player, ITEM_LAVA_COOKIE, partyIndex: 0); }
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-21 10:25:58 +02:00
}
}
SINGLE_BATTLE_TEST("Rage Candy Bar heals a battler from any primary status")
2023-04-21 10:25:58 +02:00
{
u16 status;
PARAMETRIZE{ status = STATUS1_BURN; }
PARAMETRIZE{ status = STATUS1_FREEZE; }
PARAMETRIZE{ status = STATUS1_PARALYSIS; }
PARAMETRIZE{ status = STATUS1_POISON; }
PARAMETRIZE{ status = STATUS1_TOXIC_POISON; }
PARAMETRIZE{ status = STATUS1_SLEEP; }
GIVEN {
ASSUME(gItems[ITEM_RAGE_CANDY_BAR].battleUsage == EFFECT_ITEM_CURE_STATUS);
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { USE_ITEM(player, ITEM_RAGE_CANDY_BAR, partyIndex: 0); }
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-21 10:25:58 +02:00
}
}
SINGLE_BATTLE_TEST("Old Gateu heals a battler from any primary status")
2023-04-21 10:25:58 +02:00
{
u16 status;
PARAMETRIZE{ status = STATUS1_BURN; }
PARAMETRIZE{ status = STATUS1_FREEZE; }
PARAMETRIZE{ status = STATUS1_PARALYSIS; }
PARAMETRIZE{ status = STATUS1_POISON; }
PARAMETRIZE{ status = STATUS1_TOXIC_POISON; }
PARAMETRIZE{ status = STATUS1_SLEEP; }
GIVEN {
ASSUME(gItems[ITEM_OLD_GATEAU].battleUsage == EFFECT_ITEM_CURE_STATUS);
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { USE_ITEM(player, ITEM_OLD_GATEAU, partyIndex: 0); }
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-21 10:25:58 +02:00
}
}
SINGLE_BATTLE_TEST("Casteliacone heals a battler from any primary status")
2023-04-21 10:25:58 +02:00
{
u16 status;
PARAMETRIZE{ status = STATUS1_BURN; }
PARAMETRIZE{ status = STATUS1_FREEZE; }
PARAMETRIZE{ status = STATUS1_PARALYSIS; }
PARAMETRIZE{ status = STATUS1_POISON; }
PARAMETRIZE{ status = STATUS1_TOXIC_POISON; }
PARAMETRIZE{ status = STATUS1_SLEEP; }
GIVEN {
ASSUME(gItems[ITEM_CASTELIACONE].battleUsage == EFFECT_ITEM_CURE_STATUS);
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { USE_ITEM(player, ITEM_CASTELIACONE, partyIndex: 0); }
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-21 10:25:58 +02:00
}
}
SINGLE_BATTLE_TEST("Lumiose Galette heals a battler from any primary status")
2023-04-21 10:25:58 +02:00
{
u16 status;
PARAMETRIZE{ status = STATUS1_BURN; }
PARAMETRIZE{ status = STATUS1_FREEZE; }
PARAMETRIZE{ status = STATUS1_PARALYSIS; }
PARAMETRIZE{ status = STATUS1_POISON; }
PARAMETRIZE{ status = STATUS1_TOXIC_POISON; }
PARAMETRIZE{ status = STATUS1_SLEEP; }
GIVEN {
ASSUME(gItems[ITEM_LUMIOSE_GALETTE].battleUsage == EFFECT_ITEM_CURE_STATUS);
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { USE_ITEM(player, ITEM_LUMIOSE_GALETTE, partyIndex: 0); }
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");;
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-21 10:25:58 +02:00
}
}
SINGLE_BATTLE_TEST("Shalour Sable heals a battler from any primary status")
2023-04-21 10:25:58 +02:00
{
u16 status;
PARAMETRIZE{ status = STATUS1_BURN; }
PARAMETRIZE{ status = STATUS1_FREEZE; }
PARAMETRIZE{ status = STATUS1_PARALYSIS; }
PARAMETRIZE{ status = STATUS1_POISON; }
PARAMETRIZE{ status = STATUS1_TOXIC_POISON; }
PARAMETRIZE{ status = STATUS1_SLEEP; }
GIVEN {
ASSUME(gItems[ITEM_SHALOUR_SABLE].battleUsage == EFFECT_ITEM_CURE_STATUS);
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { USE_ITEM(player, ITEM_SHALOUR_SABLE, partyIndex: 0); }
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-21 10:25:58 +02:00
}
}
SINGLE_BATTLE_TEST("Big Malasada heals a battler from any primary status")
2023-04-21 10:25:58 +02:00
{
u16 status;
PARAMETRIZE{ status = STATUS1_BURN; }
PARAMETRIZE{ status = STATUS1_FREEZE; }
PARAMETRIZE{ status = STATUS1_PARALYSIS; }
PARAMETRIZE{ status = STATUS1_POISON; }
PARAMETRIZE{ status = STATUS1_TOXIC_POISON; }
PARAMETRIZE{ status = STATUS1_SLEEP; }
GIVEN {
ASSUME(gItems[ITEM_BIG_MALASADA].battleUsage == EFFECT_ITEM_CURE_STATUS);
PLAYER(SPECIES_WOBBUFFET) { Status1(status); }
OPPONENT(SPECIES_WYNAUT);
} WHEN {
TURN { USE_ITEM(player, ITEM_BIG_MALASADA, partyIndex: 0); }
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status1, STATUS1_NONE);
2023-04-21 10:25:58 +02:00
}
}
SINGLE_BATTLE_TEST("Full Heal, Heal Powder and Local Specialties heal a battler from being confused")
2023-04-21 10:25:58 +02:00
{
u16 item;
PARAMETRIZE { item = ITEM_FULL_HEAL; }
2023-04-24 22:36:58 +02:00
PARAMETRIZE { item = ITEM_HEAL_POWDER; }
2023-04-21 10:25:58 +02:00
PARAMETRIZE { item = ITEM_PEWTER_CRUNCHIES; }
PARAMETRIZE { item = ITEM_LAVA_COOKIE; }
PARAMETRIZE { item = ITEM_RAGE_CANDY_BAR; }
PARAMETRIZE { item = ITEM_OLD_GATEAU; }
PARAMETRIZE { item = ITEM_CASTELIACONE; }
PARAMETRIZE { item = ITEM_LUMIOSE_GALETTE; }
PARAMETRIZE { item = ITEM_SHALOUR_SABLE; }
PARAMETRIZE { item = ITEM_BIG_MALASADA; }
GIVEN {
ASSUME(gItems[item].battleUsage == EFFECT_ITEM_CURE_STATUS);
2023-04-21 00:29:58 +02:00
PLAYER(SPECIES_WOBBUFFET);
OPPONENT(SPECIES_GENGAR);
} WHEN {
TURN { MOVE(opponent, MOVE_CONFUSE_RAY); }
2023-04-21 10:25:58 +02:00
TURN { USE_ITEM(player, item, partyIndex: 0); }
2023-04-21 00:29:58 +02:00
} SCENE {
2023-04-24 22:26:56 +02:00
MESSAGE("Wobbuffet had its status healed!");
2023-04-25 23:06:07 +02:00
} THEN {
2023-04-25 13:44:16 +02:00
EXPECT_EQ(player->status2, STATUS1_NONE); // because we dont have STATUS2_NONE
2023-04-21 00:29:58 +02:00
}
}