Ejemplo n.º 1
0
        public static int GetRandomForme(int species, bool mega, bool alola, bool galar, PersonalTable stats)
        {
            if (stats == null)
            {
                return(0);
            }
            if (stats[species].FormeCount <= 1)
            {
                return(0);
            }

            if (species == 658 && !mega) // Greninja
            {
                return(0);
            }
            if (species == 664 || species == 665 || species == 666) // vivillon
            {
                return(30);                                         // save file specific
            }
            if (species == 774)                                     // minior
            {
                return(Util.Rand.Next(7));
            }
            if (species == 890) // Eternatus
            {
                return(0);
            }

            if (galar && species == 052) // Galarian Meowth is altform 2
            {
                return(Util.Rand.Next(3));
            }
            if (galar && species == 079) // todo: remove when Kanto Slowpoke is made usable in SWSH
            {
                return(1);
            }
            if (galar && species == 555) // Galarian Darmanitan is altform 2, Galarian Zen is altform 3
            {
                return(Util.Rand.Next(4));
            }

            if (stats.TableLength == 980 && (species == 25 || species == 133)) // gg tableB -- no starters, they crash trainer battles.
            {
                return(0);                                                     // Pikachu
            }
            if (EvolveToAlolanForms.Contains(species))
            {
                return(alola ? Util.Rand.Next(2) : 0);
            }
            if (EvolveToGalarForms.Contains(species))
            {
                return(galar ? Util.Rand.Next(2) : 0);
            }
            if (!BattleExclusiveForms.Contains(species) || mega)
            {
                return(Util.Rand.Next(stats[species].FormeCount)); // Slot-Random
            }
            return(0);
        }
Ejemplo n.º 2
0
        public static int GetRandomForme(int species, bool mega, bool alola, bool galar, PersonalTable stats)
        {
            if (stats == null)
            {
                return(0);
            }
            if (stats[species].FormeCount <= 1)
            {
                return(0);
            }

            if (species == (int)Species.Unown || species == (int)Species.Deerling || species == (int)Species.Sawsbuck)
            {
                return(31); // Random
            }
            if ((species == (int)Species.Greninja && !mega) || species == (int)Species.Eternatus)
            {
                return(0);
            }
            if (species == (int)Species.Scatterbug || species == (int)Species.Spewpa || species == (int)Species.Vivillon)
            {
                return(30); // save file specific
            }
            if (species == (int)Species.Minior)
            {
                return(Util.Rand.Next(7)); // keep the core color a surprise
            }
            if (galar)
            {
                switch ((Species)species)
                {
                case Species.Meowth:
                    return(Util.Rand.Next(3));    // Kanto, Alola, Galar

                case Species.Darmanitan:
                    return(Util.Rand.Next(4));    // Standard, Zen, Galar Standard, Galar Zen

                case Species.Slowbro:
                {
                    int form = Util.Rand.Next(2);         // Slowbro-1 is Mega and Slowbro-2 is Galar, so only return 0 or 2
                    if (form == 1)
                    {
                        form++;
                    }
                    return(form);
                }
                }
            }

            if (stats.TableLength == 980 && (species == (int)Species.Pikachu || species == (int)Species.Eevee)) // gg tableB -- no starters, they crash trainer battles.
            {
                return(0);
            }
            if (stats.TableLength == 1181 && species == (int)Species.Pikachu) // SWSH -- disallow Partner Pikachu from LGPE, but allow World Cap
            {
                int form = Util.Rand.Next(9);
                if (form == 8)
                {
                    form++;
                }
                return(form);
            }
            if (EvolveToAlolanForms.Contains(species))
            {
                return(alola ? Util.Rand.Next(2) : 0);
            }
            if (EvolveToGalarForms.Contains(species))
            {
                return(galar ? Util.Rand.Next(2) : 0);
            }
            if (!BattleExclusiveForms.Contains(species) || mega)
            {
                return(Util.Rand.Next(stats[species].FormeCount)); // Slot-Random
            }
            return(0);
        }