Defer & flag VC korean unobtainable encounters

Closes #1985
This commit is contained in:
Kurt
2018-06-06 21:49:30 -07:00
parent 19e9e4e761
commit 1202474cd5
4 changed files with 5 additions and 4 deletions

View File

@@ -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;

View File

@@ -48,6 +48,7 @@ private static IEnumerable<IEncounterable> 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<GBEncounterData> 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)