using System; using System.Collections.Generic; namespace PKHeX.Core { internal static class EvolutionLegality { internal static readonly HashSet FutureEvolutionsGen1 = new() { (int)Species.Crobat, (int)Species.Bellossom, (int)Species.Politoed, (int)Species.Espeon, (int)Species.Umbreon, (int)Species.Slowking, (int)Species.Steelix, (int)Species.Scizor, (int)Species.Kingdra, (int)Species.Porygon2, (int)Species.Blissey, (int)Species.Magnezone, (int)Species.Lickilicky, (int)Species.Rhyperior, (int)Species.Tangrowth, (int)Species.Electivire, (int)Species.Magmortar, (int)Species.Leafeon, (int)Species.Glaceon, (int)Species.PorygonZ, (int)Species.Sylveon, }; private static readonly HashSet FutureEvolutionsGen2 = new() { (int)Species.Ambipom, (int)Species.Mismagius, (int)Species.Honchkrow, (int)Species.Weavile, (int)Species.Magnezone, (int)Species.Lickilicky, (int)Species.Rhyperior, (int)Species.Tangrowth, (int)Species.Electivire, (int)Species.Magmortar, (int)Species.Togekiss, (int)Species.Yanmega, (int)Species.Leafeon, (int)Species.Glaceon, (int)Species.Gliscor, (int)Species.Mamoswine, (int)Species.PorygonZ, (int)Species.Sylveon, }; private static readonly HashSet FutureEvolutionsGen3 = new() { (int)Species.Roserade, (int)Species.Ambipom, (int)Species.Mismagius, (int)Species.Honchkrow, (int)Species.Weavile, (int)Species.Magnezone, (int)Species.Lickilicky, (int)Species.Rhyperior, (int)Species.Tangrowth, (int)Species.Electivire, (int)Species.Magmortar, (int)Species.Togekiss, (int)Species.Yanmega, (int)Species.Leafeon, (int)Species.Glaceon, (int)Species.Gliscor, (int)Species.Mamoswine, (int)Species.PorygonZ, (int)Species.Gallade, (int)Species.Probopass, (int)Species.Dusknoir, (int)Species.Froslass, (int)Species.Sylveon, }; private static readonly int[] FutureEvolutionsGen4 = { (int)Species.Sylveon, }; private static readonly int[] FutureEvolutionsGen5 = FutureEvolutionsGen4; internal static ICollection GetFutureGenEvolutions(int generation) => generation switch { 1 => FutureEvolutionsGen1, 2 => FutureEvolutionsGen2, 3 => FutureEvolutionsGen3, 4 => FutureEvolutionsGen4, 5 => FutureEvolutionsGen5, _ => Array.Empty() }; } }