From 14a66d612f0e7e7cc6d13cc45d66d9a4babe410a Mon Sep 17 00:00:00 2001 From: ghoulslash Date: Mon, 12 May 2025 21:06:12 -0400 Subject: [PATCH] combine BattleScript_BerryStatRaiseRet and BattleScript_BerryStatRaiseEnd2, check ripen popup doesn't trigger except on berries --- data/battle_scripts_1.s | 19 +++++++------------ src/battle_util.c | 4 ++-- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 4d278a6179..1236b6587f 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -9008,21 +9008,15 @@ BattleScript_BerryConfuseHealRet_Anim: return BattleScript_BerryStatRaiseEnd2:: - jumpifability BS_ATTACKER, ABILITY_RIPEN, BattleScript_BerryStatRaiseEnd2_AbilityPopup - goto BattleScript_BerryStatRaiseEnd2_Anim -BattleScript_BerryStatRaiseEnd2_AbilityPopup: - call BattleScript_AbilityPopUp -BattleScript_BerryStatRaiseEnd2_Anim: - statbuffchange STAT_CHANGE_ALLOW_PTR | MOVE_EFFECT_AFFECTS_USER, BattleScript_BerryStatRaiseEnd2_End - setgraphicalstatchangevalues - playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1 - setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_ITEM - call BattleScript_StatUp - removeitem BS_ATTACKER -BattleScript_BerryStatRaiseEnd2_End:: + call BattleScript_BerryStatRaiseRet end2 BattleScript_BerryStatRaiseRet:: + @ to ensure `statbuffchange` has correct battler id, backup and use target + savetarget + copybyte gBattlerTarget, sBATTLER + jumpifnotberry BS_ATTACKER, BattleScript_BerryStatRaiseRet_Anim + @ check ripen popup if consuming berry jumpifability BS_SCRIPTING, ABILITY_RIPEN, BattleScript_BerryStatRaiseRet_AbilityPopup goto BattleScript_BerryStatRaiseRet_Anim BattleScript_BerryStatRaiseRet_AbilityPopup: @@ -9035,6 +9029,7 @@ BattleScript_BerryStatRaiseRet_Anim: call BattleScript_StatUp removeitem BS_SCRIPTING BattleScript_BerryStatRaiseRet_End: + restoretarget return BattleScript_BerryFocusEnergyRet:: diff --git a/src/battle_util.c b/src/battle_util.c index 3b6818b8dd..668c2db2a5 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -6972,7 +6972,7 @@ static enum ItemEffect StatRaiseBerry(u32 battler, u32 itemId, u32 statId, enum if (CompareStat(battler, statId, MAX_STAT_STAGE, CMP_LESS_THAN) && HasEnoughHpToEatBerry(battler, GetBattlerItemHoldEffectParam(battler, itemId), itemId)) { BufferStatChange(battler, statId, STRINGID_STATROSE); - gEffectBattler = battler; + gEffectBattler = gBattleScripting.battler = battler; if (GetBattlerAbility(battler) == ABILITY_RIPEN) SET_STATCHANGER(statId, 2, FALSE); else @@ -7010,7 +7010,7 @@ static enum ItemEffect RandomStatRaiseBerry(u32 battler, u32 itemId, enum ItemCa u16 battlerAbility = GetBattlerAbility(battler); u32 savedAttacker = gBattlerAttacker; // MoodyCantRaiseStat requires that the battler is set to gBattlerAttacker - gBattlerAttacker = battler; + gBattlerAttacker = gBattleScripting.battler = battler; stat = RandomUniformExcept(RNG_RANDOM_STAT_UP, STAT_ATK, NUM_STATS - 1, MoodyCantRaiseStat); gBattlerAttacker = savedAttacker;