diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 77464b1751..732ce1c5de 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -5643,7 +5643,7 @@ static inline bool32 CanEjectButtonTrigger(u32 battlerAtk, u32 battlerDef, enum && battlerAtk != battlerDef && IsBattlerTurnDamaged(battlerDef) && IsBattlerAlive(battlerDef) - && CountUsablePartyMons(battlerDef) > 0 + && CanBattlerSwitch(battlerDef) && !(moveEffect == EFFECT_HIT_SWITCH_TARGET && CanBattlerSwitch(battlerAtk))) return TRUE; @@ -5655,7 +5655,7 @@ static inline bool32 CanEjectPackTrigger(u32 battlerAtk, u32 battlerDef, enum Ba if (gDisableStructs[battlerDef].tryEjectPack && GetBattlerHoldEffect(battlerDef) == HOLD_EFFECT_EJECT_PACK && IsBattlerAlive(battlerDef) - && CountUsablePartyMons(battlerDef) > 0 + && CanBattlerSwitch(battlerDef) && !gProtectStructs[battlerDef].disableEjectPack && !(moveEffect == EFFECT_HIT_SWITCH_TARGET && CanBattlerSwitch(battlerAtk)) && !(moveEffect == EFFECT_PARTING_SHOT && CanBattlerSwitch(battlerAtk))) diff --git a/src/battle_util.c b/src/battle_util.c index 8535da5493..9760173f68 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -10691,7 +10691,7 @@ bool32 TrySwitchInEjectPack(enum EjectPackTiming timing) if (gDisableStructs[i].tryEjectPack && GetBattlerHoldEffect(i) == HOLD_EFFECT_EJECT_PACK && IsBattlerAlive(i) - && CountUsablePartyMons(i) > 0) + && CanBattlerSwitch(i)) { ejectPackBattlers |= 1u << i; numEjectPackBattlers++;