コード例 #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
ファイル: 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);
        }
コード例 #3
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);
        }
コード例 #4
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);
            }
        }