diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index a64c551e8..2b9aa3129 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -7154,7 +7154,7 @@ BattleScript_TargetsStatWasMaxedOut:: BattleScript_BattlerAbilityStatRaiseOnSwitchIn:: copybyte gBattlerAbility, gBattlerAttacker call BattleScript_AbilityPopUp - statbuffchange STAT_BUFF_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, NULL + statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_NOT_PROTECT_AFFECTED | MOVE_EFFECT_CERTAIN, NULL setgraphicalstatchangevalues playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1 waitanimation diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 047caa8cc..4a3fb47e2 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -12008,10 +12008,8 @@ static void Cmd_handleballthrow(void) else // not caught { if (!gHasFetchedBall) - { gLastUsedBall = gLastUsedItem; - gBattleResults.catchAttempts[gLastUsedBall]++; - } + if (IsCriticalCapture()) gBattleCommunication[MULTISTRING_CHOOSER] = shakes + 3; else diff --git a/src/battle_util.c b/src/battle_util.c index 427c8c0d2..c122288db 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -4131,7 +4131,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u16 ability, u8 special, u16 move break; case ABILITY_BALL_FETCH: if (gBattleMons[battler].item == ITEM_NONE - && gBattleResults.catchAttempts[gLastUsedBall] >= 1 + && gBattleResults.catchAttempts[gLastUsedBall - ITEM_ULTRA_BALL] >= 1 && !gHasFetchedBall) { gBattleScripting.battler = battler;