combine BattleScript_BerryStatRaiseRet and BattleScript_BerryStatRaiseEnd2, check ripen popup doesn't trigger except on berries

This commit is contained in:
ghoulslash 2025-05-12 21:06:12 -04:00
parent be03feca94
commit 14a66d612f
2 changed files with 9 additions and 14 deletions

View File

@ -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::

View File

@ -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;