コード例 #1
0
ファイル: EncounterStatic.cs プロジェクト: KiraDank/PKHeX
 protected void SetIVs(PKM pk)
 {
     if (IVs.Count != 0)
     {
         pk.SetRandomIVs(IVs, FlawlessIVCount);
     }
     else if (FlawlessIVCount > 0)
     {
         pk.SetRandomIVs(flawless: FlawlessIVCount);
     }
 }
コード例 #2
0
ファイル: EncounterEgg.cs プロジェクト: puertoricans/PKHeX
        private static void SetPINGA(PKM pk, EncounterCriteria criteria)
        {
            pk.SetRandomIVs(flawless: 3);
            if (pk.Format <= 2)
            {
                return;
            }

            int gender = criteria.GetGender(-1, pk.PersonalInfo);
            int nature = (int)criteria.GetNature(Nature.Random);

            if (pk.Format <= 5)
            {
                pk.SetPIDGender(gender);
                pk.Gender = gender;
                pk.SetPIDNature(nature);
                pk.Nature = nature;
                pk.RefreshAbility(pk.PIDAbility);
            }
            else
            {
                pk.PID    = Util.Rand32();
                pk.Nature = nature;
                pk.Gender = gender;
                pk.RefreshAbility(Util.Rand.Next(2));
            }
        }
コード例 #3
0
ファイル: BatchEditing.cs プロジェクト: shimakiui/PKHeX
        /// <summary>
        /// Sets the <see cref="PKM"/> IV(s) to a random value.
        /// </summary>
        /// <param name="pkm">Pokémon to modify.</param>
        /// <param name="cmd">Modification</param>
        private static void SetRandomIVs(PKM pkm, StringInstruction cmd)
        {
            if (cmd.PropertyName == nameof(pkm.IVs))
            {
                pkm.SetRandomIVs();
                return;
            }

            if (TryGetHasProperty(pkm, cmd.PropertyName, out var pi))
            {
                ReflectUtil.SetValue(pi, pkm, Util.Rand32() & pkm.MaxIV);
            }
        }
コード例 #4
0
ファイル: BatchEditing.cs プロジェクト: rboninsegna/PKHeX
        /// <summary>
        /// Sets the <see cref="PKM"/> IV(s) to a random value.
        /// </summary>
        /// <param name="pk">Pokémon to modify.</param>
        /// <param name="cmd">Modification</param>
        private static void SetRandomIVs(PKM pk, StringInstruction cmd)
        {
            if (cmd.PropertyName == nameof(PKM.IVs))
            {
                pk.SetRandomIVs();
                return;
            }

            if (TryGetHasProperty(pk, cmd.PropertyName, out var pi))
            {
                ReflectUtil.SetValue(pi, pk, Util.Rand.Next(pk.MaxIV + 1));
            }
        }
コード例 #5
0
ファイル: CommonEdits.cs プロジェクト: tools-env/PKHeX
        /// <summary>
        /// Sets the <see cref="PKM.AltForm"/> value, with special consideration for <see cref="PKM.Format"/> values which derive the <see cref="PKM.AltForm"/> value.
        /// </summary>
        /// <param name="pk">Pokémon to modify.</param>
        /// <param name="form">Desired <see cref="PKM.AltForm"/> value to set.</param>
        public static void SetAltForm(this PKM pk, int form)
        {
            switch (pk.Format)
            {
            case 2:
                while (pk.AltForm != form)
                {
                    pk.SetRandomIVs();
                }
                break;

            case 3:
                pk.SetPIDUnown3(form);
                break;

            default:
                pk.AltForm = form;
                break;
            }
        }
コード例 #6
0
ファイル: PIDGenerator.cs プロジェクト: wyatt8740/PKHeX
        public static void SetRandomPokeSpotPID(PKM pk, int nature, int gender, int ability, int slot)
        {
            while (true)
            {
                var seed = Util.Rand32();
                if (!MethodFinder.IsPokeSpotActivation(slot, seed, out var _))
                {
                    continue;
                }

                var rng = RNG.XDRNG;
                var D   = rng.Next(seed); // PID
                var E   = rng.Next(D);    // PID

                pk.PID = (D & 0xFFFF0000) | E >> 16;
                if (!IsValidCriteria4(pk, nature, ability, gender))
                {
                    continue;
                }

                pk.SetRandomIVs();
                return;
            }
        }
コード例 #7
0
ファイル: PIDGenerator.cs プロジェクト: zzzzRuby/PKHeX
 private static void SetRandomIVs(PKM pk)
 {
     pk.IVs = pk.SetRandomIVs();
 }