From 5d9f78bcb5f286f39f30e758405eb113084fe09a Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Thu, 11 Apr 2024 10:42:55 +0200 Subject: [PATCH] Fixes bug preventing Belch from usage after Stuff Cheeks (#4376) --- src/battle_script_commands.c | 1 + test/battle/move_effect/stuff_cheeks.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index b61508fd95..d91f1d35d2 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -10391,6 +10391,7 @@ static void Cmd_various(void) if (cmd->fromBattler) gLastUsedItem = gBattleMons[battler].item; + gBattleStruct->ateBerry[battler & BIT_SIDE] |= gBitTable[gBattlerPartyIndexes[battler]]; gBattleScripting.battler = gEffectBattler = gBattlerTarget = battler; // Cover all berry effect battler cases. e.g. ChangeStatBuffs uses target ID if (ItemBattleEffects(ITEMEFFECT_USE_LAST_ITEM, battler, FALSE)) return; diff --git a/test/battle/move_effect/stuff_cheeks.c b/test/battle/move_effect/stuff_cheeks.c index c9a8b325e2..a7a4ab1d34 100644 --- a/test/battle/move_effect/stuff_cheeks.c +++ b/test/battle/move_effect/stuff_cheeks.c @@ -104,3 +104,28 @@ SINGLE_BATTLE_TEST("Stuff Cheeks fails if the user's berry is removed before the } } +SINGLE_BATTLE_TEST("Belch cannot be used if the user has not eaten a berry") +{ + u16 item = 0; + PARAMETRIZE { item = ITEM_NONE; } + PARAMETRIZE { item = ITEM_ORAN_BERRY; } + GIVEN { + PLAYER(SPECIES_SKWOVET) { Item(item); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + if (item == ITEM_NONE) + TURN { MOVE(player, MOVE_BELCH, allowed: FALSE); MOVE(player, MOVE_CELEBRATE); } + else { + TURN { MOVE(player, MOVE_STUFF_CHEEKS); } + TURN { MOVE(player, MOVE_BELCH); } + } + } SCENE { + if (item == ITEM_NONE) { + ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player); + } + else { + ANIMATION(ANIM_TYPE_MOVE, MOVE_STUFF_CHEEKS, player); + ANIMATION(ANIM_TYPE_MOVE, MOVE_BELCH, player); + } + } +}