From 1202474cd5afcec4711dd1995bb18c02a4614cfb Mon Sep 17 00:00:00 2001 From: Kurt Date: Wed, 6 Jun 2018 21:49:30 -0700 Subject: [PATCH] Defer & flag VC korean unobtainable encounters Closes #1985 --- PKHeX.Core/Legality/Checks.cs | 4 ++-- .../Encounters/Generator/EncounterGenerator.cs | 5 +++-- .../Legality/Illegal/Misc/Kingdra Korean VC1.pk7 | Bin 0 -> 232 bytes .../Generation 2/230 - 킹드라 - D74685FF60E2.pk7 | Bin 0 -> 232 bytes 4 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 Tests/PKHeX.Tests/Legality/Illegal/Misc/Kingdra Korean VC1.pk7 create mode 100644 Tests/PKHeX.Tests/Legality/Legal/Generation 2/230 - 킹드라 - D74685FF60E2.pk7 diff --git a/PKHeX.Core/Legality/Checks.cs b/PKHeX.Core/Legality/Checks.cs index 363db6d9b..79a919158 100644 --- a/PKHeX.Core/Legality/Checks.cs +++ b/PKHeX.Core/Legality/Checks.cs @@ -206,8 +206,8 @@ private bool VerifyLanguage() return false; } - // Korean Crystal does not exist - if (pkm.Version == (int)GameVersion.C && pkm.Korean) + // Korean Crystal does not exist, neither do VC1 + if (Info.Generation <= 2 && pkm.Korean && !GameVersion.GS.Contains((GameVersion)pkm.Version)) { AddLine(Severity.Invalid, string.Format(V5, $"!={pkm.Language}", pkm.Language), CheckIdentifier.Language); return false; diff --git a/PKHeX.Core/Legality/Encounters/Generator/EncounterGenerator.cs b/PKHeX.Core/Legality/Encounters/Generator/EncounterGenerator.cs index 9ffe10dfc..fb4bda908 100644 --- a/PKHeX.Core/Legality/Encounters/Generator/EncounterGenerator.cs +++ b/PKHeX.Core/Legality/Encounters/Generator/EncounterGenerator.cs @@ -48,6 +48,7 @@ private static IEnumerable GetEncounters12(PKM pkm, LegalInfo in foreach (var z in GenerateFilteredEncounters(pkm)) { + pkm.WasEgg = z.Encounter.EggEncounter; info.Generation = z.Generation; info.Game = z.Game; yield return z.Encounter; @@ -187,11 +188,11 @@ private static IEnumerable GenerateFilteredEncounters(PKM pkm) var move = GetPreferredGBIterator(g1i, g2i); var obj = move.Peek(); - if (obj.Generation == 1 && obj.Encounter is EncounterTrade && !IsEncounterTrade1Valid(pkm)) + if ((obj.Generation == 1 && (pkm.Korean || (obj.Encounter is EncounterTrade && !IsEncounterTrade1Valid(pkm)))) + || (obj.Generation == 2 && (pkm.Korean && (obj.Encounter is IVersion v && v.Version == GameVersion.C)))) deferred.Add(obj); else yield return obj; - pkm.WasEgg = false; move.MoveNext(); } foreach (var z in deferred) diff --git a/Tests/PKHeX.Tests/Legality/Illegal/Misc/Kingdra Korean VC1.pk7 b/Tests/PKHeX.Tests/Legality/Illegal/Misc/Kingdra Korean VC1.pk7 new file mode 100644 index 0000000000000000000000000000000000000000..10e0c6f20972fd7ea3d68b00011d48f9bfee8660 GIT binary patch literal 232 zcmaEq@V}LT!NuVj0|Nt_GXsNz6F&nR3j>4F(^Ub?KrupK=Y>04YPK^lq%agQBmx!Z zfJu<9EXG8JX^gRqTyk6@sHWWS{b(P+;LYH{kjfB&Dh1*(GE^Z8x-l@aFu?^v7&3u& crNa3LMkAalz{3S(+m^DhGAJ8zFmiw-0KW7W!2kdN literal 0 HcmV?d00001 diff --git a/Tests/PKHeX.Tests/Legality/Legal/Generation 2/230 - 킹드라 - D74685FF60E2.pk7 b/Tests/PKHeX.Tests/Legality/Legal/Generation 2/230 - 킹드라 - D74685FF60E2.pk7 new file mode 100644 index 0000000000000000000000000000000000000000..e46387fd1f293b782c657d02a35ab8b99994fdb7 GIT binary patch literal 232 zcmaEq@V}LT!R`7p1_lN;X9flbCw>Mt76t~Tr>g>(fntQf&I@<8)NE&9NMR^qNCYa* z0h1tIS&WGc(->nJx#YM+P))ht`_Vpt!JEN@A(bHlRSLvoL=|#lU