diff --git a/PKM/PKM.cs b/PKM/PKM.cs index b0fa8e853..bc4b9e84d 100644 --- a/PKM/PKM.cs +++ b/PKM/PKM.cs @@ -13,6 +13,8 @@ public abstract class PKM // Internal Attributes set on creation public byte[] Data; // Raw Storage public string Identifier; // User or Form Custom Attribute + public int Box { get; set; } = -1; // Batch Editor + public int Slot { get; set; } = -1; // Batch Editor public byte[] EncryptedPartyData => Encrypt().Take(SIZE_PARTY).ToArray(); public byte[] EncryptedBoxData => Encrypt().Take(SIZE_STORED).ToArray(); diff --git a/Saves/SaveFile.cs b/Saves/SaveFile.cs index 069bf2e8c..bd6c70f09 100644 --- a/Saves/SaveFile.cs +++ b/Saves/SaveFile.cs @@ -132,6 +132,8 @@ public PKM[] BoxData { data[i] = getStoredSlot(getBoxOffset(i/30) + SIZE_STORED*(i%30)); data[i].Identifier = $"{getBoxName(i/30)}:{(i%30 + 1).ToString("00")}"; + data[i].Box = i/30 + 1; + data[i].Slot = i%30 + 1; } return data; } diff --git a/Subforms/PKM Editors/BatchEditor.cs b/Subforms/PKM Editors/BatchEditor.cs index e009576cd..ffb3f9d59 100644 --- a/Subforms/PKM Editors/BatchEditor.cs +++ b/Subforms/PKM Editors/BatchEditor.cs @@ -18,6 +18,7 @@ public BatchEditor() } private const string CONST_RAND = "$rand"; + private const string CONST_SHINY = "$shiny"; private int currentFormat = -1; private static readonly string[] pk6 = ReflectUtil.getPropertiesCanWritePublic(typeof(PK6)).OrderBy(i=>i).ToArray(); private static readonly string[] pk5 = ReflectUtil.getPropertiesCanWritePublic(typeof(PK5)).OrderBy(i=>i).ToArray(); @@ -248,6 +249,8 @@ private static ModifyResult ProcessPKM(PKM PKM, IEnumerable F { if (cmd.PropertyValue == CONST_RAND && (cmd.PropertyName == "PID" || cmd.PropertyName == "EncryptionConstant")) ReflectUtil.SetValue(PKM, cmd.PropertyName, Util.rnd32().ToString()); + else if (cmd.PropertyValue == CONST_SHINY && cmd.PropertyName == "PID") + PKM.setShinyPID(); else ReflectUtil.SetValue(PKM, cmd.PropertyName, cmd.PropertyValue);