Fixes AI not being aware during calcs

This commit is contained in:
AlexOn1ine 2024-07-17 22:13:09 +02:00
parent cfcac0b0f9
commit 19fff81160
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)
{