Fixes AI not being aware during calcs (#4992)

This commit is contained in:
ghoulslash 2024-07-22 08:20:16 -04:00 committed by GitHub
commit 67551dba04
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 3 deletions

View File

@ -461,12 +461,20 @@ void SetAiLogicDataForTurn(struct AiLogicData *aiData)
aiData->weatherHasEffect = WEATHER_HAS_EFFECT;
// get/assume all battler data and simulate AI damage
battlersCount = gBattlersCount;
for (battlerAtk = 0; battlerAtk < battlersCount; battlerAtk++)
{
if (!IsBattlerAlive(battlerAtk))
continue;
SetBattlerAiData(battlerAtk, aiData);
}
for (battlerAtk = 0; battlerAtk < battlersCount; battlerAtk++)
{
if (!IsBattlerAlive(battlerAtk))
continue;
SetBattlerAiMovesData(aiData, battlerAtk, battlersCount);
}
}

View File

@ -378,10 +378,8 @@ bool32 IsDamageMoveUnusable(u32 move, u32 battlerAtk, u32 battlerDef)
else
battlerDefAbility = aiData->abilities[battlerDef];
// Battler doesn't see partners Ability for some reason.
// This is a small hack to avoid the issue but should be investigated
if (battlerDef == BATTLE_PARTNER(battlerAtk))
battlerDefAbility = GetBattlerAbility(battlerDef);
battlerDefAbility = aiData->abilities[battlerDef];
switch (battlerDefAbility)
{