From 1f79de856be0e6558632dbb46b590be92b9b084d Mon Sep 17 00:00:00 2001 From: Kurt Date: Fri, 25 Nov 2016 15:34:47 -0800 Subject: [PATCH] Add IV randomization Closes #491 --- PKHeX/Subforms/PKM Editors/BatchEditor.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/PKHeX/Subforms/PKM Editors/BatchEditor.cs b/PKHeX/Subforms/PKM Editors/BatchEditor.cs index 10e3fbc16..a9b770144 100644 --- a/PKHeX/Subforms/PKM Editors/BatchEditor.cs +++ b/PKHeX/Subforms/PKM Editors/BatchEditor.cs @@ -319,6 +319,8 @@ private static ModifyResult ProcessPKM(PKM PKM, IEnumerable F PKM.setShinyPID(); else if (cmd.PropertyName == "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 ReflectUtil.SetValue(PKM, cmd.PropertyName, cmd.PropertyValue); @@ -328,6 +330,14 @@ private static ModifyResult ProcessPKM(PKM PKM, IEnumerable F } return result; } + private static void setRandomIVs(PKM PKM, StringInstruction cmd) + { + int MaxIVs = PKM.Format <= 2 ? 15 : 31; + if (cmd.PropertyName == "IVs") + ReflectUtil.SetValue(PKM, cmd.PropertyName, new byte[6].Select(i => (int)Util.rnd32() & MaxIVs).ToArray()); + else + ReflectUtil.SetValue(PKM, cmd.PropertyName, Util.rnd32() & MaxIVs); + } private void B_Add_Click(object sender, EventArgs e) {