From ee2fd8428a02a0e412c81394cc06851419c9cd41 Mon Sep 17 00:00:00 2001 From: Kurt Date: Tue, 26 May 2026 00:33:34 -0500 Subject: [PATCH] WA9: check all IVs if all specified Closes #4812 --- PKHeX.Core/MysteryGifts/WA9.cs | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/PKHeX.Core/MysteryGifts/WA9.cs b/PKHeX.Core/MysteryGifts/WA9.cs index f4181a75e..25625d19a 100644 --- a/PKHeX.Core/MysteryGifts/WA9.cs +++ b/PKHeX.Core/MysteryGifts/WA9.cs @@ -684,15 +684,33 @@ public override bool IsMatchExact(PKM pk, EvoCriteria evo) if (pk is IAlphaReadOnly a && a.IsAlpha != IsAlpha) return true; - if (IsHOMEGift && FlawlessIVCount > 0) + if (IsHOMEGift) { - if (pk.FlawlessIVCount != FlawlessIVCount) - return false; // HOME ZA-starters have non-perfect IVs to 20, so IVs at 31 can't exceed the flawless count. - - for (var i = 0; i < 6; i++) + if (FlawlessIVCount > 0) { - var iv = pk.GetIV(i); - if (iv != 31 && iv != HomeBaseIV) + if (pk.FlawlessIVCount != FlawlessIVCount) + return false; // HOME ZA-starters have non-perfect IVs to 20, so IVs at 31 can't exceed the flawless count. + + for (var i = 0; i < 6; i++) + { + var iv = pk.GetIV(i); + if (iv != 31 && iv != HomeBaseIV) + return false; + } + } + else // All Specified + { + if (pk.IV_HP != IV_HP) + return false; + if (pk.IV_ATK != IV_ATK) + return false; + if (pk.IV_DEF != IV_DEF) + return false; + if (pk.IV_SPA != IV_SPA) + return false; + if (pk.IV_SPD != IV_SPD) + return false; + if (pk.IV_SPE != IV_SPE) return false; } }