private static void SetRandomIVs(PKM PKM, StringInstruction cmd) { int MaxIV = PKM.Format <= 2 ? 15 : 31; if (cmd.PropertyName == "IVs") { int[] IVs = new int[6]; for (int i = 0; i < 6; i++) { IVs[i] = (int)(Util.Rand32() & MaxIV); } if (Legal.Legends.Contains(PKM.Species) || Legal.SubLegends.Contains(PKM.Species)) { for (int i = 0; i < 3; i++) { IVs[i] = MaxIV; } } Util.Shuffle(IVs); PKM.IVs = IVs; } else { ReflectFrameworkUtil.SetValue(PKM, cmd.PropertyName, Util.Rand32() & MaxIV); } }
private static void SetRandomIVs(PKM PKM, StringInstruction cmd) { if (cmd.PropertyName == nameof(PKM.IVs)) { PKM.SetRandomIVs(); return; } ReflectFrameworkUtil.SetValue(PKM, cmd.PropertyName, Util.Rand32() & PKM.MaxIV); }
private static void SetProperty(PKM PKM, StringInstruction cmd) { if (cmd.PropertyName == nameof(PKM.MetDate)) { PKM.MetDate = DateTime.ParseExact(cmd.PropertyValue, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None); } else if (cmd.PropertyName == nameof(PKM.EggMetDate)) { PKM.EggMetDate = DateTime.ParseExact(cmd.PropertyValue, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None); } else if (cmd.PropertyName == nameof(PKM.EncryptionConstant) && cmd.PropertyValue == CONST_RAND) { ReflectFrameworkUtil.SetValue(PKM, cmd.PropertyName, Util.Rand32().ToString()); } else if ((cmd.PropertyName == nameof(PKM.Ability) || cmd.PropertyName == nameof(PKM.AbilityNumber)) && cmd.PropertyValue.StartsWith("$")) { PKM.RefreshAbility(Convert.ToInt16(cmd.PropertyValue[1]) - 0x30); } else if (cmd.PropertyName == nameof(PKM.PID) && cmd.PropertyValue == CONST_RAND) { PKM.SetPIDGender(PKM.Gender); } else if (cmd.PropertyName == nameof(PKM.EncryptionConstant) && cmd.PropertyValue == nameof(PKM.PID)) { PKM.EncryptionConstant = PKM.PID; } else if (cmd.PropertyName == nameof(PKM.PID) && cmd.PropertyValue == CONST_SHINY) { PKM.SetShinyPID(); } else if (cmd.PropertyName == nameof(PKM.Species) && cmd.PropertyValue == "0") { PKM.Data = new byte[PKM.Data.Length]; } else if (cmd.PropertyName.StartsWith("IV") && cmd.PropertyValue == CONST_RAND) { SetRandomIVs(PKM, cmd); } else if (cmd.Random) { ReflectFrameworkUtil.SetValue(PKM, cmd.PropertyName, cmd.RandomValue); } else if (cmd.PropertyName == nameof(PKM.IsNicknamed) && cmd.PropertyValue.ToLower() == "false") { PKM.IsNicknamed = false; PKM.Nickname = PKX.GetSpeciesName(PKM.Species, PKM.Language); } else { ReflectFrameworkUtil.SetValue(PKM, cmd.PropertyName, cmd.PropertyValue); } }