Clean up - Add ability args instead of calcing the ability again (#6186)
This commit is contained in:
parent
a642759798
commit
b90b1e2546
@ -42,9 +42,9 @@ bool32 CanPoisonType(u8 battlerAttacker, u8 battlerTarget);
|
||||
bool32 CanParalyzeType(u8 battlerAttacker, u8 battlerTarget);
|
||||
bool32 CanUseLastResort(u8 battlerId);
|
||||
u32 IsFlowerVeilProtected(u32 battler);
|
||||
u32 IsLeafGuardProtected(u32 battler);
|
||||
bool32 IsShieldsDownProtected(u32 battler);
|
||||
u32 IsAbilityStatusProtected(u32 battler);
|
||||
u32 IsLeafGuardProtected(u32 battler, u32 ability);
|
||||
bool32 IsShieldsDownProtected(u32 battler, u32 ability);
|
||||
u32 IsAbilityStatusProtected(u32 battler, u32 ability);
|
||||
bool32 TryResetBattlerStatChanges(u8 battler);
|
||||
bool32 CanCamouflage(u8 battlerId);
|
||||
u32 GetNaturePowerMove(u32 battler);
|
||||
|
||||
@ -983,7 +983,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score)
|
||||
RETURN_SCORE_MINUS(10);
|
||||
break;
|
||||
case ABILITY_SHIELDS_DOWN:
|
||||
if (IsShieldsDownProtected(battlerAtk) && IsNonVolatileStatusMoveEffect(moveEffect))
|
||||
if (IsShieldsDownProtected(battlerAtk, aiData->abilities[battlerAtk]) && IsNonVolatileStatusMoveEffect(moveEffect))
|
||||
RETURN_SCORE_MINUS(10);
|
||||
break;
|
||||
case ABILITY_LEAF_GUARD:
|
||||
|
||||
@ -1312,9 +1312,9 @@ static u32 GetSwitchinHazardsDamage(u32 battler, struct BattlePokemon *battleMon
|
||||
&& ability != ABILITY_IMMUNITY && ability != ABILITY_POISON_HEAL && ability != ABILITY_COMATOSE
|
||||
&& status == 0
|
||||
&& !(hazardFlags & SIDE_STATUS_SAFEGUARD)
|
||||
&& !(IsAbilityOnSide(battler, ABILITY_PASTEL_VEIL))
|
||||
&& !(IsBattlerTerrainAffected(battler, STATUS_FIELD_MISTY_TERRAIN))
|
||||
&& !(IsAbilityStatusProtected(battler))
|
||||
&& !IsAbilityOnSide(battler, ABILITY_PASTEL_VEIL)
|
||||
&& !IsBattlerTerrainAffected(battler, STATUS_FIELD_MISTY_TERRAIN)
|
||||
&& !IsAbilityStatusProtected(battler, ability)
|
||||
&& heldItemEffect != HOLD_EFFECT_CURE_PSN && heldItemEffect != HOLD_EFFECT_CURE_STATUS
|
||||
&& IsMonGrounded(heldItemEffect, ability, defType1, defType2)))
|
||||
{
|
||||
|
||||
@ -3031,7 +3031,7 @@ bool32 AI_CanGetFrostbite(u32 battler, u32 ability)
|
||||
|| ability == ABILITY_COMATOSE
|
||||
|| IS_BATTLER_OF_TYPE(battler, TYPE_ICE)
|
||||
|| gBattleMons[battler].status1 & STATUS1_ANY
|
||||
|| IsAbilityStatusProtected(battler)
|
||||
|| IsAbilityStatusProtected(battler, ability)
|
||||
|| gSideStatuses[GetBattlerSide(battler)] & SIDE_STATUS_SAFEGUARD)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
|
||||
@ -9320,25 +9320,25 @@ u32 IsFlowerVeilProtected(u32 battler)
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 IsLeafGuardProtected(u32 battler)
|
||||
u32 IsLeafGuardProtected(u32 battler, u32 ability)
|
||||
{
|
||||
if (IsBattlerWeatherAffected(battler, B_WEATHER_SUN))
|
||||
return GetBattlerAbility(battler) == ABILITY_LEAF_GUARD;
|
||||
return ability == ABILITY_LEAF_GUARD;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool32 IsShieldsDownProtected(u32 battler)
|
||||
bool32 IsShieldsDownProtected(u32 battler, u32 ability)
|
||||
{
|
||||
return (GetBattlerAbility(battler) == ABILITY_SHIELDS_DOWN
|
||||
return (ability == ABILITY_SHIELDS_DOWN
|
||||
&& GetFormIdFromFormSpeciesId(gBattleMons[battler].species) < GetFormIdFromFormSpeciesId(SPECIES_MINIOR_CORE_RED)); // Minior is not in core form
|
||||
}
|
||||
|
||||
u32 IsAbilityStatusProtected(u32 battler)
|
||||
u32 IsAbilityStatusProtected(u32 battler, u32 ability)
|
||||
{
|
||||
return IsFlowerVeilProtected(battler)
|
||||
|| IsLeafGuardProtected(battler)
|
||||
|| IsShieldsDownProtected(battler);
|
||||
return IsLeafGuardProtected(battler, ability)
|
||||
|| IsShieldsDownProtected(battler, ability)
|
||||
|| IsFlowerVeilProtected(battler);
|
||||
}
|
||||
|
||||
u32 GetHighestStatId(u32 battler)
|
||||
@ -9612,7 +9612,7 @@ static void Cmd_various(void)
|
||||
case VARIOUS_JUMP_IF_SHIELDS_DOWN_PROTECTED:
|
||||
{
|
||||
VARIOUS_ARGS(const u8 *jumpInstr);
|
||||
if (IsShieldsDownProtected(battler))
|
||||
if (IsShieldsDownProtected(battler, GetBattlerAbility(battler)))
|
||||
{
|
||||
gBattlerAbility = battler;
|
||||
gBattlescriptCurrInstr = cmd->jumpInstr;
|
||||
@ -11169,7 +11169,7 @@ static void Cmd_various(void)
|
||||
case VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED:
|
||||
{
|
||||
VARIOUS_ARGS(const u8 *jumpInstr);
|
||||
if (IsLeafGuardProtected(battler))
|
||||
if (IsLeafGuardProtected(battler, GetBattlerAbility(battler)))
|
||||
{
|
||||
gBattlerAbility = battler;
|
||||
gBattlescriptCurrInstr = cmd->jumpInstr;
|
||||
|
||||
@ -2687,7 +2687,7 @@ u8 DoBattlerEndTurnEffects(void)
|
||||
if (!(gStatuses3[battler] & STATUS3_YAWN) && !(gBattleMons[battler].status1 & STATUS1_ANY)
|
||||
&& battlerAbility != ABILITY_VITAL_SPIRIT
|
||||
&& battlerAbility != ABILITY_INSOMNIA && !UproarWakeUpCheck(battler)
|
||||
&& !IsLeafGuardProtected(battler))
|
||||
&& !IsLeafGuardProtected(battler, battlerAbility))
|
||||
{
|
||||
CancelMultiTurnMoves(battler);
|
||||
gEffectBattler = gBattlerTarget = battler;
|
||||
@ -6810,7 +6810,7 @@ bool32 CanBeSlept(u32 battler, u32 ability, enum SleepClauseBlock isBlockedBySle
|
||||
|| gSideStatuses[GetBattlerSide(battler)] & SIDE_STATUS_SAFEGUARD
|
||||
|| gBattleMons[battler].status1 & STATUS1_ANY
|
||||
|| IsAbilityOnSide(battler, ABILITY_SWEET_VEIL)
|
||||
|| IsAbilityStatusProtected(battler)
|
||||
|| IsAbilityStatusProtected(battler, ability)
|
||||
|| IsBattlerTerrainAffected(battler, STATUS_FIELD_ELECTRIC_TERRAIN | STATUS_FIELD_MISTY_TERRAIN))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
@ -6825,7 +6825,7 @@ bool32 CanBePoisoned(u32 battlerAtk, u32 battlerDef, u32 defAbility)
|
||||
|| defAbility == ABILITY_COMATOSE
|
||||
|| defAbility == ABILITY_PURIFYING_SALT
|
||||
|| IsAbilityOnSide(battlerDef, ABILITY_PASTEL_VEIL)
|
||||
|| IsAbilityStatusProtected(battlerDef)
|
||||
|| IsAbilityStatusProtected(battlerDef, defAbility)
|
||||
|| IsBattlerTerrainAffected(battlerDef, STATUS_FIELD_MISTY_TERRAIN))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
@ -6841,7 +6841,7 @@ bool32 CanBeBurned(u32 battler, u32 ability)
|
||||
|| ability == ABILITY_COMATOSE
|
||||
|| ability == ABILITY_THERMAL_EXCHANGE
|
||||
|| ability == ABILITY_PURIFYING_SALT
|
||||
|| IsAbilityStatusProtected(battler)
|
||||
|| IsAbilityStatusProtected(battler, ability)
|
||||
|| IsBattlerTerrainAffected(battler, STATUS_FIELD_MISTY_TERRAIN))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
@ -6855,7 +6855,7 @@ bool32 CanBeParalyzed(u32 battler, u32 ability)
|
||||
|| ability == ABILITY_COMATOSE
|
||||
|| ability == ABILITY_PURIFYING_SALT
|
||||
|| gBattleMons[battler].status1 & STATUS1_ANY
|
||||
|| IsAbilityStatusProtected(battler)
|
||||
|| IsAbilityStatusProtected(battler, ability)
|
||||
|| IsBattlerTerrainAffected(battler, STATUS_FIELD_MISTY_TERRAIN))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
@ -6871,7 +6871,7 @@ bool32 CanBeFrozen(u32 battler)
|
||||
|| ability == ABILITY_COMATOSE
|
||||
|| ability == ABILITY_PURIFYING_SALT
|
||||
|| gBattleMons[battler].status1 & STATUS1_ANY
|
||||
|| IsAbilityStatusProtected(battler)
|
||||
|| IsAbilityStatusProtected(battler, ability)
|
||||
|| IsBattlerTerrainAffected(battler, STATUS_FIELD_MISTY_TERRAIN))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
@ -6886,7 +6886,7 @@ bool32 CanGetFrostbite(u32 battler)
|
||||
|| ability == ABILITY_COMATOSE
|
||||
|| ability == ABILITY_PURIFYING_SALT
|
||||
|| gBattleMons[battler].status1 & STATUS1_ANY
|
||||
|| IsAbilityStatusProtected(battler)
|
||||
|| IsAbilityStatusProtected(battler, ability)
|
||||
|| IsBattlerTerrainAffected(battler, STATUS_FIELD_MISTY_TERRAIN))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user