sovereignx/test/battle/move_effect/stuff_cheeks.c
Pawkkie c279aa23c6
Belch AI Scoring Fix (#4616)
* Belch scoring fix and test

* Add assumptions for pocket

* Update test to AI_SINGLE_BATTLE_TEST

* Alex's fixes

* Missed reverting a line

* Mucked up spacing mb

* Mucked up the spacing fix mb MB
2024-05-26 22:23:04 +02:00

105 lines
3.4 KiB
C

#include "global.h"
#include "test/battle.h"
ASSUMPTIONS
{
ASSUME(gMovesInfo[MOVE_STUFF_CHEEKS].effect == EFFECT_STUFF_CHEEKS);
ASSUME(gItemsInfo[ITEM_LIECHI_BERRY].pocket == POCKET_BERRIES);
ASSUME(gItemsInfo[ITEM_LIECHI_BERRY].holdEffect == HOLD_EFFECT_ATTACK_UP);
}
SINGLE_BATTLE_TEST("Stuff Cheeks cannot be used if the user doesn't hold a berry")
{
u16 item = 0;
PARAMETRIZE { item = ITEM_NONE; }
PARAMETRIZE { item = ITEM_LIECHI_BERRY; }
GIVEN {
PLAYER(SPECIES_SKWOVET) { Item(item); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
if (item == ITEM_NONE)
TURN { MOVE(player, MOVE_STUFF_CHEEKS, allowed: FALSE); MOVE(player, MOVE_CELEBRATE); }
else
TURN { MOVE(player, MOVE_STUFF_CHEEKS); }
} SCENE {
if (item == ITEM_NONE)
ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player);
else
ANIMATION(ANIM_TYPE_MOVE, MOVE_STUFF_CHEEKS, player);
}
}
SINGLE_BATTLE_TEST("Stuff Cheeks forces Struggle if it's the only move is blocked")
{
GIVEN {
PLAYER(SPECIES_SKWOVET) { Moves(MOVE_STUFF_CHEEKS); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_STUFF_CHEEKS, allowed: FALSE); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_STRUGGLE, player);
}
}
SINGLE_BATTLE_TEST("Stuff Cheeks raises Defense by 2 stages after consuming the berry and gaining its effect")
{
GIVEN {
PLAYER(SPECIES_SKWOVET) { Item(ITEM_LIECHI_BERRY); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(player, MOVE_STUFF_CHEEKS); }
} SCENE {
MESSAGE("Skwovet used Stuff Cheeks!");
ANIMATION(ANIM_TYPE_MOVE, MOVE_STUFF_CHEEKS, player);
MESSAGE("Using Liechi Berry, the Attack of Skwovet rose!");
MESSAGE("Skwovet's Defense sharply rose!");
} THEN {
EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE + 2);
EXPECT_EQ(player->item, ITEM_NONE);
}
}
SINGLE_BATTLE_TEST("Stuff Cheeks can be used even if Unnerve is present")
{
GIVEN {
PLAYER(SPECIES_SKWOVET) { Item(ITEM_LIECHI_BERRY); }
OPPONENT(SPECIES_EKANS) { Ability(ABILITY_UNNERVE); }
} WHEN {
TURN { MOVE(player, MOVE_STUFF_CHEEKS); }
} SCENE {
MESSAGE("Skwovet used Stuff Cheeks!");
ANIMATION(ANIM_TYPE_MOVE, MOVE_STUFF_CHEEKS, player);
}
}
SINGLE_BATTLE_TEST("Stuff Cheeks can be used even if Magic Room is active")
{
GIVEN {
PLAYER(SPECIES_SKWOVET) { Item(ITEM_LIECHI_BERRY); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN {
MOVE(opponent, MOVE_MAGIC_ROOM);
MOVE(player, MOVE_STUFF_CHEEKS);
}
} SCENE {
MESSAGE("Skwovet used Stuff Cheeks!");
ANIMATION(ANIM_TYPE_MOVE, MOVE_STUFF_CHEEKS, player);
MESSAGE("Using Liechi Berry, the Attack of Skwovet rose!");
}
}
SINGLE_BATTLE_TEST("Stuff Cheeks fails if the user's berry is removed before they use the move")
{
GIVEN {
ASSUME(gMovesInfo[MOVE_KNOCK_OFF].effect == EFFECT_KNOCK_OFF);
PLAYER(SPECIES_SKWOVET) { Item(ITEM_LIECHI_BERRY); }
OPPONENT(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(opponent, MOVE_KNOCK_OFF); MOVE(player, MOVE_STUFF_CHEEKS); }
} SCENE {
ANIMATION(ANIM_TYPE_MOVE, MOVE_KNOCK_OFF, opponent);
MESSAGE("Skwovet used Stuff Cheeks!");
MESSAGE("But it failed!");
}
}