diff --git a/PKHeX.csproj b/PKHeX.csproj
index be5f72408..afa6f51dd 100644
--- a/PKHeX.csproj
+++ b/PKHeX.csproj
@@ -125,6 +125,18 @@
BatchEditor.cs
+
+ Form
+
+
+ SuperTraining.cs
+
+
+ Form
+
+
+ RibbMedal2.cs
+
Form
@@ -279,6 +291,7 @@
+
QR.cs
@@ -287,6 +300,12 @@
BatchEditor.cs
+
+ SuperTraining.cs
+
+
+ RibbMedal2.cs
+
Text.cs
diff --git a/Subforms/PKM Editors/RibbonEditor.Designer.cs b/Subforms/PKM Editors/RibbonEditor.Designer.cs
new file mode 100644
index 000000000..e44f67fdd
--- /dev/null
+++ b/Subforms/PKM Editors/RibbonEditor.Designer.cs
@@ -0,0 +1,188 @@
+namespace PKHeX
+{
+ partial class RibbonEditor
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RibbonEditor));
+ this.B_Save = new System.Windows.Forms.Button();
+ this.B_Cancel = new System.Windows.Forms.Button();
+ this.B_None = new System.Windows.Forms.Button();
+ this.B_All = new System.Windows.Forms.Button();
+ this.PAN_Container = new System.Windows.Forms.Panel();
+ this.SPLIT_Ribbons = new System.Windows.Forms.SplitContainer();
+ this.FLP_Ribbons = new System.Windows.Forms.FlowLayoutPanel();
+ this.TLP_Ribbons = new System.Windows.Forms.TableLayoutPanel();
+ this.PAN_Container.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.SPLIT_Ribbons)).BeginInit();
+ this.SPLIT_Ribbons.Panel1.SuspendLayout();
+ this.SPLIT_Ribbons.Panel2.SuspendLayout();
+ this.SPLIT_Ribbons.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // B_Save
+ //
+ this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.B_Save.Location = new System.Drawing.Point(318, 249);
+ this.B_Save.Name = "B_Save";
+ this.B_Save.Size = new System.Drawing.Size(90, 23);
+ this.B_Save.TabIndex = 1;
+ this.B_Save.Text = "Save";
+ this.B_Save.UseVisualStyleBackColor = true;
+ this.B_Save.Click += new System.EventHandler(this.B_Save_Click);
+ //
+ // B_Cancel
+ //
+ this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.B_Cancel.Location = new System.Drawing.Point(222, 249);
+ this.B_Cancel.Name = "B_Cancel";
+ this.B_Cancel.Size = new System.Drawing.Size(90, 23);
+ this.B_Cancel.TabIndex = 2;
+ this.B_Cancel.Text = "Cancel";
+ this.B_Cancel.UseVisualStyleBackColor = true;
+ this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click);
+ //
+ // B_None
+ //
+ this.B_None.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.B_None.Location = new System.Drawing.Point(108, 249);
+ this.B_None.Name = "B_None";
+ this.B_None.Size = new System.Drawing.Size(90, 23);
+ this.B_None.TabIndex = 5;
+ this.B_None.Text = "Remove All";
+ this.B_None.UseVisualStyleBackColor = true;
+ this.B_None.Click += new System.EventHandler(this.B_None_Click);
+ //
+ // B_All
+ //
+ this.B_All.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.B_All.Location = new System.Drawing.Point(12, 249);
+ this.B_All.Name = "B_All";
+ this.B_All.Size = new System.Drawing.Size(90, 23);
+ this.B_All.TabIndex = 4;
+ this.B_All.Text = "Give All";
+ this.B_All.UseVisualStyleBackColor = true;
+ this.B_All.Click += new System.EventHandler(this.B_All_Click);
+ //
+ // PAN_Container
+ //
+ this.PAN_Container.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.PAN_Container.BackColor = System.Drawing.SystemColors.Window;
+ this.PAN_Container.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.PAN_Container.Controls.Add(this.SPLIT_Ribbons);
+ this.PAN_Container.Location = new System.Drawing.Point(12, 12);
+ this.PAN_Container.Name = "PAN_Container";
+ this.PAN_Container.Size = new System.Drawing.Size(396, 231);
+ this.PAN_Container.TabIndex = 6;
+ //
+ // SPLIT_Ribbons
+ //
+ this.SPLIT_Ribbons.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.SPLIT_Ribbons.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.SPLIT_Ribbons.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
+ this.SPLIT_Ribbons.IsSplitterFixed = true;
+ this.SPLIT_Ribbons.Location = new System.Drawing.Point(0, 0);
+ this.SPLIT_Ribbons.Name = "SPLIT_Ribbons";
+ //
+ // SPLIT_Ribbons.Panel1
+ //
+ this.SPLIT_Ribbons.Panel1.Controls.Add(this.FLP_Ribbons);
+ this.SPLIT_Ribbons.Panel1.RightToLeft = System.Windows.Forms.RightToLeft.No;
+ this.SPLIT_Ribbons.Panel1MinSize = 1;
+ //
+ // SPLIT_Ribbons.Panel2
+ //
+ this.SPLIT_Ribbons.Panel2.Controls.Add(this.TLP_Ribbons);
+ this.SPLIT_Ribbons.Panel2.RightToLeft = System.Windows.Forms.RightToLeft.No;
+ this.SPLIT_Ribbons.Panel2MinSize = 1;
+ this.SPLIT_Ribbons.Size = new System.Drawing.Size(394, 229);
+ this.SPLIT_Ribbons.SplitterDistance = 150;
+ this.SPLIT_Ribbons.SplitterWidth = 1;
+ this.SPLIT_Ribbons.TabIndex = 7;
+ //
+ // FLP_Ribbons
+ //
+ this.FLP_Ribbons.AutoScroll = true;
+ this.FLP_Ribbons.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.FLP_Ribbons.Location = new System.Drawing.Point(0, 0);
+ this.FLP_Ribbons.Name = "FLP_Ribbons";
+ this.FLP_Ribbons.Size = new System.Drawing.Size(148, 227);
+ this.FLP_Ribbons.TabIndex = 5;
+ //
+ // TLP_Ribbons
+ //
+ this.TLP_Ribbons.AutoScroll = true;
+ this.TLP_Ribbons.ColumnCount = 2;
+ this.TLP_Ribbons.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+ this.TLP_Ribbons.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+ this.TLP_Ribbons.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+ this.TLP_Ribbons.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.TLP_Ribbons.Location = new System.Drawing.Point(0, 0);
+ this.TLP_Ribbons.Name = "TLP_Ribbons";
+ this.TLP_Ribbons.RowCount = 1;
+ this.TLP_Ribbons.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ this.TLP_Ribbons.Size = new System.Drawing.Size(241, 227);
+ this.TLP_Ribbons.TabIndex = 3;
+ //
+ // RibbMedal2
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(424, 281);
+ this.Controls.Add(this.PAN_Container);
+ this.Controls.Add(this.B_None);
+ this.Controls.Add(this.B_All);
+ this.Controls.Add(this.B_Cancel);
+ this.Controls.Add(this.B_Save);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.MinimumSize = new System.Drawing.Size(440, 320);
+ this.Name = "RibbonEditor";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "Ribbon Editor";
+ this.PAN_Container.ResumeLayout(false);
+ this.SPLIT_Ribbons.Panel1.ResumeLayout(false);
+ this.SPLIT_Ribbons.Panel2.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.SPLIT_Ribbons)).EndInit();
+ this.SPLIT_Ribbons.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+ private System.Windows.Forms.Button B_Save;
+ private System.Windows.Forms.Button B_Cancel;
+ private System.Windows.Forms.Button B_None;
+ private System.Windows.Forms.Button B_All;
+ private System.Windows.Forms.Panel PAN_Container;
+ private System.Windows.Forms.TableLayoutPanel TLP_Ribbons;
+ private System.Windows.Forms.FlowLayoutPanel FLP_Ribbons;
+ private System.Windows.Forms.SplitContainer SPLIT_Ribbons;
+ }
+}
\ No newline at end of file
diff --git a/Subforms/PKM Editors/RibbonEditor.resx b/Subforms/PKM Editors/RibbonEditor.resx
new file mode 100644
index 000000000..603f660be
--- /dev/null
+++ b/Subforms/PKM Editors/RibbonEditor.resx
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAE
+ AAAAAAAAAAAAAAAAAAAAAAAAIyMjAQAAAAALCwsPJiYmJysrKycqKionKSkpJykpKScpKSknKioqJyoq
+ KicrKysnJycnJw0ODQ8AAAAAJiYmAQAAAABpaWlHq6ur17+/v+6+vr7svr6+7b6+vu2+vr7tvr6+7b6+
+ vu2+vr7tvr6+7L+/v+6rq6vXampqSAAAAAAoKSgXvr++3eLi4v/g4OD94eHh/+Hh4f/i4uL/4uLi/+Li
+ 4v/i4uL/4eHh/+Dh4P/g4OD94uLi/7+/v90sLCwXfn5+PNna2frg4OD/39/f/uHh4f7h4eH+39/f/uDg
+ 4P7g4OD+39/f/uHh4f7h4OH+39/f/t/g3//a2tr6g4ODPoOCgz7X19f64+Pj/+Li4v7k5OT/4+Tj//Ly
+ 8v/19fX/9PT0//T09P/k5OT/5OTk/+Pj4/7j4+P/19jX+4qLikCDhIM+2tra++Xl5f/k5eT+5OTk//Lz
+ 8v+urq7/RUVF/z4+Pv+Zmpn/8fHx/+Xm5f/k5eT+5eXl/9ra2vyLi4tAhYWFPuXm5vvx8vP/7+/w/v//
+ //+sra3/AgIC/15eXv9tbG3/BQUF/4yMjP//////7+/w/vHy8//l5ub8jY2NQC4uLD5LS0f7UFBL/09P
+ Sv5YWVP/FBUS/29wcP///////////5SUlP8PDw//U1NO/1BQS/5PT0r/S0tH/DIyMEAAAAs+AAAM+wAA
+ Dv8AAA/+AwMS/wAAAP+UlJX///////////+3t7n/AAAA/wAAD/8BAQ/+AAAO/wAADPwCAg5ABARSPgoK
+ k/sNDab/DQ2o/hAQvP8CAmj/IiIW/7Kzrv/Cw8D/NDQm/wAATf8QELz/DQ2q/gwMp/8LC5T8Dg5bQAUF
+ Xj4KCpz7DQ2u/w0NsP4NDbX/Dw+//wUFYf8CAhL/AwMP/wMDTf8ODrj/Dg64/w0NsP4MDK7/Cwud/A8P
+ aEEGBmU9DAyl+w4Otf8ODrf+Dw+6/xAQvv8TE8v/EhK+/xAQvP8TE8v/EBDA/w8Puf8PD7f+Dg61/w0N
+ pvsREW9ACAhtQA8PsfsTE77/ExO//xQUwP8UFML/FBTD/xUVyP8WFsn/FRXE/xQUw/8UFMH/ExO//xMT
+ vv8QELL7ERF3QxkZdCgXF771ExPH/xUVyPwVFcn9FhbL/RcXzP0XF8z9FxfM/RcXy/0XF8v9FhbJ/RUV
+ yPwTE8f/Fxe+9RkZdykAAAAAIyOtghsbx/8ZGcj+GRnJ/xoayf8aGsn/GhrK/xoayv8aGsn/GhrJ/xkZ
+ yf8ZGcj+GxvH/yMjrYQAAAAAAADHAQAAAAAzM51FLCyscCoqrGwqKqxtKSmsbSoqrG0qKqxtKSmsbSoq
+ rG0qKqxsLCyscDMznUUAAAAAAAAAAP//AADAAwAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIAB
+ AACAAQAAgAEAAIABAACAAQAAgAEAAP//AAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrCR0dHSMWFhY3GBgYORgYGDkYGBg5GBgYORgY
+ GDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5FxcXNx4e
+ HiQuLi4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhIARYWFis7OzuVkJCQ2ampqeqqqqrsqqqq7Kqq
+ quyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqq
+ quypqanqkZGR2j09PZcXFxcsUFBQAQAAAAAAAAAAAAAAAAAAAAASEhIuhISEytvb2/7W1tb/19fX/9jY
+ 2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Y2Nj/2NjY/9jY
+ 2P/Y2Nj/2NjY/9fX1//W1tb/29vb/oeHh8sTExMvAAAAAAAAAAAAAAAAPDw8DGtra6zZ2dn/2dnZ/9ra
+ 2v/b29v/29vb/9vb2//c3Nz/3Nzc/9zc3P/c3Nz/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3Nzc/9zc
+ 3P/c3Nz/3Nzc/9vb2//b29v/29vb/9ra2v/Z2dn/2dnZ/21tba5DQ0MNAAAAAAAAAAAiIiIx1NXU9tna
+ 2f/c3Nz/3d3d/93e3f/e3t7/3t7e/9/f3//f39//39/f/9/g3//g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg
+ 4P/g4OD/39/f/9/f3//f39//3t/e/97e3v/d3t3/3d3d/9zc3P/Z2tn/1dXV9icnJzMAAAAAAAAAAFhZ
+ WFzf4N//3Nzc/97e3v/f39//39/f/9/g3//g4OD/4ODg/+Hh4f/h4eH/4eHh/+Li4v/i4uL/4uLi/+Li
+ 4v/i4uL/4uLi/+Hi4f/h4eH/4eHh/+Dg4P/g4OD/3+Df/9/f3//f39//3t7e/9zc3P/f39//XV1dXQAA
+ AAAAAAAAZmZmZdvc2//e3t7/3+Df/+Dg4P/g4eD/4eHh/+Hi4f/i4uL/4uPi/+Pj4//j4+P/5OTk/+Tk
+ 5P/k5OT/5OTk/+Tk5P/k5OT/4+Pj/+Pj4//j4+P/4uLi/+Li4v/h4eH/4eHh/+Dg4P/f4N//3t7e/9vb
+ 2/9wcHBoAAAAAAAAAABoaGhl3d3d/9/f3//h4eH/4eLh/+Li4v/j4+P/4+Pj/+Tk5P/k5OT/5eXl/+Xl
+ 5f/l5uX/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eXl/+Tk5P/k5OT/4+Pj/+Pj4//i4uL/4uLi/+Hh
+ 4f/f39//3N3c/3Nzc2kAAAAAAAAAAGhoaGXe3t7/4ODg/+Li4v/j4+P/4+Pj/+Tk5P/l5eX/5eXl/+bm
+ 5v/m5+b/5+fn/+fn5//n6Of/6Ojo/+jo6P/o6Oj/5+fn/+fn5//n5+f/5ubm/+Xl5f/l5eX/5OTk/+Pk
+ 4//j4+P/4uLi/+Dg4P/e3t7/c3NzaQAAAAAAAAAAaGhoZd/g3//i4uL/5OTk/+Tl5P/l5eX/5ebl/+bn
+ 5v/n5+f/5+jn/+jp6P/p6en/7Ozs/8LCwv+Tk5P/ioqK/66urv/o6ej/6enp/+jp6P/o6Oj/5+jn/+bn
+ 5v/m5ub/5ebl/+Tl5P/k5OT/4uLi/9/g3/9zdHNpAAAAAAAAAABoaWhl4eLh/+Pk4//m5ub/5ubm/+fn
+ 5//n6Of/6Ojo/+np6f/p6un/6urq/8bGxv8yMjL/AAAA/wAAAP8AAAD/AAAA/xMTE/+ZmZn/7Ozs/+rq
+ 6v/p6en/6Ojo/+jo6P/n5+f/5ubm/+bm5v/k5OT/4eHh/3R0dGkAAAAAAAAAAGhpaGXj4+P/5eXl/+fn
+ 5//n6Of/6Ojo/+np6f/q6ur/6urq/+vr6//Dw8P/DAwM/wAAAP8AAAD/Gxsb/ygoKP8BAQH/AAAA/wAA
+ AP+FhYX/7O3s/+rr6v/q6ur/6enp/+jo6P/o6Oj/5+fn/+Xl5f/i4+L/dHR0aQAAAAAAAAAAYWFhZeTl
+ 5P/m5+b/6Ono/+np6f/p6un/6uvq/+vr6//s7Oz/7e7t/ycnJ/8AAAD/Ghoa/7S0tP/m5ub/5OTk/9HR
+ 0f9GRkb/AAAA/wICAv/IyMj/7Ozs/+vs6//q6+r/6urq/+nq6f/o6ej/5+fn/+Tk5P9sbGxpAAAAAAAA
+ AAA9Pj1lj4+P/5OTk/+VlZX/lpaW/5eXl/+YmJj/mZmZ/5qamv92dnb/AAAA/wEBAf+/wL//3Nzc/+Tk
+ 5P/l5eX/3d3d/+Li4v8mJib/AAAA/0ZGRv+ampr/mZmZ/5iYmP+Xl5f/lpaW/5WVlf+Tk5P/j4+P/0ZG
+ RmoAAAAAAAAAAAwMDGUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Nzc3/+fn
+ 5//q6ur/7O3s/+zt7P/v7+//39/f/4WFhf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8AAAD/EBAQagAAAAAAAAAAAwMHZQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP9NTU3/5ufm//Lz8v/z9PP/8/Tz//X19f/l5eX/nZ2d/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8AAAD/AAAA/wAAAP8GBgpqAAAAAAAAAAAAABZlAQEk/wEBJ/8CAin/AgIq/wICKv8CAiv/AgIs/wIC
+ LP8BAR3/AAAA/xwcHP/w8PD/6+zr//r6+v/6+vr/9PT0/+vr6/9lZWX/AAAA/wAAD/8CAi3/AgIs/wIC
+ K/8CAir/AgIq/wICKf8BASf/AQEl/wUFG2oAAAAAAAAAAAICQGUGBpL/Bwec/wgIo/8JCaf/CQmq/wkJ
+ rf8JCa//Cgqz/wkJqP8AAAL/AAAA/4CAgP/y8/L/6+zr/+3t7f/u7u7/xMTE/wcHB/8AAAD/BgZz/woK
+ s/8JCbD/CQmt/wkJqv8JCaj/CAik/wcHnf8HB5P/Dg5MagAAAAAAAAAAAwNHZQgIk/8JCZ3/Cgqj/wsL
+ p/8LC6n/Cwus/wsLr/8MDLL/DAy2/wYGW/8AAAD/AAAA/1JSUv+sraz/tra2/3h4eP8KCgr/AAAA/wIC
+ Iv8MDLb/DAyy/wsLsP8LC63/Cwuq/wsLp/8KCqT/CQmd/wgIk/8PD1VrAAAAAAAAAAAEBE1lCQmY/woK
+ ov8LC6j/DAyr/wwMrf8MDLD/DAyy/w0Ntf8NDbf/Dg67/wUFSv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8CAiH/DQ2q/w0NuP8NDbX/DQ2z/wwMsP8MDK7/DAyr/wsLqP8KCqL/CQmZ/xAQWmsAAAAAAAAAAAQE
+ UGUKCp7/Cwum/wwMrP8NDa//DQ2w/w0Ns/8ODrX/Dg63/w4Ouf8ODrv/Dw/A/wwMiv8FBTj/AAAG/wAA
+ AP8DAyb/CQls/w8Pu/8PD7z/Dg66/w4OuP8ODrX/DQ2z/w0Nsf8NDa//DAys/wsLp/8KCp7/ERFeawAA
+ AAAAAAAABQVTZQsLpP8MDKv/DQ2w/w4Os/8ODrT/Dg62/w8PuP8PD7r/Dw+8/w8Pvf8QEL//EBDA/xER
+ w/8SEsn/ERHJ/xERxf8QEMD/EBC//w8Pvv8PD7z/Dw+6/w8PuP8ODrf/Dg61/w4Os/8NDbH/DAyr/wsL
+ pP8SEmFrAAAAAAAAAAAGBlZlDAyq/w4OsP8PD7X/Dw+3/w8PuP8QELr/EBC7/xAQvf8REb7/ERHA/xER
+ wf8REcL/EhLC/xISw/8SEsP/EhLC/xERwv8REcH/ERHA/xERvv8QEL3/EBC7/xAQuv8QELj/Dw+3/w8P
+ tf8ODrD/DAyq/xMTZWsAAAAAAAAAAAcHWmUODrD/EBC2/xERuv8REbz/ERG9/xISvv8SEr//EhLA/xMT
+ wf8TE8P/ExPD/xMTxP8TE8X/FBTF/xQUxf8UFMX/ExPE/xMTxP8TE8P/ExPC/xISwf8SEr//EhK+/xER
+ vf8REbz/ERG6/xAQtv8ODrD/FBRpawAAAAAAAAAACAhcYxAQtf8SErv/ExO+/xQUwP8UFMD/FBTB/xUV
+ wv8VFcP/FRXE/xUVxf8WFsb/FhbG/xYWx/8WFsf/FhbH/xYWx/8WFsf/FhbG/xYWxf8VFcT/FRXD/xUV
+ wv8UFMH/FBTB/xQUwP8TE77/EhK7/xAQtf8TE2hoAAAAAAAAAAAQEFNUFRXC/xMTv/8UFMP/FRXE/xUV
+ xP8VFcX/FRXG/xYWx/8WFsf/FhbI/xYWyf8XF8n/FxfK/xcXyv8XF8r/FxfK/xcXyf8XF8n/FhbI/xYW
+ yP8WFsf/FhbG/xUVxf8VFcT/FRXE/xQUw/8TE7//FRXB/xAQV1UAAAAAAAAAAA0NPxkjI8byFBTD/xUV
+ x/8WFsj/FxfJ/xcXyf8XF8r/FxfK/xcXy/8YGMz/GBjM/xgYzP8YGM3/GBjN/xgYzf8YGM3/GBjM/xgY
+ zP8YGMz/GBjL/xcXy/8XF8r/FxfJ/xcXyf8WFsj/FRXH/xQUw/8jI8f0Dg5GGwAAAAAAAAAAFhZxAiUl
+ eIUZGcr/FBTI/xUVyv8WFsv/FhbM/xYWzP8WFsz/FhbN/xcXzf8XF83/FxfN/xcXzv8XF87/FxfO/xcX
+ zv8XF87/FxfN/xcXzf8WFs3/FhbM/xYWzP8WFsz/FhbL/xUVyv8UFMj/GBjJ/yYmeogWFnYCAAAAAAAA
+ AAAAAAAAGBh1BzMzk50kJNP+FxfK/xgYzP8YGMz/GBjN/xgYzf8YGM3/GBjN/xgYzf8ZGc7/GRnO/xkZ
+ zv8ZGc7/GRnO/xkZzv8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzP8YGMz/FxfK/yMj0v4zM5WfFBRkBwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAHBx7Ay0tdkg3N5emMTGpxSwsp8gsLKfILCynyCwsp8gsLKfILCynyCws
+ p8gsLKfILCynyCwsp8gsLKfILCynyCwsp8gsLKfILCynyCwsp8gsLKfILCynyDExqcU2NpenLi54Shsb
+ ewMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////8AAAD+AAAAfAAAADwAAAA8AAAAPAAAADwAAAA8AA
+ AAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA
+ AAPAAAADwAAAA8AAAAPAAAAD4AAAB/gAAB//////
+
+
+
\ No newline at end of file
diff --git a/Subforms/PKM Editors/SuperTrainingEditor.Designer.cs b/Subforms/PKM Editors/SuperTrainingEditor.Designer.cs
new file mode 100644
index 000000000..0fe2c9b88
--- /dev/null
+++ b/Subforms/PKM Editors/SuperTrainingEditor.Designer.cs
@@ -0,0 +1,270 @@
+namespace PKHeX
+{
+ partial class SuperTrainingEditor
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SuperTrainingEditor));
+ this.B_Save = new System.Windows.Forms.Button();
+ this.B_Cancel = new System.Windows.Forms.Button();
+ this.B_None = new System.Windows.Forms.Button();
+ this.B_All = new System.Windows.Forms.Button();
+ this.PAN_Training = new System.Windows.Forms.Panel();
+ this.SPLIT_Training = new System.Windows.Forms.SplitContainer();
+ this.TLP_SuperTrain = new System.Windows.Forms.TableLayoutPanel();
+ this.CHK_Secret = new System.Windows.Forms.CheckBox();
+ this.CB_Bag = new System.Windows.Forms.ComboBox();
+ this.L_Bag = new System.Windows.Forms.Label();
+ this.NUD_BagHits = new System.Windows.Forms.NumericUpDown();
+ this.L_Hits = new System.Windows.Forms.Label();
+ this.TLP_DistSuperTrain = new System.Windows.Forms.TableLayoutPanel();
+ this.PAN_Training.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.SPLIT_Training)).BeginInit();
+ this.SPLIT_Training.Panel1.SuspendLayout();
+ this.SPLIT_Training.Panel2.SuspendLayout();
+ this.SPLIT_Training.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_BagHits)).BeginInit();
+ this.SuspendLayout();
+ //
+ // B_Save
+ //
+ this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.B_Save.Location = new System.Drawing.Point(318, 249);
+ this.B_Save.Name = "B_Save";
+ this.B_Save.Size = new System.Drawing.Size(90, 23);
+ this.B_Save.TabIndex = 1;
+ this.B_Save.Text = "Save";
+ this.B_Save.UseVisualStyleBackColor = true;
+ this.B_Save.Click += new System.EventHandler(this.B_Save_Click);
+ //
+ // B_Cancel
+ //
+ this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.B_Cancel.Location = new System.Drawing.Point(222, 249);
+ this.B_Cancel.Name = "B_Cancel";
+ this.B_Cancel.Size = new System.Drawing.Size(90, 23);
+ this.B_Cancel.TabIndex = 2;
+ this.B_Cancel.Text = "Cancel";
+ this.B_Cancel.UseVisualStyleBackColor = true;
+ this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click);
+ //
+ // B_None
+ //
+ this.B_None.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.B_None.Location = new System.Drawing.Point(108, 249);
+ this.B_None.Name = "B_None";
+ this.B_None.Size = new System.Drawing.Size(90, 23);
+ this.B_None.TabIndex = 5;
+ this.B_None.Text = "Remove All";
+ this.B_None.UseVisualStyleBackColor = true;
+ this.B_None.Click += new System.EventHandler(this.B_None_Click);
+ //
+ // B_All
+ //
+ this.B_All.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+ this.B_All.Location = new System.Drawing.Point(12, 249);
+ this.B_All.Name = "B_All";
+ this.B_All.Size = new System.Drawing.Size(90, 23);
+ this.B_All.TabIndex = 4;
+ this.B_All.Text = "Give All";
+ this.B_All.UseVisualStyleBackColor = true;
+ this.B_All.Click += new System.EventHandler(this.B_All_Click);
+ //
+ // PAN_Training
+ //
+ this.PAN_Training.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.PAN_Training.Controls.Add(this.SPLIT_Training);
+ this.PAN_Training.Location = new System.Drawing.Point(12, 12);
+ this.PAN_Training.Name = "PAN_Training";
+ this.PAN_Training.Size = new System.Drawing.Size(396, 231);
+ this.PAN_Training.TabIndex = 6;
+ //
+ // SPLIT_Training
+ //
+ this.SPLIT_Training.BackColor = System.Drawing.SystemColors.Window;
+ this.SPLIT_Training.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.SPLIT_Training.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.SPLIT_Training.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
+ this.SPLIT_Training.IsSplitterFixed = true;
+ this.SPLIT_Training.Location = new System.Drawing.Point(0, 0);
+ this.SPLIT_Training.Name = "SPLIT_Training";
+ //
+ // SPLIT_Training.Panel1
+ //
+ this.SPLIT_Training.Panel1.Controls.Add(this.TLP_SuperTrain);
+ this.SPLIT_Training.Panel1.RightToLeft = System.Windows.Forms.RightToLeft.No;
+ this.SPLIT_Training.Panel1MinSize = 1;
+ //
+ // SPLIT_Training.Panel2
+ //
+ this.SPLIT_Training.Panel2.Controls.Add(this.CHK_Secret);
+ this.SPLIT_Training.Panel2.Controls.Add(this.CB_Bag);
+ this.SPLIT_Training.Panel2.Controls.Add(this.L_Bag);
+ this.SPLIT_Training.Panel2.Controls.Add(this.NUD_BagHits);
+ this.SPLIT_Training.Panel2.Controls.Add(this.L_Hits);
+ this.SPLIT_Training.Panel2.Controls.Add(this.TLP_DistSuperTrain);
+ this.SPLIT_Training.Panel2.RightToLeft = System.Windows.Forms.RightToLeft.No;
+ this.SPLIT_Training.Panel2MinSize = 1;
+ this.SPLIT_Training.Size = new System.Drawing.Size(396, 231);
+ this.SPLIT_Training.SplitterDistance = 175;
+ this.SPLIT_Training.TabIndex = 4;
+ //
+ // TLP_SuperTrain
+ //
+ this.TLP_SuperTrain.AutoScroll = true;
+ this.TLP_SuperTrain.ColumnCount = 2;
+ this.TLP_SuperTrain.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+ this.TLP_SuperTrain.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+ this.TLP_SuperTrain.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+ this.TLP_SuperTrain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.TLP_SuperTrain.Location = new System.Drawing.Point(0, 0);
+ this.TLP_SuperTrain.Name = "TLP_SuperTrain";
+ this.TLP_SuperTrain.RowCount = 1;
+ this.TLP_SuperTrain.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ this.TLP_SuperTrain.Size = new System.Drawing.Size(173, 229);
+ this.TLP_SuperTrain.TabIndex = 4;
+ //
+ // CHK_Secret
+ //
+ this.CHK_Secret.AutoSize = true;
+ this.CHK_Secret.Location = new System.Drawing.Point(3, 2);
+ this.CHK_Secret.Name = "CHK_Secret";
+ this.CHK_Secret.Size = new System.Drawing.Size(171, 17);
+ this.CHK_Secret.TabIndex = 36;
+ this.CHK_Secret.Text = "Secret Super Training Enabled";
+ this.CHK_Secret.UseVisualStyleBackColor = true;
+ this.CHK_Secret.CheckedChanged += new System.EventHandler(this.CHK_Secret_CheckedChanged);
+ //
+ // CB_Bag
+ //
+ this.CB_Bag.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.CB_Bag.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.CB_Bag.FormattingEnabled = true;
+ this.CB_Bag.Location = new System.Drawing.Point(46, 50);
+ this.CB_Bag.Name = "CB_Bag";
+ this.CB_Bag.Size = new System.Drawing.Size(138, 21);
+ this.CB_Bag.TabIndex = 35;
+ //
+ // L_Bag
+ //
+ this.L_Bag.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.L_Bag.Location = new System.Drawing.Point(31, 34);
+ this.L_Bag.Name = "L_Bag";
+ this.L_Bag.Size = new System.Drawing.Size(100, 13);
+ this.L_Bag.TabIndex = 34;
+ this.L_Bag.Text = "Last Used Bag:";
+ this.L_Bag.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ //
+ // NUD_BagHits
+ //
+ this.NUD_BagHits.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.NUD_BagHits.Location = new System.Drawing.Point(134, 75);
+ this.NUD_BagHits.Maximum = new decimal(new int[] {
+ 255,
+ 0,
+ 0,
+ 0});
+ this.NUD_BagHits.Name = "NUD_BagHits";
+ this.NUD_BagHits.Size = new System.Drawing.Size(50, 20);
+ this.NUD_BagHits.TabIndex = 33;
+ this.NUD_BagHits.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
+ this.NUD_BagHits.Value = new decimal(new int[] {
+ 255,
+ 0,
+ 0,
+ 0});
+ //
+ // L_Hits
+ //
+ this.L_Hits.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.L_Hits.Location = new System.Drawing.Point(31, 77);
+ this.L_Hits.Name = "L_Hits";
+ this.L_Hits.Size = new System.Drawing.Size(100, 13);
+ this.L_Hits.TabIndex = 32;
+ this.L_Hits.Text = "Hits Remaining:";
+ this.L_Hits.TextAlign = System.Drawing.ContentAlignment.TopRight;
+ //
+ // TLP_DistSuperTrain
+ //
+ this.TLP_DistSuperTrain.AutoScroll = true;
+ this.TLP_DistSuperTrain.ColumnCount = 2;
+ this.TLP_DistSuperTrain.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+ this.TLP_DistSuperTrain.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+ this.TLP_DistSuperTrain.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+ this.TLP_DistSuperTrain.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.TLP_DistSuperTrain.Location = new System.Drawing.Point(0, 101);
+ this.TLP_DistSuperTrain.Name = "TLP_DistSuperTrain";
+ this.TLP_DistSuperTrain.RowCount = 1;
+ this.TLP_DistSuperTrain.RowStyles.Add(new System.Windows.Forms.RowStyle());
+ this.TLP_DistSuperTrain.Size = new System.Drawing.Size(215, 128);
+ this.TLP_DistSuperTrain.TabIndex = 3;
+ //
+ // SuperTrainingEditor
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(424, 281);
+ this.Controls.Add(this.PAN_Training);
+ this.Controls.Add(this.B_None);
+ this.Controls.Add(this.B_All);
+ this.Controls.Add(this.B_Cancel);
+ this.Controls.Add(this.B_Save);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.MaximizeBox = false;
+ this.MinimumSize = new System.Drawing.Size(440, 320);
+ this.Name = "SuperTrainingEditor";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "Ribbon Editor";
+ this.PAN_Training.ResumeLayout(false);
+ this.SPLIT_Training.Panel1.ResumeLayout(false);
+ this.SPLIT_Training.Panel2.ResumeLayout(false);
+ this.SPLIT_Training.Panel2.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.SPLIT_Training)).EndInit();
+ this.SPLIT_Training.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.NUD_BagHits)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+ private System.Windows.Forms.Button B_Save;
+ private System.Windows.Forms.Button B_Cancel;
+ private System.Windows.Forms.Button B_None;
+ private System.Windows.Forms.Button B_All;
+ private System.Windows.Forms.Panel PAN_Training;
+ private System.Windows.Forms.TableLayoutPanel TLP_DistSuperTrain;
+ private System.Windows.Forms.Label L_Hits;
+ private System.Windows.Forms.NumericUpDown NUD_BagHits;
+ private System.Windows.Forms.Label L_Bag;
+ private System.Windows.Forms.ComboBox CB_Bag;
+ private System.Windows.Forms.CheckBox CHK_Secret;
+ private System.Windows.Forms.TableLayoutPanel TLP_SuperTrain;
+ private System.Windows.Forms.SplitContainer SPLIT_Training;
+ }
+}
\ No newline at end of file
diff --git a/Subforms/PKM Editors/SuperTrainingEditor.cs b/Subforms/PKM Editors/SuperTrainingEditor.cs
new file mode 100644
index 000000000..0dc12963e
--- /dev/null
+++ b/Subforms/PKM Editors/SuperTrainingEditor.cs
@@ -0,0 +1,154 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+
+namespace PKHeX
+{
+ public partial class SuperTrainingEditor : Form
+ {
+ public SuperTrainingEditor()
+ {
+ InitializeComponent();
+ int vertScrollWidth = SystemInformation.VerticalScrollBarWidth;
+ TLP_SuperTrain.Padding = TLP_DistSuperTrain.Padding = new Padding(0, 0, vertScrollWidth, 0);
+
+ populateRegimens("SuperTrain", TLP_SuperTrain, reglist);
+ populateRegimens("DistSuperTrain", TLP_DistSuperTrain, distlist);
+
+ CB_Bag.Items.Clear();
+ CB_Bag.Items.Add("---");
+ for (int i = 1; i < Main.trainingbags.Length - 1; i++)
+ CB_Bag.Items.Add(Main.trainingbags[i]);
+
+ if (pkm is PK6)
+ {
+ PK6 pk6 = (PK6)pkm;
+ CB_Bag.SelectedIndex = pk6.TrainingBag;
+ NUD_BagHits.Value = pk6.TrainingBagHits;
+ }
+ else
+ {
+ CB_Bag.Visible = NUD_BagHits.Visible = false;
+ }
+ }
+
+ private readonly List reglist = new List();
+ private readonly List distlist = new List();
+ private readonly PKM pkm = Main.pkm.Clone();
+ private const string PrefixLabel = "L_";
+ private const string PrefixCHK = "CHK_";
+
+ private void B_Cancel_Click(object sender, EventArgs e)
+ {
+ Close();
+ }
+ private void B_Save_Click(object sender, EventArgs e)
+ {
+ save();
+ Close();
+ }
+
+ private void populateRegimens(string Type, TableLayoutPanel TLP, List list)
+ {
+ // Get a list of all Regimen Attregutes in the PKM
+ var RegimenNames = ReflectUtil.getPropertiesStartWithPrefix(pkm.GetType(), Type);
+ list.AddRange(from RegimenName in RegimenNames
+ let RegimenValue = ReflectUtil.GetValue(pkm, RegimenName)
+ where RegimenValue is bool
+ select new RegimenInfo(RegimenName, (bool) RegimenValue));
+ TLP.ColumnCount = 2;
+ TLP.RowCount = 0;
+
+ // Add Regimens
+ foreach (var reg in list)
+ addRegimenChoice(reg);
+
+ // Force auto-size
+ foreach (RowStyle style in TLP.RowStyles)
+ style.SizeType = SizeType.AutoSize;
+ foreach (ColumnStyle style in TLP.ColumnStyles)
+ style.SizeType = SizeType.AutoSize;
+ }
+ private void addRegimenChoice(RegimenInfo reg)
+ {
+ // Get row we add to
+ int row = TLP_SuperTrain.RowCount;
+ TLP_SuperTrain.RowCount++;
+
+ var label = new Label
+ {
+ Anchor = AnchorStyles.Left,
+ Name = PrefixLabel + reg.Name,
+ Text = reg.Name,
+ Padding = Padding.Empty,
+ AutoSize = true,
+ };
+ TLP_SuperTrain.Controls.Add(label, 1, row);
+
+ var chk = new CheckBox
+ {
+ Anchor = AnchorStyles.Right,
+ Name = PrefixCHK + reg.Name,
+ AutoSize = true,
+ Padding = Padding.Empty,
+ };
+ chk.CheckedChanged += (sender, e) => { reg.CompletedRegimen = chk.Checked; };
+ chk.Checked = reg.CompletedRegimen;
+ TLP_SuperTrain.Controls.Add(chk, 0, row);
+ }
+
+ private void save()
+ {
+ foreach (var reg in reglist)
+ ReflectUtil.SetValue(pkm, reg.Name, reg.CompletedRegimen);
+ foreach (var reg in distlist)
+ ReflectUtil.SetValue(pkm, reg.Name, reg.CompletedRegimen);
+
+ if (CB_Bag.Visible)
+ {
+ (pkm as PK6).TrainingBag = CB_Bag.SelectedIndex;
+ (pkm as PK6).TrainingBagHits = (int)NUD_BagHits.Value;
+ }
+
+ Main.pkm = pkm;
+ }
+
+ private class RegimenInfo
+ {
+ public readonly string Name;
+ public bool CompletedRegimen;
+ public RegimenInfo(string name, bool completedRegimen)
+ {
+ Name = name;
+ CompletedRegimen = completedRegimen;
+ }
+ }
+
+ private void B_All_Click(object sender, EventArgs e)
+ {
+ CHK_Secret.Checked = true;
+ foreach (var c in TLP_SuperTrain.Controls.OfType())
+ c.Checked = true;
+ foreach (var c in TLP_DistSuperTrain.Controls.OfType())
+ c.Checked = true;
+ }
+ private void B_None_Click(object sender, EventArgs e)
+ {
+ CHK_Secret.Checked = false;
+ foreach (var c in TLP_SuperTrain.Controls.OfType())
+ c.Checked = false;
+ foreach (var c in TLP_DistSuperTrain.Controls.OfType())
+ c.Checked = false;
+ }
+ private void CHK_Secret_CheckedChanged(object sender, EventArgs e)
+ {
+ foreach (var c in TLP_SuperTrain.Controls.OfType().Where(chk => Convert.ToInt16(chk.Name[10]) > 4))
+ {
+ c.Enabled = CHK_Secret.Checked;
+ if (!CHK_Secret.Checked)
+ c.Checked = false;
+ }
+ }
+ }
+}
diff --git a/Subforms/PKM Editors/SuperTrainingEditor.resx b/Subforms/PKM Editors/SuperTrainingEditor.resx
new file mode 100644
index 000000000..603f660be
--- /dev/null
+++ b/Subforms/PKM Editors/SuperTrainingEditor.resx
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAE
+ AAAAAAAAAAAAAAAAAAAAAAAAIyMjAQAAAAALCwsPJiYmJysrKycqKionKSkpJykpKScpKSknKioqJyoq
+ KicrKysnJycnJw0ODQ8AAAAAJiYmAQAAAABpaWlHq6ur17+/v+6+vr7svr6+7b6+vu2+vr7tvr6+7b6+
+ vu2+vr7tvr6+7L+/v+6rq6vXampqSAAAAAAoKSgXvr++3eLi4v/g4OD94eHh/+Hh4f/i4uL/4uLi/+Li
+ 4v/i4uL/4eHh/+Dh4P/g4OD94uLi/7+/v90sLCwXfn5+PNna2frg4OD/39/f/uHh4f7h4eH+39/f/uDg
+ 4P7g4OD+39/f/uHh4f7h4OH+39/f/t/g3//a2tr6g4ODPoOCgz7X19f64+Pj/+Li4v7k5OT/4+Tj//Ly
+ 8v/19fX/9PT0//T09P/k5OT/5OTk/+Pj4/7j4+P/19jX+4qLikCDhIM+2tra++Xl5f/k5eT+5OTk//Lz
+ 8v+urq7/RUVF/z4+Pv+Zmpn/8fHx/+Xm5f/k5eT+5eXl/9ra2vyLi4tAhYWFPuXm5vvx8vP/7+/w/v//
+ //+sra3/AgIC/15eXv9tbG3/BQUF/4yMjP//////7+/w/vHy8//l5ub8jY2NQC4uLD5LS0f7UFBL/09P
+ Sv5YWVP/FBUS/29wcP///////////5SUlP8PDw//U1NO/1BQS/5PT0r/S0tH/DIyMEAAAAs+AAAM+wAA
+ Dv8AAA/+AwMS/wAAAP+UlJX///////////+3t7n/AAAA/wAAD/8BAQ/+AAAO/wAADPwCAg5ABARSPgoK
+ k/sNDab/DQ2o/hAQvP8CAmj/IiIW/7Kzrv/Cw8D/NDQm/wAATf8QELz/DQ2q/gwMp/8LC5T8Dg5bQAUF
+ Xj4KCpz7DQ2u/w0NsP4NDbX/Dw+//wUFYf8CAhL/AwMP/wMDTf8ODrj/Dg64/w0NsP4MDK7/Cwud/A8P
+ aEEGBmU9DAyl+w4Otf8ODrf+Dw+6/xAQvv8TE8v/EhK+/xAQvP8TE8v/EBDA/w8Puf8PD7f+Dg61/w0N
+ pvsREW9ACAhtQA8PsfsTE77/ExO//xQUwP8UFML/FBTD/xUVyP8WFsn/FRXE/xQUw/8UFMH/ExO//xMT
+ vv8QELL7ERF3QxkZdCgXF771ExPH/xUVyPwVFcn9FhbL/RcXzP0XF8z9FxfM/RcXy/0XF8v9FhbJ/RUV
+ yPwTE8f/Fxe+9RkZdykAAAAAIyOtghsbx/8ZGcj+GRnJ/xoayf8aGsn/GhrK/xoayv8aGsn/GhrJ/xkZ
+ yf8ZGcj+GxvH/yMjrYQAAAAAAADHAQAAAAAzM51FLCyscCoqrGwqKqxtKSmsbSoqrG0qKqxtKSmsbSoq
+ rG0qKqxsLCyscDMznUUAAAAAAAAAAP//AADAAwAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIAB
+ AACAAQAAgAEAAIABAACAAQAAgAEAAP//AAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrCR0dHSMWFhY3GBgYORgYGDkYGBg5GBgYORgY
+ GDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5GBgYORgYGDkYGBg5FxcXNx4e
+ HiQuLi4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhIARYWFis7OzuVkJCQ2ampqeqqqqrsqqqq7Kqq
+ quyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqqquyqqqrsqqqq7Kqq
+ quypqanqkZGR2j09PZcXFxcsUFBQAQAAAAAAAAAAAAAAAAAAAAASEhIuhISEytvb2/7W1tb/19fX/9jY
+ 2P/Y2Nj/2NjY/9jY2P/Y2Nj/2NjY/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Y2Nj/2NjY/9jY
+ 2P/Y2Nj/2NjY/9fX1//W1tb/29vb/oeHh8sTExMvAAAAAAAAAAAAAAAAPDw8DGtra6zZ2dn/2dnZ/9ra
+ 2v/b29v/29vb/9vb2//c3Nz/3Nzc/9zc3P/c3Nz/3d3d/93d3f/d3d3/3d3d/93d3f/d3d3/3Nzc/9zc
+ 3P/c3Nz/3Nzc/9vb2//b29v/29vb/9ra2v/Z2dn/2dnZ/21tba5DQ0MNAAAAAAAAAAAiIiIx1NXU9tna
+ 2f/c3Nz/3d3d/93e3f/e3t7/3t7e/9/f3//f39//39/f/9/g3//g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg
+ 4P/g4OD/39/f/9/f3//f39//3t/e/97e3v/d3t3/3d3d/9zc3P/Z2tn/1dXV9icnJzMAAAAAAAAAAFhZ
+ WFzf4N//3Nzc/97e3v/f39//39/f/9/g3//g4OD/4ODg/+Hh4f/h4eH/4eHh/+Li4v/i4uL/4uLi/+Li
+ 4v/i4uL/4uLi/+Hi4f/h4eH/4eHh/+Dg4P/g4OD/3+Df/9/f3//f39//3t7e/9zc3P/f39//XV1dXQAA
+ AAAAAAAAZmZmZdvc2//e3t7/3+Df/+Dg4P/g4eD/4eHh/+Hi4f/i4uL/4uPi/+Pj4//j4+P/5OTk/+Tk
+ 5P/k5OT/5OTk/+Tk5P/k5OT/4+Pj/+Pj4//j4+P/4uLi/+Li4v/h4eH/4eHh/+Dg4P/f4N//3t7e/9vb
+ 2/9wcHBoAAAAAAAAAABoaGhl3d3d/9/f3//h4eH/4eLh/+Li4v/j4+P/4+Pj/+Tk5P/k5OT/5eXl/+Xl
+ 5f/l5uX/5ubm/+bm5v/m5ub/5ubm/+bm5v/l5eX/5eXl/+Tk5P/k5OT/4+Pj/+Pj4//i4uL/4uLi/+Hh
+ 4f/f39//3N3c/3Nzc2kAAAAAAAAAAGhoaGXe3t7/4ODg/+Li4v/j4+P/4+Pj/+Tk5P/l5eX/5eXl/+bm
+ 5v/m5+b/5+fn/+fn5//n6Of/6Ojo/+jo6P/o6Oj/5+fn/+fn5//n5+f/5ubm/+Xl5f/l5eX/5OTk/+Pk
+ 4//j4+P/4uLi/+Dg4P/e3t7/c3NzaQAAAAAAAAAAaGhoZd/g3//i4uL/5OTk/+Tl5P/l5eX/5ebl/+bn
+ 5v/n5+f/5+jn/+jp6P/p6en/7Ozs/8LCwv+Tk5P/ioqK/66urv/o6ej/6enp/+jp6P/o6Oj/5+jn/+bn
+ 5v/m5ub/5ebl/+Tl5P/k5OT/4uLi/9/g3/9zdHNpAAAAAAAAAABoaWhl4eLh/+Pk4//m5ub/5ubm/+fn
+ 5//n6Of/6Ojo/+np6f/p6un/6urq/8bGxv8yMjL/AAAA/wAAAP8AAAD/AAAA/xMTE/+ZmZn/7Ozs/+rq
+ 6v/p6en/6Ojo/+jo6P/n5+f/5ubm/+bm5v/k5OT/4eHh/3R0dGkAAAAAAAAAAGhpaGXj4+P/5eXl/+fn
+ 5//n6Of/6Ojo/+np6f/q6ur/6urq/+vr6//Dw8P/DAwM/wAAAP8AAAD/Gxsb/ygoKP8BAQH/AAAA/wAA
+ AP+FhYX/7O3s/+rr6v/q6ur/6enp/+jo6P/o6Oj/5+fn/+Xl5f/i4+L/dHR0aQAAAAAAAAAAYWFhZeTl
+ 5P/m5+b/6Ono/+np6f/p6un/6uvq/+vr6//s7Oz/7e7t/ycnJ/8AAAD/Ghoa/7S0tP/m5ub/5OTk/9HR
+ 0f9GRkb/AAAA/wICAv/IyMj/7Ozs/+vs6//q6+r/6urq/+nq6f/o6ej/5+fn/+Tk5P9sbGxpAAAAAAAA
+ AAA9Pj1lj4+P/5OTk/+VlZX/lpaW/5eXl/+YmJj/mZmZ/5qamv92dnb/AAAA/wEBAf+/wL//3Nzc/+Tk
+ 5P/l5eX/3d3d/+Li4v8mJib/AAAA/0ZGRv+ampr/mZmZ/5iYmP+Xl5f/lpaW/5WVlf+Tk5P/j4+P/0ZG
+ RmoAAAAAAAAAAAwMDGUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Nzc3/+fn
+ 5//q6ur/7O3s/+zt7P/v7+//39/f/4WFhf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8AAAD/EBAQagAAAAAAAAAAAwMHZQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP9NTU3/5ufm//Lz8v/z9PP/8/Tz//X19f/l5eX/nZ2d/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8AAAD/AAAA/wAAAP8GBgpqAAAAAAAAAAAAABZlAQEk/wEBJ/8CAin/AgIq/wICKv8CAiv/AgIs/wIC
+ LP8BAR3/AAAA/xwcHP/w8PD/6+zr//r6+v/6+vr/9PT0/+vr6/9lZWX/AAAA/wAAD/8CAi3/AgIs/wIC
+ K/8CAir/AgIq/wICKf8BASf/AQEl/wUFG2oAAAAAAAAAAAICQGUGBpL/Bwec/wgIo/8JCaf/CQmq/wkJ
+ rf8JCa//Cgqz/wkJqP8AAAL/AAAA/4CAgP/y8/L/6+zr/+3t7f/u7u7/xMTE/wcHB/8AAAD/BgZz/woK
+ s/8JCbD/CQmt/wkJqv8JCaj/CAik/wcHnf8HB5P/Dg5MagAAAAAAAAAAAwNHZQgIk/8JCZ3/Cgqj/wsL
+ p/8LC6n/Cwus/wsLr/8MDLL/DAy2/wYGW/8AAAD/AAAA/1JSUv+sraz/tra2/3h4eP8KCgr/AAAA/wIC
+ Iv8MDLb/DAyy/wsLsP8LC63/Cwuq/wsLp/8KCqT/CQmd/wgIk/8PD1VrAAAAAAAAAAAEBE1lCQmY/woK
+ ov8LC6j/DAyr/wwMrf8MDLD/DAyy/w0Ntf8NDbf/Dg67/wUFSv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
+ AP8CAiH/DQ2q/w0NuP8NDbX/DQ2z/wwMsP8MDK7/DAyr/wsLqP8KCqL/CQmZ/xAQWmsAAAAAAAAAAAQE
+ UGUKCp7/Cwum/wwMrP8NDa//DQ2w/w0Ns/8ODrX/Dg63/w4Ouf8ODrv/Dw/A/wwMiv8FBTj/AAAG/wAA
+ AP8DAyb/CQls/w8Pu/8PD7z/Dg66/w4OuP8ODrX/DQ2z/w0Nsf8NDa//DAys/wsLp/8KCp7/ERFeawAA
+ AAAAAAAABQVTZQsLpP8MDKv/DQ2w/w4Os/8ODrT/Dg62/w8PuP8PD7r/Dw+8/w8Pvf8QEL//EBDA/xER
+ w/8SEsn/ERHJ/xERxf8QEMD/EBC//w8Pvv8PD7z/Dw+6/w8PuP8ODrf/Dg61/w4Os/8NDbH/DAyr/wsL
+ pP8SEmFrAAAAAAAAAAAGBlZlDAyq/w4OsP8PD7X/Dw+3/w8PuP8QELr/EBC7/xAQvf8REb7/ERHA/xER
+ wf8REcL/EhLC/xISw/8SEsP/EhLC/xERwv8REcH/ERHA/xERvv8QEL3/EBC7/xAQuv8QELj/Dw+3/w8P
+ tf8ODrD/DAyq/xMTZWsAAAAAAAAAAAcHWmUODrD/EBC2/xERuv8REbz/ERG9/xISvv8SEr//EhLA/xMT
+ wf8TE8P/ExPD/xMTxP8TE8X/FBTF/xQUxf8UFMX/ExPE/xMTxP8TE8P/ExPC/xISwf8SEr//EhK+/xER
+ vf8REbz/ERG6/xAQtv8ODrD/FBRpawAAAAAAAAAACAhcYxAQtf8SErv/ExO+/xQUwP8UFMD/FBTB/xUV
+ wv8VFcP/FRXE/xUVxf8WFsb/FhbG/xYWx/8WFsf/FhbH/xYWx/8WFsf/FhbG/xYWxf8VFcT/FRXD/xUV
+ wv8UFMH/FBTB/xQUwP8TE77/EhK7/xAQtf8TE2hoAAAAAAAAAAAQEFNUFRXC/xMTv/8UFMP/FRXE/xUV
+ xP8VFcX/FRXG/xYWx/8WFsf/FhbI/xYWyf8XF8n/FxfK/xcXyv8XF8r/FxfK/xcXyf8XF8n/FhbI/xYW
+ yP8WFsf/FhbG/xUVxf8VFcT/FRXE/xQUw/8TE7//FRXB/xAQV1UAAAAAAAAAAA0NPxkjI8byFBTD/xUV
+ x/8WFsj/FxfJ/xcXyf8XF8r/FxfK/xcXy/8YGMz/GBjM/xgYzP8YGM3/GBjN/xgYzf8YGM3/GBjM/xgY
+ zP8YGMz/GBjL/xcXy/8XF8r/FxfJ/xcXyf8WFsj/FRXH/xQUw/8jI8f0Dg5GGwAAAAAAAAAAFhZxAiUl
+ eIUZGcr/FBTI/xUVyv8WFsv/FhbM/xYWzP8WFsz/FhbN/xcXzf8XF83/FxfN/xcXzv8XF87/FxfO/xcX
+ zv8XF87/FxfN/xcXzf8WFs3/FhbM/xYWzP8WFsz/FhbL/xUVyv8UFMj/GBjJ/yYmeogWFnYCAAAAAAAA
+ AAAAAAAAGBh1BzMzk50kJNP+FxfK/xgYzP8YGMz/GBjN/xgYzf8YGM3/GBjN/xgYzf8ZGc7/GRnO/xkZ
+ zv8ZGc7/GRnO/xkZzv8YGM3/GBjN/xgYzf8YGM3/GBjN/xgYzP8YGMz/FxfK/yMj0v4zM5WfFBRkBwAA
+ AAAAAAAAAAAAAAAAAAAAAAAAHBx7Ay0tdkg3N5emMTGpxSwsp8gsLKfILCynyCwsp8gsLKfILCynyCws
+ p8gsLKfILCynyCwsp8gsLKfILCynyCwsp8gsLKfILCynyCwsp8gsLKfILCynyDExqcU2NpenLi54Shsb
+ ewMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////8AAAD+AAAAfAAAADwAAAA8AAAAPAAAADwAAAA8AA
+ AAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA
+ AAPAAAADwAAAA8AAAAPAAAAD4AAAB/gAAB//////
+
+
+
\ No newline at end of file
diff --git a/Util/ReflectUtil.cs b/Util/ReflectUtil.cs
index 737474346..31c99e0b0 100644
--- a/Util/ReflectUtil.cs
+++ b/Util/ReflectUtil.cs
@@ -1,21 +1,34 @@
using System;
+using System.Collections.Generic;
+using System.Linq;
using System.Reflection;
namespace PKHeX
{
public static class ReflectUtil
{
- internal static bool GetValueEquals(T obj, string propertyName, object value)
+ internal static bool GetValueEquals(object obj, string propertyName, object value)
{
- PropertyInfo pi = typeof(T).GetProperty(propertyName);
+ PropertyInfo pi = obj.GetType().GetProperty(propertyName);
var v = pi.GetValue(obj, null);
var c = Convert.ChangeType(value, pi.PropertyType);
return v.Equals(c);
}
- internal static void SetValue(T obj, string propertyName, object value)
+ internal static void SetValue(object obj, string propertyName, object value)
{
- PropertyInfo pi = typeof(T).GetProperty(propertyName);
+ PropertyInfo pi = obj.GetType().GetProperty(propertyName);
pi.SetValue(obj, Convert.ChangeType(value, pi.PropertyType), null);
}
+ internal static object GetValue(object obj, string propertyName)
+ {
+ PropertyInfo pi = obj.GetType().GetProperty(propertyName);
+ return pi.GetValue(obj, null);
+ }
+ internal static IEnumerable getPropertiesStartWithPrefix(Type type, string prefix)
+ {
+ return type.GetProperties()
+ .Where(p => p.Name.StartsWith(prefix))
+ .Select(p => p.Name);
+ }
}
}