Exemplo n.º 1
0
        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);
        }
Exemplo n.º 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);
        }
        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));
        }
Exemplo n.º 4
0
        /// <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));
        }
Exemplo n.º 5
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);
        }