コード例 #1
0
        private void RandomizeSpecFormItem(IPokeData pk, int Type)
        {
            if (pk is TrainerPoke7b p7b)
            {
                RandomizeSpecForm(p7b, Type);
                return;
            }

            // replaces Megas with another Mega (Dexio and Lysandre in USUM)
            if (MegaDictionary.Any(z => z.Value.Contains(pk.HeldItem)))
            {
                int[] mega = GetRandomMega(MegaDictionary, out int species);
                pk.Species = species;
                int index = Util.Random.Next(mega.Length);
                pk.HeldItem = mega[index];
                pk.Form     = 0; // allow it to Mega Evolve naturally
            }
            else // every other pkm
            {
                pk.Species = RandSpec.GetRandomSpeciesType(pk.Species, Type);
                TryForceEvolve(pk);
                pk.HeldItem = PossibleHeldItems[Util.Random.Next(PossibleHeldItems.Length)];
                pk.Form     = Legal.GetRandomForme(pk.Species, Settings.AllowRandomMegaForms, true, Personal);
            }
        }
コード例 #2
0
        private TrainerPoke GetBlankPKM(int avgLevel, int avgSpec)
        {
            var pk = GetBlank();

            pk.Species = RandSpec.GetRandomSpecies(avgSpec);
            pk.Level   = avgLevel;
            return(pk);
        }
コード例 #3
0
        private void RandomizeTable7(EncounterTable Table, int slotStart, int slotStop)
        {
            int end = slotStop < 0 ? Table.Encounter7s.Length : slotStop;

            for (int s = slotStart; s < end; s++)
            {
                var EncounterSet = Table.Encounter7s[s];
                foreach (var enc in EncounterSet.Where(enc => enc.Species != 0))
                {
                    enc.Species = (uint)RandSpec.GetRandomSpecies((int)enc.Species);
                    enc.Forme   = (uint)RandForm.GetRandomForme((int)enc.Species);
                }
            }
        }
コード例 #4
0
ファイル: TrainerRandomizer.cs プロジェクト: jmmontem/pkNX
        private void RandomizeSpecForm(TrainerPoke7b pk, int type)
        {
            bool isMega = pk.MegaFormChoice != 0;

            if (isMega)
            {
                int[] mega = GetRandomMega(MegaDictionary, out int species);
                pk.Species        = species;
                pk.CanMegaEvolve  = true;
                pk.MegaFormChoice = Util.Random.Next(mega.Length) + 1;
                pk.Form           = 0; // allow it to Mega Evolve naturally
                return;
            }

            pk.Species = RandSpec.GetRandomSpeciesType(pk.Species, type);
            pk.Form    = RandForm.GetRandomForme(pk.Species, Settings.AllowRandomMegaForms, Settings.AllowRandomFusions, true, false, Personal.Table);
        }
コード例 #5
0
        private void RandomizeSpecForm(TrainerPoke7b pk, int type)
        {
            bool isMega = pk.MegaFormChoice != 0;

            if (isMega)
            {
                int[] mega = GetRandomMega(MegaDictionary, out int species);
                pk.Species        = species;
                pk.MegaFormChoice = Util.Random.Next(mega.Length);
                pk.CanMegaEvolve  = true;
                pk.Form           = Legal.GetRandomForme(pk.Species, Settings.AllowRandomMegaForms, true, Personal);
                return;
            }

            pk.MegaFormChoice = 0;
            pk.Species        = RandSpec.GetRandomSpeciesType(pk.Species, type);
            TryForceEvolve(pk);
            pk.Form = Legal.GetRandomForme(pk.Species, Settings.AllowRandomMegaForms, true, Personal);
        }
コード例 #6
0
        private void DetermineSpecies(IPokeData pk)
        {
            if (Settings.RandomizeTeam)
            {
                int Type = Settings.TeamTypeThemed ? Util.Random.Next(17) : -1;

                // replaces Megas with another Mega (Dexio and Lysandre in USUM)
                if (MegaDictionary.Any(z => z.Value.Contains(pk.HeldItem)))
                {
                    int[] mega = GetRandomMega(MegaDictionary, out int species);
                    pk.Species  = species;
                    pk.HeldItem = mega[Util.Random.Next(mega.Length)];
                    pk.Form     = 0; // allow it to Mega Evolve naturally
                }

                // every other pkm
                else
                {
                    pk.Species  = RandSpec.GetRandomSpeciesType(pk.Species, Type);
                    pk.HeldItem = PossibleHeldItems[Util.Random.Next(PossibleHeldItems.Length)];
                    pk.Form     = Legal.GetRandomForme(pk.Species, Settings.AllowRandomMegaForms, true, Personal);
                }

                pk.Gender = 0;                    // random
                pk.Nature = Util.Random.Next(25); // random
            }

            if (Settings.ForceFullyEvolved && pk.Level >= Settings.ForceFullyEvolvedAtLevel && !FinalEvo.Contains(pk.Species))
            {
                int randFinalEvo() => Util.Random.Next(FinalEvo.Count);

                if (FinalEvo.Count != 0)
                {
                    pk.Species = FinalEvo[randFinalEvo()];
                }
                pk.Form = Legal.GetRandomForme(pk.Species, Settings.AllowRandomMegaForms, true, Personal);
            }
        }