Weather/Terrain AI touch-ups. (#7933)

This commit is contained in:
surskitty 2025-10-12 13:23:48 -04:00 committed by GitHub
parent eee546df06
commit a5f0686261
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 1 deletions

View File

@ -398,7 +398,7 @@ static enum FieldEffectOutcome BenefitsFromPsychicTerrain(u32 battler)
if (DoesAbilityBenefitFromFieldStatus(gAiLogicData->abilities[battler], STATUS_FIELD_PSYCHIC_TERRAIN))
return FIELD_EFFECT_POSITIVE;
if (HasMoveWithEffect(battler, EFFECT_EXPANDING_FORCE))
if (HasBattlerSideMoveWithEffect(battler, EFFECT_EXPANDING_FORCE))
return FIELD_EFFECT_POSITIVE;
bool32 grounded = AI_IsBattlerGrounded(battler);

View File

@ -2027,6 +2027,9 @@ bool32 ShouldRaiseAnyStat(u32 battlerAtk, u32 battlerDef)
bool32 ShouldSetWeather(u32 battler, u32 weather)
{
if (AI_GetWeather() & weather)
return FALSE;
return WeatherChecker(battler, weather, FIELD_EFFECT_POSITIVE);
}
@ -2037,6 +2040,15 @@ bool32 ShouldClearWeather(u32 battler, u32 weather)
bool32 ShouldSetFieldStatus(u32 battler, u32 fieldStatus)
{
if (gFieldStatuses & fieldStatus)
{
if (!(fieldStatus & STATUS_FIELD_TRICK_ROOM))
return FALSE;
// DOUBLE_TRICK_ROOM_ON_LAST_TURN_CHANCE
else if (gFieldTimers.trickRoomTimer != (gBattleTurnCounter + 1))
return FALSE;
}
return FieldStatusChecker(battler, fieldStatus, FIELD_EFFECT_POSITIVE);
}