From e3ca751e2cfdd0ab5a98b2cf00f50546ac1f5d64 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 4 Feb 2018 18:12:20 -0800 Subject: [PATCH] Add dp/hgss shedinja gender glitch handling not providing pkmeditor ability since Pt behaves correctly. Closes #1813 , thanks @ultima-soul & @Lusamine ! --- PKHeX.Core/Legality/Checks.cs | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/PKHeX.Core/Legality/Checks.cs b/PKHeX.Core/Legality/Checks.cs index 6355df87d..cabcef326 100644 --- a/PKHeX.Core/Legality/Checks.cs +++ b/PKHeX.Core/Legality/Checks.cs @@ -10,7 +10,12 @@ public partial class LegalityAnalysis private void VerifyGender() { if (pkm.PersonalInfo.Gender == 255 && pkm.Gender != 2) - AddLine(Severity.Invalid, V203, CheckIdentifier.Gender); + { + // DP/HGSS shedinja glitch -- only generation 4 spawns + bool ignore = pkm.Species == 292 && pkm.Format == 4 && pkm.Met_Level != pkm.CurrentLevel; + if (!ignore) + AddLine(Severity.Invalid, V203, CheckIdentifier.Gender); + } // Check for PID relationship to Gender & Nature if applicable int gen = Info.Generation; @@ -20,11 +25,21 @@ private void VerifyGender() return; bool genderValid = pkm.IsGenderValid(); - if (!genderValid && pkm.Format > 5 && (pkm.Species == 183 || pkm.Species == 184)) + if (!genderValid) { - var gv = pkm.PID & 0xFF; - if (gv > 63 && pkm.Gender == 1) // evolved from azurill after transferring to keep gender - genderValid = true; + if (pkm.Format == 4 && pkm.Species == 292) // Shedinja glitch + { + // should match original gender + var gender = PKX.GetGenderFromPIDAndRatio(pkm.PID, 0x7F); // 50-50 + if (gender == pkm.Gender) + genderValid = true; + } + else if (pkm.Format > 5 && (pkm.Species == 183 || pkm.Species == 184)) + { + var gv = pkm.PID & 0xFF; + if (gv > 63 && pkm.Gender == 1) // evolved from azurill after transferring to keep gender + genderValid = true; + } } else if (3 <= Info.Generation && Info.Generation <= 5) {