Refactor HasWeatherEffect and IsUnnerveAbilityOnOpposingSide (#6441)

This commit is contained in:
Alex 2025-03-19 13:56:58 +01:00 committed by GitHub
parent 411a236ce7
commit 21f1b3bf9d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -11420,10 +11420,24 @@ static bool32 TryRemoveScreens(u32 battler)
static bool32 IsUnnerveAbilityOnOpposingSide(u32 battler)
{
if (IsAbilityOnOpposingSide(battler, ABILITY_UNNERVE)
|| IsAbilityOnOpposingSide(battler, ABILITY_AS_ONE_ICE_RIDER)
|| IsAbilityOnOpposingSide(battler, ABILITY_AS_ONE_SHADOW_RIDER))
return TRUE;
for (u32 battlerDef = 0; battlerDef < gBattlersCount; battlerDef++)
{
if (battler == battlerDef || IsBattlerAlly(battler, battlerDef))
continue;
if (!IsBattlerAlive(battlerDef))
continue;
u32 ability = GetBattlerAbility(battlerDef);
switch (ability)
{
case ABILITY_UNNERVE:
case ABILITY_AS_ONE_ICE_RIDER:
case ABILITY_AS_ONE_SHADOW_RIDER:
return TRUE;
}
}
return FALSE;
}
@ -12304,7 +12318,19 @@ void ClearPursuitValuesIfSet(u32 battler)
bool32 HasWeatherEffect(void)
{
if (IsAbilityOnField(ABILITY_CLOUD_NINE) || IsAbilityOnField(ABILITY_AIR_LOCK))
return FALSE;
for (u32 battler = 0; battler < gBattlersCount; battler++)
{
if (!IsBattlerAlive(battler))
continue;
u32 ability = GetBattlerAbility(battler);
switch (ability)
{
case ABILITY_CLOUD_NINE:
case ABILITY_AIR_LOCK:
return FALSE;
}
}
return TRUE;
}