From bfdf1c5b373d27fb71daeb2d9464ed911e9f7177 Mon Sep 17 00:00:00 2001 From: Kurt Date: Wed, 16 Aug 2017 16:57:17 -0700 Subject: [PATCH] Check stadium OT/ID based on pkm language not really necessary (character table not shared, assuming no transfer) but easier to understand --- PKHeX.Core/Legality/Checks.cs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/PKHeX.Core/Legality/Checks.cs b/PKHeX.Core/Legality/Checks.cs index c43d0fb47..179ac4e6e 100644 --- a/PKHeX.Core/Legality/Checks.cs +++ b/PKHeX.Core/Legality/Checks.cs @@ -486,17 +486,23 @@ private void VerifyG1OT() } if ((EncounterMatch as EncounterStatic)?.Version == GameVersion.Stadium) { - if (tr == "STADIUM" && pkm.TID == 2000) - AddLine(Severity.Valid, V403, CheckIdentifier.Trainer); - else if (tr == "スタジアム" && pkm.TID == 1999) - AddLine(Severity.Valid, V404, CheckIdentifier.Trainer); + bool jp = (pkm as PK1)?.Japanese ?? (pkm as PK2)?.Japanese ?? pkm.Language != 2; + bool valid = GetIsStadiumOTIDValid(jp, tr); + if (!valid) + AddLine(Severity.Valid, V402, CheckIdentifier.Trainer); else - AddLine(Severity.Invalid, V402, CheckIdentifier.Trainer); + AddLine(Severity.Invalid, jp ? V404 : V403, CheckIdentifier.Trainer); } if (pkm.OT_Gender == 1 && (pkm.Format == 2 && pkm.Met_Location == 0 || !Info.Game.Contains(GameVersion.C))) AddLine(Severity.Invalid, V408, CheckIdentifier.Trainer); } + private bool GetIsStadiumOTIDValid(bool jp, string tr) + { + if (jp) + return tr == "スタジアム" && pkm.TID == 1999; + return tr == "STADIUM" && pkm.TID == 2000; + } #endregion private void VerifyHyperTraining() {