public static IList <PKM> GetLivingDex(SaveFile sav) { var bd = sav.BoxData; var tr = sav; for (int i = 1; i <= sav.MaxSpeciesID; i++) // should really get a list of valid species IDs { var pk = sav.BlankPKM; pk.Species = i; pk.Gender = pk.GetSaneGender(); if (i == (int)Species.Meowstic) { pk.AltForm = pk.Gender; } var f = EncounterMovesetGenerator.GeneratePKMs(pk, tr).FirstOrDefault(); if (f == null) { continue; } var converted = PKMConverter.ConvertToType(f, sav.PKMType, out _); if (converted != null) { bd[i] = converted; } } return(bd); }
public static PKM?GetLivingEntry(this ITrainerInfo tr, PKM template, int species, int form, Type destType) { template.Species = species; template.Form = form; template.Gender = template.GetSaneGender(); var f = EncounterMovesetGenerator.GeneratePKMs(template, tr).FirstOrDefault(); if (f == null) { return(null); } var result = PKMConverter.ConvertToType(f, destType, out _); if (result == null) { return(null); } result.CurrentLevel = 100; result.Species = species; result.Form = form; result.Heal(); return(result); }
public static IEnumerable <IEncounterable> GetLearn(int spec, int[] moveIDs) { var blank = PKMConverter.GetBlank(PKX.Generation); blank.Species = spec; var vers = GameUtil.GameVersions; return(EncounterMovesetGenerator.GenerateEncounters(blank, moveIDs, vers)); }
/// <summary> /// Gets all encounters where a <see cref="species"/> can learn all input <see cref="moves"/>. /// </summary> public static IEnumerable <IEncounterable> GetLearn(int species, int[] moves) { if (species <= 0) { return(Array.Empty <IEncounterable>()); } if (moves.Any(z => z < 0)) { return(Array.Empty <IEncounterable>()); } var blank = PKMConverter.GetBlank(PKX.Generation); blank.Species = species; var vers = GameUtil.GameVersions; return(EncounterMovesetGenerator.GenerateEncounters(blank, moves, vers)); }
public static List <PKM> GetLivingDex(ITrainerInfo tr, IEnumerable <int> speciesToGenerate, PKM blank) { var result = new List <PKM>(); var destType = blank.GetType(); foreach (var s in speciesToGenerate) { var pk = blank.Clone(); pk.Species = s; pk.Gender = pk.GetSaneGender(); var pi = pk.PersonalInfo; for (int i = 0; i < pi.FormeCount; i++) { pk.AltForm = i; if (s == (int)Species.Indeedee || s == (int)Species.Meowstic) { pk.Gender = i; } var f = EncounterMovesetGenerator.GeneratePKMs(pk, tr).FirstOrDefault(); if (f == null) { continue; } var converted = PKMConverter.ConvertToType(f, destType, out _); if (converted == null) { continue; } converted.CurrentLevel = 100; converted.Species = s; converted.AltForm = i; result.Add(converted); } } return(result); }