From 90300dccd2a85c722045c3cfe248f1cae04ddec0 Mon Sep 17 00:00:00 2001 From: Kurt Date: Fri, 24 Feb 2017 23:15:16 -0800 Subject: [PATCH] Fix VC edge cases transfers decapitalize ingame-trade trainer name Special handling for static encounters should default to last --- PKHeX/Legality/Checks.cs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/PKHeX/Legality/Checks.cs b/PKHeX/Legality/Checks.cs index e5419b423..9b1c31a71 100644 --- a/PKHeX/Legality/Checks.cs +++ b/PKHeX/Legality/Checks.cs @@ -203,7 +203,8 @@ private void verifyNickname() if (et?.TID == 0) // Gen1 Trade { string ot = pkm.OT_Name; - if (ot != "トレーナー" && ot != "TRAINER") + string tr = pkm.Format <= 2 ? "TRAINER" : "Trainer"; // decaps on transfer + if (ot != "トレーナー" && ot != tr) AddLine(Severity.Invalid, "Incorrect OT name for RBY in-game trade.", CheckIdentifier.Trainer); } else // Gen2 @@ -546,6 +547,7 @@ private CheckResult verifyEncounterG1() { // Since encounter matching is super weak due to limited stored data in the structure // Calculate all 3 at the same time and pick the best result (by species). + // Favor special event move gifts as Static Encounters when applicable var s = Legal.getValidStaticEncounter(pkm, gen1Encounter: true); var e = Legal.getValidWildEncounters(pkm); var t = Legal.getValidIngameTrade(pkm, gen1Encounter: true); @@ -569,14 +571,20 @@ private CheckResult verifyEncounterG1() EncounterMatch = e; return verifyEncounterWild(); } + if (sm <= em && sm <= tm) + { + EncounterMatch = s; + return verifyEncounterStatic(); + } if (tm <= sm && tm <= em) { EncounterMatch = t; return verifyEncounterTrade(); } - - // else is trade - return new CheckResult(Severity.Valid, "Valid ingame trade.", CheckIdentifier.Encounter); + + // shouldn't ever hit, above 3*invalid check should abort + Console.WriteLine($"Gen1 encounter fallthrough: {pkm.FileName}"); + return new CheckResult(Severity.Invalid, "Unknown encounter.", CheckIdentifier.Encounter); } private CheckResult verifyEncounter() {