From 90693a2a76ca56fecf925c857fdb892f3a4c67d9 Mon Sep 17 00:00:00 2001 From: Kurt Date: Thu, 29 Jun 2017 20:12:40 -0700 Subject: [PATCH] Don't generate egg encounters if species cant exist Closes #1286 --- PKHeX.Core/Legality/Encounters/EncounterGenerator.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/PKHeX.Core/Legality/Encounters/EncounterGenerator.cs b/PKHeX.Core/Legality/Encounters/EncounterGenerator.cs index 0e1273cdd..5c92c8a2c 100644 --- a/PKHeX.Core/Legality/Encounters/EncounterGenerator.cs +++ b/PKHeX.Core/Legality/Encounters/EncounterGenerator.cs @@ -1183,10 +1183,14 @@ private static IEnumerable GenerateEggs(PKM pkm) int lvl = pkm.GenNumber < 4 ? 5 : 1; var ver = (GameVersion) pkm.Version; // version is a true indicator for all generation 3+ origins - yield return new EncounterEgg { Game = (GameVersion)pkm.Version, Level = lvl, Species = GetBaseSpecies(pkm, 0) }; + int max = GetMaxSpeciesOrigin(pkm.GenNumber); - if (GetSplitBreedGeneration(pkm).Contains(pkm.Species)) - yield return new EncounterEgg { Game = ver, Level = lvl, Species = GetBaseSpecies(pkm, 1), SplitBreed = true }; + var baseSpecies = GetBaseSpecies(pkm, 0); + if (baseSpecies <= max) + yield return new EncounterEgg { Game = ver, Level = lvl, Species = baseSpecies }; + + if (GetSplitBreedGeneration(pkm).Contains(pkm.Species) && (baseSpecies = GetBaseSpecies(pkm, 1)) <= max) + yield return new EncounterEgg { Game = ver, Level = lvl, Species = baseSpecies, SplitBreed = true }; } // Utility