コード例 #1
0
ファイル: BulkGenerator.cs プロジェクト: vvcln/PKHeX
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }