Don't generate invalid sister-pair eggs

This commit is contained in:
Kurt 2019-11-16 09:00:05 -08:00
parent dfcd93bfff
commit 29d52e065f

View File

@ -36,7 +36,7 @@ public static IEnumerable<EncounterEgg> GenerateEggs(PKM pkm, IReadOnlyList<DexL
if (baseSpecies <= max)
{
yield return new EncounterEgg { Version = ver, Level = lvl, Species = baseSpecies };
if (gen > 5 && (pkm.WasTradedEgg || all))
if (gen > 5 && (pkm.WasTradedEgg || all) && HasOtherGamePair(ver))
yield return new EncounterEgg { Version = GetOtherTradePair(ver), Level = lvl, Species = baseSpecies };
}
@ -47,7 +47,7 @@ public static IEnumerable<EncounterEgg> GenerateEggs(PKM pkm, IReadOnlyList<DexL
if (other <= max)
{
yield return new EncounterEggSplit { Version = ver, Level = lvl, Species = other, OtherSpecies = baseSpecies };
if (gen > 5 && (pkm.WasTradedEgg || all))
if (gen > 5 && (pkm.WasTradedEgg || all) && HasOtherGamePair(ver))
yield return new EncounterEggSplit { Version = GetOtherTradePair(ver), Level = lvl, Species = other, OtherSpecies = baseSpecies };
}
}
@ -61,5 +61,10 @@ private static GameVersion GetOtherTradePair(GameVersion ver)
return ver + 2;
return ver - 2;
}
private static bool HasOtherGamePair(GameVersion ver)
{
return ver < GameVersion.GP; // lgpe and sw/sh don't have a sister pair
}
}
}