From ca101e99523cba40357d6ca6574ece809220e319 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 15 Oct 2023 09:42:56 -0300 Subject: [PATCH] Updated AI to use non-dynamax HP (Leech Seed, Nightmare, Trap Damage, Hail, Sandstorm --- include/battle_dynamax.h | 2 +- src/battle_ai_util.c | 14 +++++++------- src/battle_dynamax.c | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/battle_dynamax.h b/include/battle_dynamax.h index ff395f3f87..fe619e2953 100644 --- a/include/battle_dynamax.h +++ b/include/battle_dynamax.h @@ -62,7 +62,7 @@ bool32 IsGigantamaxed(u16 battlerId); void ApplyDynamaxHPMultiplier(u32 battler, struct Pokemon* mon); void PrepareBattlerForDynamax(u16 battlerId); u16 GetNonDynamaxHP(u16 battlerId); -u16 GetNonDynamaxMaxHP(u16 battlerId); +u16 GetNonDynamaxMaxHP(u32 battlerId); void UndoDynamax(u16 battlerId); bool32 IsMoveBlockedByMaxGuard(u16 move); bool32 IsMoveBlockedByDynamax(u16 move); diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index 64936e0b98..8f74dcd362 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -2397,7 +2397,7 @@ static u32 GetLeechSeedDamage(u32 battlerId) if ((gStatuses3[battlerId] & STATUS3_LEECHSEED) && gBattleMons[gStatuses3[battlerId] & STATUS3_LEECHSEED_BATTLER].hp != 0) { - damage = gBattleMons[battlerId].maxHP / 8; + damage = GetNonDynamaxMaxHP(battlerId) / 8; if (damage == 0) damage = 1; } @@ -2409,7 +2409,7 @@ static u32 GetNightmareDamage(u32 battlerId) u32 damage = 0; if ((gBattleMons[battlerId].status2 & STATUS2_NIGHTMARE) && gBattleMons[battlerId].status1 & STATUS1_SLEEP) { - damage = gBattleMons[battlerId].maxHP / 4; + damage = GetNonDynamaxMaxHP(battlerId) / 4; if (damage == 0) damage = 1; } @@ -2421,7 +2421,7 @@ static u32 GetCurseDamage(u32 battlerId) u32 damage = 0; if (gBattleMons[battlerId].status2 & STATUS2_CURSED) { - damage = gBattleMons[battlerId].maxHP / 4; + damage = GetNonDynamaxMaxHP(battlerId) / 4; if (damage == 0) damage = 1; } @@ -2436,9 +2436,9 @@ static u32 GetTrapDamage(u32 battlerId) if (gBattleMons[battlerId].status2 & STATUS2_WRAPPED) { if (holdEffect == HOLD_EFFECT_BINDING_BAND) - damage = gBattleMons[battlerId].maxHP / (B_BINDING_DAMAGE >= GEN_6 ? 6 : 8); + damage = GetNonDynamaxMaxHP(battlerId) / (B_BINDING_DAMAGE >= GEN_6 ? 6 : 8); else - damage = gBattleMons[battlerId].maxHP / (B_BINDING_DAMAGE >= GEN_6 ? 8 : 16); + damage = GetNonDynamaxMaxHP(battlerId) / (B_BINDING_DAMAGE >= GEN_6 ? 8 : 16); if (damage == 0) damage = 1; @@ -2509,7 +2509,7 @@ static u32 GetWeatherDamage(u32 battlerId) && !(gStatuses3[battlerId] & (STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) && holdEffect != HOLD_EFFECT_SAFETY_GOGGLES) { - damage = gBattleMons[battlerId].maxHP / 16; + damage = GetNonDynamaxMaxHP(battlerId) / 16; if (damage == 0) damage = 1; } @@ -2520,7 +2520,7 @@ static u32 GetWeatherDamage(u32 battlerId) && !(gStatuses3[battlerId] & (STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) && holdEffect != HOLD_EFFECT_SAFETY_GOGGLES) { - damage = gBattleMons[battlerId].maxHP / 16; + damage = GetNonDynamaxMaxHP(battlerId) / 16; if (damage == 0) damage = 1; } diff --git a/src/battle_dynamax.c b/src/battle_dynamax.c index 73d7bedc1d..942605b2c2 100644 --- a/src/battle_dynamax.c +++ b/src/battle_dynamax.c @@ -184,7 +184,7 @@ u16 GetNonDynamaxHP(u16 battlerId) } // Returns the non-Dynamax Max HP of a Pokemon. -u16 GetNonDynamaxMaxHP(u16 battlerId) +u16 GetNonDynamaxMaxHP(u32 battlerId) { if (!IsDynamaxed(battlerId) || gBattleMons[battlerId].species == SPECIES_SHEDINJA) return gBattleMons[battlerId].maxHP;