From b28d81bd56bd2e3d2776cbb9c00957d16fa40b12 Mon Sep 17 00:00:00 2001 From: Kurt Date: Sun, 18 Nov 2018 17:38:23 -0800 Subject: [PATCH] Add WIP trainer editor --- pkNX.WinForms/Controls/StatEditor.Designer.cs | 670 +++++++++++ pkNX.WinForms/Controls/StatEditor.cs | 136 +++ pkNX.WinForms/Controls/StatEditor.resx | 120 ++ pkNX.WinForms/MainEditor/EditorGG.cs | 44 +- pkNX.WinForms/Subforms/BTTE.cs | 492 ++++++++ pkNX.WinForms/Subforms/BTTE.designer.cs | 1003 +++++++++++++++++ pkNX.WinForms/Subforms/BTTE.resx | 123 ++ pkNX.WinForms/Subforms/TextEditor.cs | 2 +- pkNX.WinForms/Subforms/TrainerEditor.cs | 72 ++ pkNX.WinForms/WinFormsUtil.cs | 6 + pkNX.WinForms/pkNX.WinForms.csproj | 27 +- 11 files changed, 2675 insertions(+), 20 deletions(-) create mode 100644 pkNX.WinForms/Controls/StatEditor.Designer.cs create mode 100644 pkNX.WinForms/Controls/StatEditor.cs create mode 100644 pkNX.WinForms/Controls/StatEditor.resx create mode 100644 pkNX.WinForms/Subforms/BTTE.cs create mode 100644 pkNX.WinForms/Subforms/BTTE.designer.cs create mode 100644 pkNX.WinForms/Subforms/BTTE.resx create mode 100644 pkNX.WinForms/Subforms/TrainerEditor.cs diff --git a/pkNX.WinForms/Controls/StatEditor.Designer.cs b/pkNX.WinForms/Controls/StatEditor.Designer.cs new file mode 100644 index 00000000..f5b36dac --- /dev/null +++ b/pkNX.WinForms/Controls/StatEditor.Designer.cs @@ -0,0 +1,670 @@ +namespace pkNX.WinForms.Controls +{ + partial class StatEditor + { + /// + /// 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 Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.FLP_Stats = new System.Windows.Forms.FlowLayoutPanel(); + this.FLP_StatHeader = new System.Windows.Forms.FlowLayoutPanel(); + this.FLP_StatsHeaderRight = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_IVs = new System.Windows.Forms.Label(); + this.Label_EVs = new System.Windows.Forms.Label(); + this.Label_Stats = new System.Windows.Forms.Label(); + this.FLP_HP = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_HP = new System.Windows.Forms.Label(); + this.TB_HPIV = new System.Windows.Forms.MaskedTextBox(); + this.TB_HPEV = new System.Windows.Forms.MaskedTextBox(); + this.Stat_HP = new System.Windows.Forms.MaskedTextBox(); + this.FLP_Atk = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_ATK = new System.Windows.Forms.Label(); + this.TB_ATKIV = new System.Windows.Forms.MaskedTextBox(); + this.TB_ATKEV = new System.Windows.Forms.MaskedTextBox(); + this.Stat_ATK = new System.Windows.Forms.MaskedTextBox(); + this.FLP_Def = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_DEF = new System.Windows.Forms.Label(); + this.TB_DEFIV = new System.Windows.Forms.MaskedTextBox(); + this.TB_DEFEV = new System.Windows.Forms.MaskedTextBox(); + this.Stat_DEF = new System.Windows.Forms.MaskedTextBox(); + this.FLP_SpA = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_SPA = new System.Windows.Forms.Label(); + this.TB_SPAIV = new System.Windows.Forms.MaskedTextBox(); + this.TB_SPAEV = new System.Windows.Forms.MaskedTextBox(); + this.Stat_SPA = new System.Windows.Forms.MaskedTextBox(); + this.FLP_SpD = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_SPD = new System.Windows.Forms.Label(); + this.TB_SPDIV = new System.Windows.Forms.MaskedTextBox(); + this.TB_SPDEV = new System.Windows.Forms.MaskedTextBox(); + this.Stat_SPD = new System.Windows.Forms.MaskedTextBox(); + this.FLP_Spe = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_SPE = new System.Windows.Forms.Label(); + this.TB_SPEIV = new System.Windows.Forms.MaskedTextBox(); + this.TB_SPEEV = new System.Windows.Forms.MaskedTextBox(); + this.Stat_SPE = new System.Windows.Forms.MaskedTextBox(); + this.FLP_StatsTotal = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_Total = new System.Windows.Forms.Label(); + this.TB_IVTotal = new System.Windows.Forms.TextBox(); + this.TB_EVTotal = new System.Windows.Forms.TextBox(); + this.FLP_HPType = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_HiddenPowerPrefix = new System.Windows.Forms.Label(); + this.CB_HPType = new System.Windows.Forms.ComboBox(); + this.FLP_Stats.SuspendLayout(); + this.FLP_StatHeader.SuspendLayout(); + this.FLP_StatsHeaderRight.SuspendLayout(); + this.FLP_HP.SuspendLayout(); + this.FLP_Atk.SuspendLayout(); + this.FLP_Def.SuspendLayout(); + this.FLP_SpA.SuspendLayout(); + this.FLP_SpD.SuspendLayout(); + this.FLP_Spe.SuspendLayout(); + this.FLP_StatsTotal.SuspendLayout(); + this.FLP_HPType.SuspendLayout(); + this.SuspendLayout(); + // + // FLP_Stats + // + this.FLP_Stats.Controls.Add(this.FLP_StatHeader); + this.FLP_Stats.Controls.Add(this.FLP_HP); + this.FLP_Stats.Controls.Add(this.FLP_Atk); + this.FLP_Stats.Controls.Add(this.FLP_Def); + this.FLP_Stats.Controls.Add(this.FLP_SpA); + this.FLP_Stats.Controls.Add(this.FLP_SpD); + this.FLP_Stats.Controls.Add(this.FLP_Spe); + this.FLP_Stats.Controls.Add(this.FLP_StatsTotal); + this.FLP_Stats.Controls.Add(this.FLP_HPType); + this.FLP_Stats.Location = new System.Drawing.Point(-14, 0); + this.FLP_Stats.Name = "FLP_Stats"; + this.FLP_Stats.Size = new System.Drawing.Size(178, 209); + this.FLP_Stats.TabIndex = 451; + // + // FLP_StatHeader + // + this.FLP_StatHeader.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_StatHeader.Controls.Add(this.FLP_StatsHeaderRight); + this.FLP_StatHeader.Location = new System.Drawing.Point(0, 0); + this.FLP_StatHeader.Margin = new System.Windows.Forms.Padding(0); + this.FLP_StatHeader.Name = "FLP_StatHeader"; + this.FLP_StatHeader.Size = new System.Drawing.Size(172, 22); + this.FLP_StatHeader.TabIndex = 122; + // + // FLP_StatsHeaderRight + // + this.FLP_StatsHeaderRight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_StatsHeaderRight.Controls.Add(this.Label_IVs); + this.FLP_StatsHeaderRight.Controls.Add(this.Label_EVs); + this.FLP_StatsHeaderRight.Controls.Add(this.Label_Stats); + this.FLP_StatsHeaderRight.Location = new System.Drawing.Point(62, 0); + this.FLP_StatsHeaderRight.Margin = new System.Windows.Forms.Padding(62, 0, 0, 0); + this.FLP_StatsHeaderRight.Name = "FLP_StatsHeaderRight"; + this.FLP_StatsHeaderRight.Size = new System.Drawing.Size(112, 21); + this.FLP_StatsHeaderRight.TabIndex = 123; + // + // Label_IVs + // + this.Label_IVs.Location = new System.Drawing.Point(0, 0); + this.Label_IVs.Margin = new System.Windows.Forms.Padding(0); + this.Label_IVs.Name = "Label_IVs"; + this.Label_IVs.Size = new System.Drawing.Size(30, 21); + this.Label_IVs.TabIndex = 29; + this.Label_IVs.Text = "IVs"; + this.Label_IVs.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // Label_EVs + // + this.Label_EVs.Location = new System.Drawing.Point(30, 0); + this.Label_EVs.Margin = new System.Windows.Forms.Padding(0); + this.Label_EVs.Name = "Label_EVs"; + this.Label_EVs.Size = new System.Drawing.Size(35, 21); + this.Label_EVs.TabIndex = 27; + this.Label_EVs.Text = "EVs"; + this.Label_EVs.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // Label_Stats + // + this.Label_Stats.Location = new System.Drawing.Point(65, 0); + this.Label_Stats.Margin = new System.Windows.Forms.Padding(0); + this.Label_Stats.Name = "Label_Stats"; + this.Label_Stats.Size = new System.Drawing.Size(35, 21); + this.Label_Stats.TabIndex = 28; + this.Label_Stats.Text = "Stats"; + this.Label_Stats.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // FLP_HP + // + this.FLP_HP.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_HP.Controls.Add(this.Label_HP); + this.FLP_HP.Controls.Add(this.TB_HPIV); + this.FLP_HP.Controls.Add(this.TB_HPEV); + this.FLP_HP.Controls.Add(this.Stat_HP); + this.FLP_HP.Location = new System.Drawing.Point(0, 22); + this.FLP_HP.Margin = new System.Windows.Forms.Padding(0); + this.FLP_HP.Name = "FLP_HP"; + this.FLP_HP.Size = new System.Drawing.Size(172, 21); + this.FLP_HP.TabIndex = 123; + // + // Label_HP + // + this.Label_HP.Location = new System.Drawing.Point(0, 0); + this.Label_HP.Margin = new System.Windows.Forms.Padding(0); + this.Label_HP.Name = "Label_HP"; + this.Label_HP.Size = new System.Drawing.Size(65, 21); + this.Label_HP.TabIndex = 19; + this.Label_HP.Text = "HP:"; + this.Label_HP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_HPIV + // + this.TB_HPIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_HPIV.Location = new System.Drawing.Point(65, 0); + this.TB_HPIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); + this.TB_HPIV.Mask = "00"; + this.TB_HPIV.Name = "TB_HPIV"; + this.TB_HPIV.Size = new System.Drawing.Size(22, 20); + this.TB_HPIV.TabIndex = 46; + this.TB_HPIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_HPIV.TextChanged += new System.EventHandler(this.UpdateIV); + // + // TB_HPEV + // + this.TB_HPEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_HPEV.Location = new System.Drawing.Point(93, 0); + this.TB_HPEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.TB_HPEV.Mask = "000"; + this.TB_HPEV.Name = "TB_HPEV"; + this.TB_HPEV.Size = new System.Drawing.Size(28, 20); + this.TB_HPEV.TabIndex = 47; + this.TB_HPEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_HPEV.TextChanged += new System.EventHandler(this.UpdateEV); + // + // Stat_HP + // + this.Stat_HP.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Stat_HP.Enabled = false; + this.Stat_HP.Location = new System.Drawing.Point(127, 0); + this.Stat_HP.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.Stat_HP.Mask = "00000"; + this.Stat_HP.Name = "Stat_HP"; + this.Stat_HP.PromptChar = ' '; + this.Stat_HP.Size = new System.Drawing.Size(37, 20); + this.Stat_HP.TabIndex = 48; + this.Stat_HP.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // FLP_Atk + // + this.FLP_Atk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_Atk.Controls.Add(this.Label_ATK); + this.FLP_Atk.Controls.Add(this.TB_ATKIV); + this.FLP_Atk.Controls.Add(this.TB_ATKEV); + this.FLP_Atk.Controls.Add(this.Stat_ATK); + this.FLP_Atk.Location = new System.Drawing.Point(0, 43); + this.FLP_Atk.Margin = new System.Windows.Forms.Padding(0); + this.FLP_Atk.Name = "FLP_Atk"; + this.FLP_Atk.Size = new System.Drawing.Size(172, 21); + this.FLP_Atk.TabIndex = 124; + // + // Label_ATK + // + this.Label_ATK.Location = new System.Drawing.Point(0, 0); + this.Label_ATK.Margin = new System.Windows.Forms.Padding(0); + this.Label_ATK.Name = "Label_ATK"; + this.Label_ATK.Size = new System.Drawing.Size(65, 21); + this.Label_ATK.TabIndex = 20; + this.Label_ATK.Text = "Atk:"; + this.Label_ATK.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_ATKIV + // + this.TB_ATKIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_ATKIV.Location = new System.Drawing.Point(65, 0); + this.TB_ATKIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); + this.TB_ATKIV.Mask = "00"; + this.TB_ATKIV.Name = "TB_ATKIV"; + this.TB_ATKIV.Size = new System.Drawing.Size(22, 20); + this.TB_ATKIV.TabIndex = 47; + this.TB_ATKIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_ATKIV.TextChanged += new System.EventHandler(this.UpdateIV); + // + // TB_ATKEV + // + this.TB_ATKEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_ATKEV.Location = new System.Drawing.Point(93, 0); + this.TB_ATKEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.TB_ATKEV.Mask = "000"; + this.TB_ATKEV.Name = "TB_ATKEV"; + this.TB_ATKEV.Size = new System.Drawing.Size(28, 20); + this.TB_ATKEV.TabIndex = 48; + this.TB_ATKEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_ATKEV.TextChanged += new System.EventHandler(this.UpdateEV); + // + // Stat_ATK + // + this.Stat_ATK.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Stat_ATK.Enabled = false; + this.Stat_ATK.Location = new System.Drawing.Point(127, 0); + this.Stat_ATK.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.Stat_ATK.Mask = "00000"; + this.Stat_ATK.Name = "Stat_ATK"; + this.Stat_ATK.PromptChar = ' '; + this.Stat_ATK.Size = new System.Drawing.Size(37, 20); + this.Stat_ATK.TabIndex = 49; + this.Stat_ATK.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // FLP_Def + // + this.FLP_Def.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_Def.Controls.Add(this.Label_DEF); + this.FLP_Def.Controls.Add(this.TB_DEFIV); + this.FLP_Def.Controls.Add(this.TB_DEFEV); + this.FLP_Def.Controls.Add(this.Stat_DEF); + this.FLP_Def.Location = new System.Drawing.Point(0, 64); + this.FLP_Def.Margin = new System.Windows.Forms.Padding(0); + this.FLP_Def.Name = "FLP_Def"; + this.FLP_Def.Size = new System.Drawing.Size(172, 21); + this.FLP_Def.TabIndex = 125; + // + // Label_DEF + // + this.Label_DEF.Location = new System.Drawing.Point(0, 0); + this.Label_DEF.Margin = new System.Windows.Forms.Padding(0); + this.Label_DEF.Name = "Label_DEF"; + this.Label_DEF.Size = new System.Drawing.Size(65, 21); + this.Label_DEF.TabIndex = 21; + this.Label_DEF.Text = "Def:"; + this.Label_DEF.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_DEFIV + // + this.TB_DEFIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_DEFIV.Location = new System.Drawing.Point(65, 0); + this.TB_DEFIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); + this.TB_DEFIV.Mask = "00"; + this.TB_DEFIV.Name = "TB_DEFIV"; + this.TB_DEFIV.Size = new System.Drawing.Size(22, 20); + this.TB_DEFIV.TabIndex = 48; + this.TB_DEFIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_DEFIV.TextChanged += new System.EventHandler(this.UpdateIV); + // + // TB_DEFEV + // + this.TB_DEFEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_DEFEV.Location = new System.Drawing.Point(93, 0); + this.TB_DEFEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.TB_DEFEV.Mask = "000"; + this.TB_DEFEV.Name = "TB_DEFEV"; + this.TB_DEFEV.Size = new System.Drawing.Size(28, 20); + this.TB_DEFEV.TabIndex = 49; + this.TB_DEFEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_DEFEV.TextChanged += new System.EventHandler(this.UpdateEV); + // + // Stat_DEF + // + this.Stat_DEF.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Stat_DEF.Enabled = false; + this.Stat_DEF.Location = new System.Drawing.Point(127, 0); + this.Stat_DEF.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.Stat_DEF.Mask = "00000"; + this.Stat_DEF.Name = "Stat_DEF"; + this.Stat_DEF.PromptChar = ' '; + this.Stat_DEF.Size = new System.Drawing.Size(37, 20); + this.Stat_DEF.TabIndex = 50; + this.Stat_DEF.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // FLP_SpA + // + this.FLP_SpA.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_SpA.Controls.Add(this.Label_SPA); + this.FLP_SpA.Controls.Add(this.TB_SPAIV); + this.FLP_SpA.Controls.Add(this.TB_SPAEV); + this.FLP_SpA.Controls.Add(this.Stat_SPA); + this.FLP_SpA.Location = new System.Drawing.Point(0, 85); + this.FLP_SpA.Margin = new System.Windows.Forms.Padding(0); + this.FLP_SpA.Name = "FLP_SpA"; + this.FLP_SpA.Size = new System.Drawing.Size(172, 21); + this.FLP_SpA.TabIndex = 126; + // + // Label_SPA + // + this.Label_SPA.Location = new System.Drawing.Point(0, 0); + this.Label_SPA.Margin = new System.Windows.Forms.Padding(0); + this.Label_SPA.Name = "Label_SPA"; + this.Label_SPA.Size = new System.Drawing.Size(65, 21); + this.Label_SPA.TabIndex = 51; + this.Label_SPA.Text = "SpA:"; + this.Label_SPA.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_SPAIV + // + this.TB_SPAIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPAIV.Location = new System.Drawing.Point(65, 0); + this.TB_SPAIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); + this.TB_SPAIV.Mask = "00"; + this.TB_SPAIV.Name = "TB_SPAIV"; + this.TB_SPAIV.Size = new System.Drawing.Size(22, 20); + this.TB_SPAIV.TabIndex = 49; + this.TB_SPAIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPAIV.TextChanged += new System.EventHandler(this.UpdateIV); + // + // TB_SPAEV + // + this.TB_SPAEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPAEV.Location = new System.Drawing.Point(93, 0); + this.TB_SPAEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.TB_SPAEV.Mask = "000"; + this.TB_SPAEV.Name = "TB_SPAEV"; + this.TB_SPAEV.Size = new System.Drawing.Size(28, 20); + this.TB_SPAEV.TabIndex = 50; + this.TB_SPAEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPAEV.TextChanged += new System.EventHandler(this.UpdateEV); + // + // Stat_SPA + // + this.Stat_SPA.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Stat_SPA.Enabled = false; + this.Stat_SPA.Location = new System.Drawing.Point(127, 0); + this.Stat_SPA.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.Stat_SPA.Mask = "00000"; + this.Stat_SPA.Name = "Stat_SPA"; + this.Stat_SPA.PromptChar = ' '; + this.Stat_SPA.Size = new System.Drawing.Size(37, 20); + this.Stat_SPA.TabIndex = 52; + this.Stat_SPA.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // FLP_SpD + // + this.FLP_SpD.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_SpD.Controls.Add(this.Label_SPD); + this.FLP_SpD.Controls.Add(this.TB_SPDIV); + this.FLP_SpD.Controls.Add(this.TB_SPDEV); + this.FLP_SpD.Controls.Add(this.Stat_SPD); + this.FLP_SpD.Location = new System.Drawing.Point(0, 106); + this.FLP_SpD.Margin = new System.Windows.Forms.Padding(0); + this.FLP_SpD.Name = "FLP_SpD"; + this.FLP_SpD.Size = new System.Drawing.Size(172, 21); + this.FLP_SpD.TabIndex = 127; + // + // Label_SPD + // + this.Label_SPD.Location = new System.Drawing.Point(0, 0); + this.Label_SPD.Margin = new System.Windows.Forms.Padding(0); + this.Label_SPD.Name = "Label_SPD"; + this.Label_SPD.Size = new System.Drawing.Size(65, 21); + this.Label_SPD.TabIndex = 23; + this.Label_SPD.Text = "SpD:"; + this.Label_SPD.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_SPDIV + // + this.TB_SPDIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPDIV.Location = new System.Drawing.Point(65, 0); + this.TB_SPDIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); + this.TB_SPDIV.Mask = "00"; + this.TB_SPDIV.Name = "TB_SPDIV"; + this.TB_SPDIV.Size = new System.Drawing.Size(22, 20); + this.TB_SPDIV.TabIndex = 5; + this.TB_SPDIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPDIV.TextChanged += new System.EventHandler(this.UpdateIV); + // + // TB_SPDEV + // + this.TB_SPDEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPDEV.Location = new System.Drawing.Point(93, 0); + this.TB_SPDEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.TB_SPDEV.Mask = "000"; + this.TB_SPDEV.Name = "TB_SPDEV"; + this.TB_SPDEV.Size = new System.Drawing.Size(28, 20); + this.TB_SPDEV.TabIndex = 11; + this.TB_SPDEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPDEV.TextChanged += new System.EventHandler(this.UpdateEV); + // + // Stat_SPD + // + this.Stat_SPD.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Stat_SPD.Enabled = false; + this.Stat_SPD.Location = new System.Drawing.Point(127, 0); + this.Stat_SPD.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.Stat_SPD.Mask = "00000"; + this.Stat_SPD.Name = "Stat_SPD"; + this.Stat_SPD.PromptChar = ' '; + this.Stat_SPD.Size = new System.Drawing.Size(37, 20); + this.Stat_SPD.TabIndex = 49; + this.Stat_SPD.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // FLP_Spe + // + this.FLP_Spe.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_Spe.Controls.Add(this.Label_SPE); + this.FLP_Spe.Controls.Add(this.TB_SPEIV); + this.FLP_Spe.Controls.Add(this.TB_SPEEV); + this.FLP_Spe.Controls.Add(this.Stat_SPE); + this.FLP_Spe.Location = new System.Drawing.Point(0, 127); + this.FLP_Spe.Margin = new System.Windows.Forms.Padding(0); + this.FLP_Spe.Name = "FLP_Spe"; + this.FLP_Spe.Size = new System.Drawing.Size(172, 21); + this.FLP_Spe.TabIndex = 128; + // + // Label_SPE + // + this.Label_SPE.Location = new System.Drawing.Point(0, 0); + this.Label_SPE.Margin = new System.Windows.Forms.Padding(0); + this.Label_SPE.Name = "Label_SPE"; + this.Label_SPE.Size = new System.Drawing.Size(65, 21); + this.Label_SPE.TabIndex = 24; + this.Label_SPE.Text = "Spe:"; + this.Label_SPE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_SPEIV + // + this.TB_SPEIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPEIV.Location = new System.Drawing.Point(65, 0); + this.TB_SPEIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); + this.TB_SPEIV.Mask = "00"; + this.TB_SPEIV.Name = "TB_SPEIV"; + this.TB_SPEIV.Size = new System.Drawing.Size(22, 20); + this.TB_SPEIV.TabIndex = 51; + this.TB_SPEIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPEIV.TextChanged += new System.EventHandler(this.UpdateIV); + // + // TB_SPEEV + // + this.TB_SPEEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPEEV.Location = new System.Drawing.Point(93, 0); + this.TB_SPEEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.TB_SPEEV.Mask = "000"; + this.TB_SPEEV.Name = "TB_SPEEV"; + this.TB_SPEEV.Size = new System.Drawing.Size(28, 20); + this.TB_SPEEV.TabIndex = 52; + this.TB_SPEEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPEEV.TextChanged += new System.EventHandler(this.UpdateEV); + // + // Stat_SPE + // + this.Stat_SPE.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Stat_SPE.Enabled = false; + this.Stat_SPE.Location = new System.Drawing.Point(127, 0); + this.Stat_SPE.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.Stat_SPE.Mask = "00000"; + this.Stat_SPE.Name = "Stat_SPE"; + this.Stat_SPE.PromptChar = ' '; + this.Stat_SPE.Size = new System.Drawing.Size(37, 20); + this.Stat_SPE.TabIndex = 53; + this.Stat_SPE.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // FLP_StatsTotal + // + this.FLP_StatsTotal.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_StatsTotal.Controls.Add(this.Label_Total); + this.FLP_StatsTotal.Controls.Add(this.TB_IVTotal); + this.FLP_StatsTotal.Controls.Add(this.TB_EVTotal); + this.FLP_StatsTotal.Location = new System.Drawing.Point(0, 148); + this.FLP_StatsTotal.Margin = new System.Windows.Forms.Padding(0); + this.FLP_StatsTotal.Name = "FLP_StatsTotal"; + this.FLP_StatsTotal.Size = new System.Drawing.Size(172, 21); + this.FLP_StatsTotal.TabIndex = 129; + // + // Label_Total + // + this.Label_Total.Location = new System.Drawing.Point(0, 0); + this.Label_Total.Margin = new System.Windows.Forms.Padding(0); + this.Label_Total.Name = "Label_Total"; + this.Label_Total.Size = new System.Drawing.Size(65, 21); + this.Label_Total.TabIndex = 25; + this.Label_Total.Text = "Total:"; + this.Label_Total.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_IVTotal + // + this.TB_IVTotal.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_IVTotal.Enabled = false; + this.TB_IVTotal.Location = new System.Drawing.Point(65, 0); + this.TB_IVTotal.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); + this.TB_IVTotal.MaxLength = 3; + this.TB_IVTotal.Name = "TB_IVTotal"; + this.TB_IVTotal.Size = new System.Drawing.Size(22, 20); + this.TB_IVTotal.TabIndex = 44; + this.TB_IVTotal.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // TB_EVTotal + // + this.TB_EVTotal.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_EVTotal.Enabled = false; + this.TB_EVTotal.Location = new System.Drawing.Point(93, 0); + this.TB_EVTotal.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.TB_EVTotal.MaxLength = 3; + this.TB_EVTotal.Name = "TB_EVTotal"; + this.TB_EVTotal.Size = new System.Drawing.Size(28, 20); + this.TB_EVTotal.TabIndex = 43; + this.TB_EVTotal.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // FLP_HPType + // + this.FLP_HPType.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_HPType.Controls.Add(this.Label_HiddenPowerPrefix); + this.FLP_HPType.Controls.Add(this.CB_HPType); + this.FLP_HPType.Location = new System.Drawing.Point(0, 169); + this.FLP_HPType.Margin = new System.Windows.Forms.Padding(0); + this.FLP_HPType.Name = "FLP_HPType"; + this.FLP_HPType.Size = new System.Drawing.Size(172, 21); + this.FLP_HPType.TabIndex = 130; + // + // Label_HiddenPowerPrefix + // + this.Label_HiddenPowerPrefix.Location = new System.Drawing.Point(0, 0); + this.Label_HiddenPowerPrefix.Margin = new System.Windows.Forms.Padding(0); + this.Label_HiddenPowerPrefix.Name = "Label_HiddenPowerPrefix"; + this.Label_HiddenPowerPrefix.Size = new System.Drawing.Size(102, 21); + this.Label_HiddenPowerPrefix.TabIndex = 29; + this.Label_HiddenPowerPrefix.Text = "Hidden Power:"; + this.Label_HiddenPowerPrefix.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_HPType + // + this.CB_HPType.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_HPType.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HPType.DropDownWidth = 80; + this.CB_HPType.FormattingEnabled = true; + this.CB_HPType.Location = new System.Drawing.Point(102, 0); + this.CB_HPType.Margin = new System.Windows.Forms.Padding(0); + this.CB_HPType.Name = "CB_HPType"; + this.CB_HPType.Size = new System.Drawing.Size(70, 21); + this.CB_HPType.TabIndex = 44; + this.CB_HPType.SelectedIndexChanged += new System.EventHandler(this.ChangeHPType); + // + // StatEditor + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.FLP_Stats); + this.Name = "StatEditor"; + this.Size = new System.Drawing.Size(165, 212); + this.FLP_Stats.ResumeLayout(false); + this.FLP_StatHeader.ResumeLayout(false); + this.FLP_StatsHeaderRight.ResumeLayout(false); + this.FLP_HP.ResumeLayout(false); + this.FLP_HP.PerformLayout(); + this.FLP_Atk.ResumeLayout(false); + this.FLP_Atk.PerformLayout(); + this.FLP_Def.ResumeLayout(false); + this.FLP_Def.PerformLayout(); + this.FLP_SpA.ResumeLayout(false); + this.FLP_SpA.PerformLayout(); + this.FLP_SpD.ResumeLayout(false); + this.FLP_SpD.PerformLayout(); + this.FLP_Spe.ResumeLayout(false); + this.FLP_Spe.PerformLayout(); + this.FLP_StatsTotal.ResumeLayout(false); + this.FLP_StatsTotal.PerformLayout(); + this.FLP_HPType.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.FlowLayoutPanel FLP_Stats; + private System.Windows.Forms.FlowLayoutPanel FLP_StatHeader; + private System.Windows.Forms.FlowLayoutPanel FLP_StatsHeaderRight; + private System.Windows.Forms.Label Label_IVs; + private System.Windows.Forms.Label Label_EVs; + private System.Windows.Forms.Label Label_Stats; + private System.Windows.Forms.FlowLayoutPanel FLP_HP; + private System.Windows.Forms.Label Label_HP; + private System.Windows.Forms.MaskedTextBox TB_HPIV; + private System.Windows.Forms.MaskedTextBox TB_HPEV; + private System.Windows.Forms.MaskedTextBox Stat_HP; + private System.Windows.Forms.FlowLayoutPanel FLP_Atk; + private System.Windows.Forms.Label Label_ATK; + private System.Windows.Forms.MaskedTextBox TB_ATKIV; + private System.Windows.Forms.MaskedTextBox TB_ATKEV; + private System.Windows.Forms.MaskedTextBox Stat_ATK; + private System.Windows.Forms.FlowLayoutPanel FLP_Def; + private System.Windows.Forms.Label Label_DEF; + private System.Windows.Forms.MaskedTextBox TB_DEFIV; + private System.Windows.Forms.MaskedTextBox TB_DEFEV; + private System.Windows.Forms.MaskedTextBox Stat_DEF; + private System.Windows.Forms.FlowLayoutPanel FLP_SpA; + private System.Windows.Forms.Label Label_SPA; + private System.Windows.Forms.MaskedTextBox TB_SPAIV; + private System.Windows.Forms.MaskedTextBox TB_SPAEV; + private System.Windows.Forms.MaskedTextBox Stat_SPA; + private System.Windows.Forms.FlowLayoutPanel FLP_SpD; + private System.Windows.Forms.Label Label_SPD; + private System.Windows.Forms.MaskedTextBox TB_SPDIV; + private System.Windows.Forms.MaskedTextBox TB_SPDEV; + private System.Windows.Forms.MaskedTextBox Stat_SPD; + private System.Windows.Forms.FlowLayoutPanel FLP_Spe; + private System.Windows.Forms.Label Label_SPE; + private System.Windows.Forms.MaskedTextBox TB_SPEIV; + private System.Windows.Forms.MaskedTextBox TB_SPEEV; + private System.Windows.Forms.MaskedTextBox Stat_SPE; + private System.Windows.Forms.FlowLayoutPanel FLP_StatsTotal; + private System.Windows.Forms.Label Label_Total; + private System.Windows.Forms.TextBox TB_IVTotal; + private System.Windows.Forms.TextBox TB_EVTotal; + private System.Windows.Forms.FlowLayoutPanel FLP_HPType; + private System.Windows.Forms.Label Label_HiddenPowerPrefix; + private System.Windows.Forms.ComboBox CB_HPType; + } +} diff --git a/pkNX.WinForms/Controls/StatEditor.cs b/pkNX.WinForms/Controls/StatEditor.cs new file mode 100644 index 00000000..9ce66829 --- /dev/null +++ b/pkNX.WinForms/Controls/StatEditor.cs @@ -0,0 +1,136 @@ +using System; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; +using pkNX.Structures; +using Util = pkNX.Randomization.Util; + +namespace pkNX.WinForms.Controls +{ + public partial class StatEditor : UserControl + { + public StatEditor() + { + InitializeComponent(); + tb_iv = new[] { TB_HPIV, TB_ATKIV, TB_DEFIV, TB_SPEIV, TB_SPAIV, TB_SPDIV }; + tb_ev = new[] { TB_HPEV, TB_ATKEV, TB_DEFEV, TB_SPEEV, TB_SPAEV, TB_SPDEV }; + labarray = new[] { Label_ATK, Label_DEF, Label_SPE, Label_SPA, Label_SPD }; + } + + public void Initialize(string[] types) + { + UpdatingFields = true; + foreach (var t in types.Skip(1)) + CB_HPType.Items.Add(t); + UpdatingFields = false; + } + + public PersonalTable Personal { private get; set; } + public bool UpdatingFields; + public StatPKM PKM { get; set; } + + private readonly MaskedTextBox[] tb_iv; + private readonly MaskedTextBox[] tb_ev; + private readonly Label[] labarray; + + public void UpdateStats() + { + if (UpdatingFields) + return; + + for (int i = 0; i < 6; i++) + { + UpdatingFields = true; + if (Util.ToInt32(tb_iv[i].Text) > 31) + tb_iv[i].Text = "31"; + if (Util.ToInt32(tb_ev[i].Text) > 255) + tb_ev[i].Text = "255"; + UpdatingFields = false; + } + + var pi = Personal.GetFormeEntry(PKM.Species, PKM.Form); + var stats = PKM.GetStats(pi); + + Stat_HP.Text = stats[0].ToString(); + Stat_ATK.Text = stats[1].ToString(); + Stat_DEF.Text = stats[2].ToString(); + Stat_SPA.Text = stats[4].ToString(); + Stat_SPD.Text = stats[5].ToString(); + Stat_SPE.Text = stats[3].ToString(); + + TB_IVTotal.Text = tb_iv.Select(z => Util.ToInt32(z.Text)).Sum().ToString(); + TB_EVTotal.Text = tb_ev.Select(z => Util.ToInt32(z.Text)).Sum().ToString(); + + // Recolor the Stat Labels based on boosted stats. + RecolorStatLabels(); + UpdatingFields = true; + CB_HPType.SelectedIndex = PKM.HiddenPowerType; + UpdatingFields = false; + } + + private void RecolorStatLabels() + { + int incr = (PKM.Nature / 5); + int decr = (PKM.Nature % 5); + // Reset Label Colors + foreach (Label label in labarray) + label.ResetForeColor(); + + // Set Colored StatLabels only if Nature isn't Neutral + if (incr != decr) + { + labarray[incr].ForeColor = Color.Red; + labarray[decr].ForeColor = Color.Blue; + } + } + + public void LoadStats(StatPKM pkm) + { + PKM = pkm; + + UpdatingFields = true; + for (int i = 0; i < 6; i++) + tb_iv[i].Text = pkm.GetIV(i).ToString("00"); + for (int i = 0; i < 6; i++) + tb_ev[i].Text = pkm.GetEV(i).ToString("00"); + CB_HPType.SelectedIndex = PKM.HiddenPowerType; + UpdatingFields = false; + UpdateStats(); + } + + private void UpdateIV(object sender, EventArgs e) + { + if (UpdatingFields || !(sender is MaskedTextBox t)) + return; + var index = Array.IndexOf(tb_iv, t); + if (index < 0) + return; + int value = Math.Min(31, Util.ToInt32(t.Text)); + PKM.SetIV(index, value); + UpdatingFields = true; + CB_HPType.SelectedIndex = PKM.HiddenPowerType; + UpdatingFields = false; + UpdateStats(); + } + + private void UpdateEV(object sender, EventArgs e) + { + if (UpdatingFields || !(sender is MaskedTextBox t)) + return; + var index = Array.IndexOf(tb_iv, t); + if (index < 0) + return; + int value = Math.Min(252, Util.ToInt32(t.Text)); + PKM.SetEV(index, value); + UpdateStats(); + } + + private void ChangeHPType(object sender, EventArgs e) + { + if (UpdatingFields) + return; + PKM.SetHPIVs(CB_HPType.SelectedIndex); + UpdateStats(); + } + } +} diff --git a/pkNX.WinForms/Controls/StatEditor.resx b/pkNX.WinForms/Controls/StatEditor.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/pkNX.WinForms/Controls/StatEditor.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/pkNX.WinForms/MainEditor/EditorGG.cs b/pkNX.WinForms/MainEditor/EditorGG.cs index 9c5dc9dd..742a8a97 100644 --- a/pkNX.WinForms/MainEditor/EditorGG.cs +++ b/pkNX.WinForms/MainEditor/EditorGG.cs @@ -1,5 +1,4 @@ using System.IO; -using pkNX.Containers; using pkNX.Game; using pkNX.Structures; @@ -9,33 +8,46 @@ internal class EditorGG : EditorBase { protected internal EditorGG(GameManager rom) : base(rom) { } - public void EditTrainers() - { - WinFormsUtil.Alert("Not implemented yet."); - } - public void EditCommon() { - var text = ROM.GetFile(GameFile.GameText); - ((FolderContainer) text).Initialize(z => Path.GetExtension(z) == ".dat"); + var text = ROM.GetFilteredFolder(GameFile.GameText, z => Path.GetExtension(z) == ".dat"); var config = new TextConfig(ROM.Game); var tc = new TextContainer(text, config); - var editor = new TextEditor(tc, TextEditor.TextEditorMode.Common); - editor.ShowDialog(); - if (!editor.Modified) + var form = new TextEditor(tc, TextEditor.TextEditorMode.Common); + form.ShowDialog(); + if (!form.Modified) text.CancelEdits(); } public void EditScript() { - var text = ROM.GetFile(GameFile.StoryText); - ((FolderContainer)text).Initialize(z => Path.GetExtension(z) == ".dat"); + var text = ROM.GetFilteredFolder(GameFile.StoryText, z => Path.GetExtension(z) == ".dat"); var config = new TextConfig(ROM.Game); var tc = new TextContainer(text, config); - var editor = new TextEditor(tc, TextEditor.TextEditorMode.Script); - editor.ShowDialog(); - if (!editor.Modified) + var form = new TextEditor(tc, TextEditor.TextEditorMode.Script); + form.ShowDialog(); + if (!form.Modified) text.CancelEdits(); } + + public void EditTrainers() + { + var editor = new TrainerEditor + { + ReadClass = data => new TrainerClass7b(data), + ReadPoke = data => new TrainerPoke7b(data), + ReadTrainer = data => new TrainerData7b(data), + ReadTeam = TrainerPoke7b.ReadTeam, + WriteTeam = TrainerPoke7b.WriteTeam, + TrainerData = ROM.GetFilteredFolder(GameFile.TrainerData), + TrainerPoke = ROM.GetFilteredFolder(GameFile.TrainerPoke), + TrainerClass = ROM.GetFilteredFolder(GameFile.TrainerClass), + }; + editor.Initialize(); + var form = new BTTE(ROM, editor); + form.ShowDialog(); + if (!form.Modified) + editor.CancelEdits(); + } } } \ No newline at end of file diff --git a/pkNX.WinForms/Subforms/BTTE.cs b/pkNX.WinForms/Subforms/BTTE.cs new file mode 100644 index 00000000..ce386d2c --- /dev/null +++ b/pkNX.WinForms/Subforms/BTTE.cs @@ -0,0 +1,492 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +using pkNX.Game; +using pkNX.Structures; +using pkNX.Sprites; + +namespace pkNX.WinForms +{ + public partial class BTTE : Form + { + private string[][] AltForms; + private int entry = -1; + private PictureBox[] pba; + + private readonly PersonalTable Personal; + private readonly GameManager Game; + private readonly TrainerEditor Trainers; + + private readonly string[] abilitylist; + private readonly string[] movelist; + private readonly string[] itemlist; + private readonly string[] specieslist; + private readonly string[] types; + private readonly string[] natures; + private readonly string[] trName; + private readonly string[] trClass; + + public BTTE(GameManager game, TrainerEditor editor) + { + InitializeComponent(); + + Stats.Personal = Personal = game.Data.PersonalData; + Game = game; + Trainers = editor; + + trClass = Game.GetStrings(TextName.TrainerClasses); + trName = Game.GetStrings(TextName.TrainerClasses); + + abilitylist = Game.GetStrings(TextName.AbilityNames); + movelist = Game.GetStrings(TextName.MoveNames); + itemlist = Game.GetStrings(TextName.ItemNames); + specieslist = Game.GetStrings(TextName.SpeciesNames); + types = Game.GetStrings(TextName.Types); + natures = Game.GetStrings(TextName.Natures); + trName = Game.GetStrings(TextName.TrainerNames); + trClass = Game.GetStrings(TextName.TrainerClasses); + + mnuView.Click += ClickView; + mnuSet.Click += ClickSet; + mnuDelete.Click += ClickDelete; + Setup(); + foreach (var pb in pba) + pb.Click += ClickSlot; + + CB_TrainerID.SelectedIndex = 0; + } + + public bool Modified { get; set; } + + private int GetSlot(object sender) + { + var send = ((sender as ToolStripItem)?.Owner as ContextMenuStrip)?.SourceControl ?? sender as PictureBox; + return Array.IndexOf(pba, send); + } + + private void ClickSlot(object sender, EventArgs e) + { + switch (ModifierKeys) + { + case Keys.Control: ClickView(sender, e); break; + case Keys.Shift: ClickSet(sender, e); break; + case Keys.Alt: ClickDelete(sender, e); break; + } + } + + private void ClickView(object sender, EventArgs e) + { + int slot = GetSlot(sender); + if (pba[slot].Image == null) + { + System.Media.SystemSounds.Exclamation.Play(); + return; + } + + // Load the PKM + var pk = Trainers[entry].Team[slot]; + if (pk.Species != 0) + { + try { PopulateFields(pk); } + catch { } + // Visual to display what slot is currently loaded. + GetSlotColor(slot, Sprites.Properties.Resources.slotView); + } + else + { + System.Media.SystemSounds.Exclamation.Play(); + } + } + + private void ClickSet(object sender, EventArgs e) + { + int slot = GetSlot(sender); + if (CB_Species.SelectedIndex == 0) + { WinFormsUtil.Alert("Can't set empty slot."); return; } + + var pk = PreparePKM(); + var tr = Trainers[entry]; + if (slot < tr.Team.Count) + { + tr.Team[slot] = pk; + } + else + { + tr.Team.Add(pk); + slot = tr.Team.Count - 1; + } + + GetQuickFiller(pba[slot], pk); + GetSlotColor(slot, Sprites.Properties.Resources.slotSet); + } + + private void ClickDelete(object sender, EventArgs e) + { + int slot = GetSlot(sender); + + if (slot < Trainers[entry].Team.Count) + Trainers[entry].Team.RemoveAt(slot); + + PopulateTeam(Trainers[entry].Team); + GetSlotColor(slot, Sprites.Properties.Resources.slotDel); + } + + private void PopulateTeam(IList team) + { + for (int i = 0; i < team.Count; i++) + GetQuickFiller(pba[i], team[i]); + for (int i = team.Count; i < 6; i++) + pba[i].Image = null; + } + + private void GetSlotColor(int slot, Image color) + { + foreach (PictureBox t in pba) + t.BackgroundImage = null; + + pba[slot].BackgroundImage = color; + } + + private static void GetQuickFiller(PictureBox pb, TrainerPoke pk) + { + var rawImg = SpriteBuilder.GetSprite(pk.Species, pk.Form, pk.Gender, pk.HeldItem, false, pk.Shiny); + pb.Image = ImageUtil.ScaleImage((Bitmap)rawImg, 2); + } + + // Top Level Functions + private void RefreshFormAbility(object sender, EventArgs e) + { + if (entry < 0) + return; + pkm.Form = CB_Forme.SelectedIndex; + RefreshPKMSlotAbility(); + + if (!Stats.UpdatingFields) + Stats.UpdateStats(); + } + + private void RefreshSpeciesAbility(object sender, EventArgs e) + { + if (entry < 0) + return; + pkm.Species = (ushort)CB_Species.SelectedIndex; + FormUtil.SetForms(CB_Species.SelectedIndex, CB_Forme, AltForms); + RefreshPKMSlotAbility(); + + if (!Stats.UpdatingFields) + Stats.UpdateStats(); + } + + private void RefreshPKMSlotAbility() + { + int previousAbilityIndex = CB_Ability.SelectedIndex; + + int species = CB_Species.SelectedIndex; + int formnum = CB_Forme.SelectedIndex; + int index = Personal[species].FormeIndex(species, formnum); + + CB_Ability.Items.Clear(); + CB_Ability.Items.Add("Any (1 or 2)"); + CB_Ability.Items.Add(abilitylist[Personal[index].Abilities[0]] + " (1)"); + CB_Ability.Items.Add(abilitylist[Personal[index].Abilities[1]] + " (2)"); + CB_Ability.Items.Add(abilitylist[Personal[index].Abilities[2]] + " (H)"); + + CB_Ability.SelectedIndex = previousAbilityIndex; + } + + private static string GetEntryTitle(string str, int i) => $"{str} - {i:000}"; + + private void Setup() + { + AltForms = new byte[Personal.TableLength].Select(_ => Enumerable.Range(0, 32).Select(i => i.ToString()).ToArray()).ToArray(); + CB_TrainerID.Items.Clear(); + for (int i = 0; i < Trainers.Length; i++) + CB_TrainerID.Items.Add(GetEntryTitle(trName[i] ?? "UNKNOWN", i)); + + CB_Trainer_Class.Items.Clear(); + for (int i = 0; i < trClass.Length; i++) + CB_Trainer_Class.Items.Add(GetEntryTitle(trClass[i], i)); + + specieslist[0] = "---"; + abilitylist[0] = itemlist[0] = movelist[0] = "(None)"; + pba = new[] { PB_Team1, PB_Team2, PB_Team3, PB_Team4, PB_Team5, PB_Team6 }; + + CB_Species.Items.Clear(); + foreach (string s in specieslist) + CB_Species.Items.Add(s); + + CB_Move1.Items.Clear(); + CB_Move2.Items.Clear(); + CB_Move3.Items.Clear(); + CB_Move4.Items.Clear(); + foreach (string s in movelist) + { + CB_Move1.Items.Add(s); + CB_Move2.Items.Add(s); + CB_Move3.Items.Add(s); + CB_Move4.Items.Add(s); + } + + Stats.Initialize(types); + + CB_Nature.Items.Clear(); + CB_Nature.Items.AddRange(natures.Take(25).ToArray()); + + CB_Item.Items.Clear(); + foreach (string s in itemlist) + CB_Item.Items.Add(s); + + CB_Gender.Items.Clear(); + CB_Gender.Items.Add("- / Genderless/Random"); + CB_Gender.Items.Add("♂ / Male"); + CB_Gender.Items.Add("♀ / Female"); + + CB_Forme.Items.Add(""); + + CB_Species.SelectedIndex = 0; + CB_Item_1.Items.Clear(); + CB_Item_2.Items.Clear(); + CB_Item_3.Items.Clear(); + CB_Item_4.Items.Clear(); + foreach (string s in itemlist) + { + CB_Item_1.Items.Add(s); + CB_Item_2.Items.Add(s); + CB_Item_3.Items.Add(s); + CB_Item_4.Items.Add(s); + } + + CB_Money.Items.Clear(); + for (int i = 0; i < 256; i++) + { CB_Money.Items.Add(i.ToString()); } + + CB_TrainerID.SelectedIndex = 0; + entry = 0; + pkm = new TrainerPoke7b(); + PopulateFields(pkm); + } + + private void ChangeTrainerIndex(object sender, EventArgs e) + { + SaveEntry(); + LoadEntry(); + if (TC_trdata.SelectedIndex == TC_trdata.TabCount - 1) // last + TC_trdata.SelectedIndex = 0; + } + + private void SaveEntry() + { + if (entry < 0) + return; + var tr = Trainers[entry]; + PrepareTrainer(tr.Self); + } + + private bool loading; + + private void LoadEntry() + { + entry = CB_TrainerID.SelectedIndex; + var tr = Trainers[entry]; + + loading = true; + + PopulateFieldsTrainer(tr.Self); + PopulateTeam(tr.Team); + loading = false; + } + + private void UpdateTrainerName(object sender, EventArgs e) + { + if (loading) + return; + string str = TB_TrainerName.Text; + CB_TrainerID.Items[entry] = GetEntryTitle(str, entry); + } + + private TrainerPoke pkm; + + private void PopulateFields(TrainerPoke pk) + { + pkm = pk.Clone(); + + Stats.UpdatingFields = true; + + CB_Species.SelectedIndex = pkm.Species; + CB_Forme.SelectedIndex = pkm.Form; + CB_Ability.SelectedIndex = pkm.Ability; + CB_Nature.SelectedIndex = pkm.Nature; + NUD_Level.Value = Math.Min(NUD_Level.Maximum, pkm.Level); + CB_Item.SelectedIndex = pkm.HeldItem; + CHK_Shiny.Checked = pkm.Shiny; + CB_Gender.SelectedIndex = pkm.Gender; + + CB_Move1.SelectedIndex = pkm.Move1; + CB_Move2.SelectedIndex = pkm.Move2; + CB_Move3.SelectedIndex = pkm.Move3; + CB_Move4.SelectedIndex = pkm.Move4; + + Stats.LoadStats(pk); + } + + private TrainerPoke PreparePKM() + { + var pk = pkm.Clone(); + pk.Species = CB_Species.SelectedIndex; + pk.Form = CB_Forme.SelectedIndex; + pk.Level = (byte)NUD_Level.Value; + pk.Ability = CB_Ability.SelectedIndex; + pk.HeldItem = CB_Item.SelectedIndex; + pk.Shiny = CHK_Shiny.Checked; + pk.Nature = CB_Nature.SelectedIndex; + pk.Gender = CB_Gender.SelectedIndex; + + pk.Move1 = CB_Move1.SelectedIndex; + pk.Move2 = CB_Move2.SelectedIndex; + pk.Move3 = CB_Move3.SelectedIndex; + pk.Move4 = CB_Move4.SelectedIndex; + + return pk; + } + + private void PopulateFieldsTrainer(TrainerData tr) + { + // Load Trainer Data + CB_Trainer_Class.SelectedIndex = tr.Class; + CB_Item_1.SelectedIndex = tr.Item1; + CB_Item_2.SelectedIndex = tr.Item2; + CB_Item_3.SelectedIndex = tr.Item3; + CB_Item_4.SelectedIndex = tr.Item4; + CB_Money.SelectedIndex = tr.Money; + NUD_AI.Value = (int)tr.AI; + } + + private void PrepareTrainer(TrainerData tr) + { + tr.Class = (byte)CB_Trainer_Class.SelectedIndex; + tr.Item1 = CB_Item_1.SelectedIndex; + tr.Item2 = CB_Item_2.SelectedIndex; + tr.Item3 = CB_Item_3.SelectedIndex; + tr.Item4 = CB_Item_4.SelectedIndex; + tr.Money = CB_Money.SelectedIndex; + tr.AI = (uint)NUD_AI.Value; + } + + protected override void OnFormClosing(FormClosingEventArgs e) + { + SaveEntry(); + base.OnFormClosing(e); + } + + private void DumpTxt(object sender, EventArgs e) + { + using (var sfd = new SaveFileDialog()) + { + sfd.FileName = "Trainers.txt"; + if (sfd.ShowDialog() != DialogResult.OK) + return; + var sb = new StringBuilder(); + for (int i = 0; i < Trainers.Length; i++) + sb.Append(GetTrainerString(Trainers[i])); + File.WriteAllText(sfd.FileName, sb.ToString()); + } + } + + private string GetTrainerString(VsTrainer Trainer) + { + var file = Trainer.ID; + var tr = Trainer.Self; + var name = Trainer.Name; + var team = Trainer.Team; + var sb = new StringBuilder(); + sb.AppendLine("======"); + sb.Append(file).Append(" - ").Append(trClass[tr.Class]).Append(" ").AppendLine(name); + sb.AppendLine("======"); + sb.Append("Pokemon: ").Append(tr.NumPokemon).AppendLine(); + for (int i = 0; i < tr.NumPokemon; i++) + { + if (team[i].Shiny) + sb.Append("Shiny "); + sb.Append(specieslist[team[i].Species]); + sb.Append(" (Lv. ").Append(team[i].Level).Append(") "); + if (team[i].HeldItem > 0) + sb.Append("@").Append(itemlist[team[i].HeldItem]); + + if (team[i].Nature != 0) + sb.Append(" (Nature: ").Append(natures[team[i].Nature]).Append(")"); + + sb.Append(" (Moves: ").Append(string.Join("/", team[i].Moves.Select(m => m == 0 ? "(None)" : movelist[m]))).Append(")"); + sb.Append(" IVs: ").Append(string.Join("/", team[i].IVs)); + sb.Append(" EVs: ").Append(string.Join("/", team[i].EVs)); + sb.AppendLine(); + } + return sb.ToString(); + } + + private void UpdateStats(object sender, EventArgs e) + { + if (Stats.UpdatingFields) + return; + if (sender == CB_Nature) + pkm.Nature = WinFormsUtil.GetIndex(CB_Nature); + else if (sender == NUD_Level) + pkm.Level = (int) NUD_Level.Value; + + Stats.UpdateStats(); + } + + private void B_HighAttack_Click(object sender, EventArgs e) + { + pkm.Species = CB_Species.SelectedIndex; + pkm.Level = (int)NUD_Level.Value; + pkm.Form = CB_Forme.SelectedIndex; + //var moves = learn.GetHighPoweredMoves(pkm.Species, pkm.Form, 4); + //SetMoves(moves); + } + + private void B_CurrentAttack_Click(object sender, EventArgs e) + { + pkm.Species = CB_Species.SelectedIndex; + pkm.Level = (int)NUD_Level.Value; + pkm.Form = CB_Forme.SelectedIndex; + //var moves = learn.GetCurrentMoves(pkm.Species, pkm.Form, pkm.Level, 4); + //SetMoves(moves); + } + + private void B_Clear_Click(object sender, EventArgs e) => SetMoves(new int[4]); + + private void SetMoves(IList moves) + { + var mcb = new[] { CB_Move1, CB_Move2, CB_Move3, CB_Move4 }; + for (int i = 0; i < mcb.Length; i++) + mcb[i].SelectedIndex = moves[i]; + } + } + + public static class FormUtil + { + // Utility (Shared) + internal static void SetForms(int species, ComboBox cb, string[][] AltForms) + { + cb.Items.Clear(); + string[] forms = AltForms[species]; + if (forms.Length < 2) + { + cb.Items.Add(""); + cb.Enabled = false; + } + else + { + foreach (string s in forms) + cb.Items.Add(s); + cb.Enabled = true; + } + cb.SelectedIndex = 0; + } + } +} diff --git a/pkNX.WinForms/Subforms/BTTE.designer.cs b/pkNX.WinForms/Subforms/BTTE.designer.cs new file mode 100644 index 00000000..13f6a288 --- /dev/null +++ b/pkNX.WinForms/Subforms/BTTE.designer.cs @@ -0,0 +1,1003 @@ +namespace pkNX.WinForms +{ + partial class BTTE + { + /// + /// 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() + { + this.components = new System.ComponentModel.Container(); + this.CB_TrainerID = new System.Windows.Forms.ComboBox(); + this.L_AI = new System.Windows.Forms.Label(); + this.L_Money = new System.Windows.Forms.Label(); + this.CB_Money = new System.Windows.Forms.ComboBox(); + this.L_Trainer_Class = new System.Windows.Forms.Label(); + this.CB_Trainer_Class = new System.Windows.Forms.ComboBox(); + this.L_Item_4 = new System.Windows.Forms.Label(); + this.CB_Item_4 = new System.Windows.Forms.ComboBox(); + this.L_Item_3 = new System.Windows.Forms.Label(); + this.CB_Item_3 = new System.Windows.Forms.ComboBox(); + this.L_Item_2 = new System.Windows.Forms.Label(); + this.CB_Item_2 = new System.Windows.Forms.ComboBox(); + this.L_Item_1 = new System.Windows.Forms.Label(); + this.CB_Item_1 = new System.Windows.Forms.ComboBox(); + this.L_Team = new System.Windows.Forms.Label(); + this.PB_Team1 = new System.Windows.Forms.PictureBox(); + this.mnuVSD = new System.Windows.Forms.ContextMenuStrip(this.components); + this.mnuView = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuSet = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuDelete = new System.Windows.Forms.ToolStripMenuItem(); + this.PB_Team2 = new System.Windows.Forms.PictureBox(); + this.PB_Team3 = new System.Windows.Forms.PictureBox(); + this.PB_Team4 = new System.Windows.Forms.PictureBox(); + this.PB_Team5 = new System.Windows.Forms.PictureBox(); + this.PB_Team6 = new System.Windows.Forms.PictureBox(); + this.B_Dump = new System.Windows.Forms.Button(); + this.TC_trpoke = new System.Windows.Forms.TabControl(); + this.Tab_Main = new System.Windows.Forms.TabPage(); + this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel(); + this.FLP_Species = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Species = new System.Windows.Forms.Label(); + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.FLP_Form = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Forme = new System.Windows.Forms.Label(); + this.CB_Forme = new System.Windows.Forms.ComboBox(); + this.flowLayoutPanel3 = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Level = new System.Windows.Forms.Label(); + this.NUD_Level = new System.Windows.Forms.NumericUpDown(); + this.flowLayoutPanel4 = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Ability = new System.Windows.Forms.Label(); + this.CB_Ability = new System.Windows.Forms.ComboBox(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Item = new System.Windows.Forms.Label(); + this.CB_Item = new System.Windows.Forms.ComboBox(); + this.flowLayoutPanel5 = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Nature = new System.Windows.Forms.Label(); + this.CB_Nature = new System.Windows.Forms.ComboBox(); + this.flowLayoutPanel6 = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Misc = new System.Windows.Forms.Label(); + this.CHK_Shiny = new System.Windows.Forms.CheckBox(); + this.flowLayoutPanel7 = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Gender = new System.Windows.Forms.Label(); + this.CB_Gender = new System.Windows.Forms.ComboBox(); + this.Tab_Stats = new System.Windows.Forms.TabPage(); + this.Stats = new pkNX.WinForms.Controls.StatEditor(); + this.Tab_Moves = new System.Windows.Forms.TabPage(); + this.B_Clear = new System.Windows.Forms.Button(); + this.B_CurrentAttack = new System.Windows.Forms.Button(); + this.B_HighAttack = new System.Windows.Forms.Button(); + this.GB_Moves = new System.Windows.Forms.GroupBox(); + this.CB_Move1 = new System.Windows.Forms.ComboBox(); + this.CB_Move4 = new System.Windows.Forms.ComboBox(); + this.CB_Move2 = new System.Windows.Forms.ComboBox(); + this.CB_Move3 = new System.Windows.Forms.ComboBox(); + this.NUD_AI = new System.Windows.Forms.NumericUpDown(); + this.L_TrainerName = new System.Windows.Forms.Label(); + this.TB_TrainerName = new System.Windows.Forms.TextBox(); + this.TC_trdata = new System.Windows.Forms.TabControl(); + this.Tab_Trainer = new System.Windows.Forms.TabPage(); + this.CHK_Flag = new System.Windows.Forms.CheckBox(); + this.Tab_Rand = new System.Windows.Forms.TabPage(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team1)).BeginInit(); + this.mnuVSD.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team6)).BeginInit(); + this.TC_trpoke.SuspendLayout(); + this.Tab_Main.SuspendLayout(); + this.flowLayoutPanel2.SuspendLayout(); + this.FLP_Species.SuspendLayout(); + this.FLP_Form.SuspendLayout(); + this.flowLayoutPanel3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).BeginInit(); + this.flowLayoutPanel4.SuspendLayout(); + this.flowLayoutPanel1.SuspendLayout(); + this.flowLayoutPanel5.SuspendLayout(); + this.flowLayoutPanel6.SuspendLayout(); + this.flowLayoutPanel7.SuspendLayout(); + this.Tab_Stats.SuspendLayout(); + this.Tab_Moves.SuspendLayout(); + this.GB_Moves.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_AI)).BeginInit(); + this.TC_trdata.SuspendLayout(); + this.Tab_Trainer.SuspendLayout(); + this.Tab_Rand.SuspendLayout(); + this.SuspendLayout(); + // + // CB_TrainerID + // + this.CB_TrainerID.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TrainerID.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TrainerID.DropDownWidth = 200; + this.CB_TrainerID.FormattingEnabled = true; + this.CB_TrainerID.Location = new System.Drawing.Point(429, 7); + this.CB_TrainerID.MaxDropDownItems = 12; + this.CB_TrainerID.Name = "CB_TrainerID"; + this.CB_TrainerID.Size = new System.Drawing.Size(140, 21); + this.CB_TrainerID.TabIndex = 64; + this.CB_TrainerID.SelectedIndexChanged += new System.EventHandler(this.ChangeTrainerIndex); + // + // L_AI + // + this.L_AI.AutoSize = true; + this.L_AI.Location = new System.Drawing.Point(217, 57); + this.L_AI.Name = "L_AI"; + this.L_AI.Size = new System.Drawing.Size(38, 13); + this.L_AI.TabIndex = 55; + this.L_AI.Text = "AI Val:"; + // + // L_Money + // + this.L_Money.AutoSize = true; + this.L_Money.Location = new System.Drawing.Point(40, 54); + this.L_Money.Name = "L_Money"; + this.L_Money.Size = new System.Drawing.Size(42, 13); + this.L_Money.TabIndex = 53; + this.L_Money.Text = "Money:"; + // + // CB_Money + // + this.CB_Money.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Money.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Money.FormattingEnabled = true; + this.CB_Money.Location = new System.Drawing.Point(85, 51); + this.CB_Money.Name = "CB_Money"; + this.CB_Money.Size = new System.Drawing.Size(70, 21); + this.CB_Money.TabIndex = 52; + // + // L_Trainer_Class + // + this.L_Trainer_Class.AutoSize = true; + this.L_Trainer_Class.Location = new System.Drawing.Point(13, 32); + this.L_Trainer_Class.Name = "L_Trainer_Class"; + this.L_Trainer_Class.Size = new System.Drawing.Size(71, 13); + this.L_Trainer_Class.TabIndex = 49; + this.L_Trainer_Class.Text = "Trainer Class:"; + // + // CB_Trainer_Class + // + this.CB_Trainer_Class.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Trainer_Class.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Trainer_Class.DropDownWidth = 165; + this.CB_Trainer_Class.FormattingEnabled = true; + this.CB_Trainer_Class.Location = new System.Drawing.Point(85, 29); + this.CB_Trainer_Class.Name = "CB_Trainer_Class"; + this.CB_Trainer_Class.Size = new System.Drawing.Size(175, 21); + this.CB_Trainer_Class.TabIndex = 48; + // + // L_Item_4 + // + this.L_Item_4.AutoSize = true; + this.L_Item_4.Location = new System.Drawing.Point(6, 176); + this.L_Item_4.Name = "L_Item_4"; + this.L_Item_4.Size = new System.Drawing.Size(39, 13); + this.L_Item_4.TabIndex = 34; + this.L_Item_4.Text = "Item 4:"; + // + // CB_Item_4 + // + this.CB_Item_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Item_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item_4.FormattingEnabled = true; + this.CB_Item_4.Location = new System.Drawing.Point(51, 173); + this.CB_Item_4.Name = "CB_Item_4"; + this.CB_Item_4.Size = new System.Drawing.Size(99, 21); + this.CB_Item_4.TabIndex = 33; + // + // L_Item_3 + // + this.L_Item_3.AutoSize = true; + this.L_Item_3.Location = new System.Drawing.Point(6, 154); + this.L_Item_3.Name = "L_Item_3"; + this.L_Item_3.Size = new System.Drawing.Size(39, 13); + this.L_Item_3.TabIndex = 32; + this.L_Item_3.Text = "Item 3:"; + // + // CB_Item_3 + // + this.CB_Item_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Item_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item_3.FormattingEnabled = true; + this.CB_Item_3.Location = new System.Drawing.Point(51, 151); + this.CB_Item_3.Name = "CB_Item_3"; + this.CB_Item_3.Size = new System.Drawing.Size(99, 21); + this.CB_Item_3.TabIndex = 31; + // + // L_Item_2 + // + this.L_Item_2.AutoSize = true; + this.L_Item_2.Location = new System.Drawing.Point(6, 132); + this.L_Item_2.Name = "L_Item_2"; + this.L_Item_2.Size = new System.Drawing.Size(39, 13); + this.L_Item_2.TabIndex = 30; + this.L_Item_2.Text = "Item 2:"; + // + // CB_Item_2 + // + this.CB_Item_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Item_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item_2.FormattingEnabled = true; + this.CB_Item_2.Location = new System.Drawing.Point(51, 129); + this.CB_Item_2.Name = "CB_Item_2"; + this.CB_Item_2.Size = new System.Drawing.Size(99, 21); + this.CB_Item_2.TabIndex = 29; + // + // L_Item_1 + // + this.L_Item_1.AutoSize = true; + this.L_Item_1.Location = new System.Drawing.Point(6, 110); + this.L_Item_1.Name = "L_Item_1"; + this.L_Item_1.Size = new System.Drawing.Size(39, 13); + this.L_Item_1.TabIndex = 28; + this.L_Item_1.Text = "Item 1:"; + // + // CB_Item_1 + // + this.CB_Item_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Item_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item_1.FormattingEnabled = true; + this.CB_Item_1.Location = new System.Drawing.Point(51, 107); + this.CB_Item_1.Name = "CB_Item_1"; + this.CB_Item_1.Size = new System.Drawing.Size(99, 21); + this.CB_Item_1.TabIndex = 27; + // + // L_Team + // + this.L_Team.Location = new System.Drawing.Point(-19, 267); + this.L_Team.Name = "L_Team"; + this.L_Team.Size = new System.Drawing.Size(66, 15); + this.L_Team.TabIndex = 445; + this.L_Team.Text = "Team:"; + this.L_Team.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // PB_Team1 + // + this.PB_Team1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Team1.ContextMenuStrip = this.mnuVSD; + this.PB_Team1.Location = new System.Drawing.Point(53, 244); + this.PB_Team1.Name = "PB_Team1"; + this.PB_Team1.Size = new System.Drawing.Size(82, 62); + this.PB_Team1.TabIndex = 444; + this.PB_Team1.TabStop = false; + // + // mnuVSD + // + this.mnuVSD.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuView, + this.mnuSet, + this.mnuDelete}); + this.mnuVSD.Name = "mnuVSD"; + this.mnuVSD.Size = new System.Drawing.Size(108, 70); + // + // mnuView + // + this.mnuView.Name = "mnuView"; + this.mnuView.Size = new System.Drawing.Size(107, 22); + this.mnuView.Text = "View"; + // + // mnuSet + // + this.mnuSet.Name = "mnuSet"; + this.mnuSet.Size = new System.Drawing.Size(107, 22); + this.mnuSet.Text = "Set"; + // + // mnuDelete + // + this.mnuDelete.Name = "mnuDelete"; + this.mnuDelete.Size = new System.Drawing.Size(107, 22); + this.mnuDelete.Text = "Delete"; + // + // PB_Team2 + // + this.PB_Team2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Team2.ContextMenuStrip = this.mnuVSD; + this.PB_Team2.Location = new System.Drawing.Point(139, 244); + this.PB_Team2.Name = "PB_Team2"; + this.PB_Team2.Size = new System.Drawing.Size(82, 62); + this.PB_Team2.TabIndex = 443; + this.PB_Team2.TabStop = false; + // + // PB_Team3 + // + this.PB_Team3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Team3.ContextMenuStrip = this.mnuVSD; + this.PB_Team3.Location = new System.Drawing.Point(225, 244); + this.PB_Team3.Name = "PB_Team3"; + this.PB_Team3.Size = new System.Drawing.Size(82, 62); + this.PB_Team3.TabIndex = 442; + this.PB_Team3.TabStop = false; + // + // PB_Team4 + // + this.PB_Team4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Team4.ContextMenuStrip = this.mnuVSD; + this.PB_Team4.Location = new System.Drawing.Point(311, 244); + this.PB_Team4.Name = "PB_Team4"; + this.PB_Team4.Size = new System.Drawing.Size(82, 62); + this.PB_Team4.TabIndex = 441; + this.PB_Team4.TabStop = false; + // + // PB_Team5 + // + this.PB_Team5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Team5.ContextMenuStrip = this.mnuVSD; + this.PB_Team5.Location = new System.Drawing.Point(397, 244); + this.PB_Team5.Name = "PB_Team5"; + this.PB_Team5.Size = new System.Drawing.Size(82, 62); + this.PB_Team5.TabIndex = 440; + this.PB_Team5.TabStop = false; + // + // PB_Team6 + // + this.PB_Team6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Team6.ContextMenuStrip = this.mnuVSD; + this.PB_Team6.Location = new System.Drawing.Point(483, 244); + this.PB_Team6.Name = "PB_Team6"; + this.PB_Team6.Size = new System.Drawing.Size(82, 62); + this.PB_Team6.TabIndex = 439; + this.PB_Team6.TabStop = false; + // + // B_Dump + // + this.B_Dump.Location = new System.Drawing.Point(160, 3); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(93, 23); + this.B_Dump.TabIndex = 446; + this.B_Dump.Text = "Dump to .TXT"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.DumpTxt); + // + // TC_trpoke + // + this.TC_trpoke.Controls.Add(this.Tab_Main); + this.TC_trpoke.Controls.Add(this.Tab_Stats); + this.TC_trpoke.Controls.Add(this.Tab_Moves); + this.TC_trpoke.Location = new System.Drawing.Point(12, 12); + this.TC_trpoke.Name = "TC_trpoke"; + this.TC_trpoke.SelectedIndex = 0; + this.TC_trpoke.Size = new System.Drawing.Size(232, 225); + this.TC_trpoke.TabIndex = 448; + // + // Tab_Main + // + this.Tab_Main.Controls.Add(this.flowLayoutPanel2); + this.Tab_Main.Location = new System.Drawing.Point(4, 22); + this.Tab_Main.Name = "Tab_Main"; + this.Tab_Main.Padding = new System.Windows.Forms.Padding(3); + this.Tab_Main.Size = new System.Drawing.Size(224, 199); + this.Tab_Main.TabIndex = 0; + this.Tab_Main.Text = "Main"; + this.Tab_Main.UseVisualStyleBackColor = true; + // + // flowLayoutPanel2 + // + this.flowLayoutPanel2.Controls.Add(this.FLP_Species); + this.flowLayoutPanel2.Controls.Add(this.FLP_Form); + this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel3); + this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel4); + this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel1); + this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel5); + this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel6); + this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel7); + this.flowLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.flowLayoutPanel2.Location = new System.Drawing.Point(3, 3); + this.flowLayoutPanel2.Name = "flowLayoutPanel2"; + this.flowLayoutPanel2.Size = new System.Drawing.Size(218, 193); + this.flowLayoutPanel2.TabIndex = 2; + // + // FLP_Species + // + this.FLP_Species.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_Species.Controls.Add(this.L_Species); + this.FLP_Species.Controls.Add(this.CB_Species); + this.FLP_Species.Location = new System.Drawing.Point(0, 10); + this.FLP_Species.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); + this.FLP_Species.Name = "FLP_Species"; + this.FLP_Species.Size = new System.Drawing.Size(215, 21); + this.FLP_Species.TabIndex = 1; + // + // L_Species + // + this.L_Species.Location = new System.Drawing.Point(3, 0); + this.L_Species.Name = "L_Species"; + this.L_Species.Size = new System.Drawing.Size(55, 21); + this.L_Species.TabIndex = 0; + this.L_Species.Text = "Species:"; + this.L_Species.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Species + // + this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(61, 0); + this.CB_Species.Margin = new System.Windows.Forms.Padding(0); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(136, 21); + this.CB_Species.TabIndex = 1; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.RefreshSpeciesAbility); + // + // FLP_Form + // + this.FLP_Form.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_Form.Controls.Add(this.L_Forme); + this.FLP_Form.Controls.Add(this.CB_Forme); + this.FLP_Form.Location = new System.Drawing.Point(0, 31); + this.FLP_Form.Margin = new System.Windows.Forms.Padding(0); + this.FLP_Form.Name = "FLP_Form"; + this.FLP_Form.Size = new System.Drawing.Size(215, 21); + this.FLP_Form.TabIndex = 2; + // + // L_Forme + // + this.L_Forme.Location = new System.Drawing.Point(3, 0); + this.L_Forme.Name = "L_Forme"; + this.L_Forme.Size = new System.Drawing.Size(55, 21); + this.L_Forme.TabIndex = 0; + this.L_Forme.Text = "Form:"; + this.L_Forme.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Forme + // + this.CB_Forme.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Forme.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Forme.FormattingEnabled = true; + this.CB_Forme.Location = new System.Drawing.Point(61, 0); + this.CB_Forme.Margin = new System.Windows.Forms.Padding(0); + this.CB_Forme.Name = "CB_Forme"; + this.CB_Forme.Size = new System.Drawing.Size(136, 21); + this.CB_Forme.TabIndex = 1; + this.CB_Forme.SelectedIndexChanged += new System.EventHandler(this.RefreshFormAbility); + // + // flowLayoutPanel3 + // + this.flowLayoutPanel3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.flowLayoutPanel3.Controls.Add(this.L_Level); + this.flowLayoutPanel3.Controls.Add(this.NUD_Level); + this.flowLayoutPanel3.Location = new System.Drawing.Point(0, 52); + this.flowLayoutPanel3.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel3.Name = "flowLayoutPanel3"; + this.flowLayoutPanel3.Size = new System.Drawing.Size(215, 21); + this.flowLayoutPanel3.TabIndex = 3; + // + // L_Level + // + this.L_Level.Location = new System.Drawing.Point(3, 0); + this.L_Level.Name = "L_Level"; + this.L_Level.Size = new System.Drawing.Size(55, 21); + this.L_Level.TabIndex = 0; + this.L_Level.Text = "Level:"; + this.L_Level.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Level + // + this.NUD_Level.Location = new System.Drawing.Point(61, 0); + this.NUD_Level.Margin = new System.Windows.Forms.Padding(0); + this.NUD_Level.Name = "NUD_Level"; + this.NUD_Level.Size = new System.Drawing.Size(56, 20); + this.NUD_Level.TabIndex = 1; + this.NUD_Level.ValueChanged += new System.EventHandler(this.UpdateStats); + // + // flowLayoutPanel4 + // + this.flowLayoutPanel4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.flowLayoutPanel4.Controls.Add(this.L_Ability); + this.flowLayoutPanel4.Controls.Add(this.CB_Ability); + this.flowLayoutPanel4.Location = new System.Drawing.Point(0, 73); + this.flowLayoutPanel4.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel4.Name = "flowLayoutPanel4"; + this.flowLayoutPanel4.Size = new System.Drawing.Size(215, 21); + this.flowLayoutPanel4.TabIndex = 4; + // + // L_Ability + // + this.L_Ability.Location = new System.Drawing.Point(3, 0); + this.L_Ability.Name = "L_Ability"; + this.L_Ability.Size = new System.Drawing.Size(55, 21); + this.L_Ability.TabIndex = 0; + this.L_Ability.Text = "Ability:"; + this.L_Ability.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Ability + // + this.CB_Ability.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Ability.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Ability.FormattingEnabled = true; + this.CB_Ability.Location = new System.Drawing.Point(61, 0); + this.CB_Ability.Margin = new System.Windows.Forms.Padding(0); + this.CB_Ability.Name = "CB_Ability"; + this.CB_Ability.Size = new System.Drawing.Size(136, 21); + this.CB_Ability.TabIndex = 2; + // + // flowLayoutPanel1 + // + this.flowLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.flowLayoutPanel1.Controls.Add(this.L_Item); + this.flowLayoutPanel1.Controls.Add(this.CB_Item); + this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 94); + this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.Size = new System.Drawing.Size(215, 21); + this.flowLayoutPanel1.TabIndex = 5; + // + // L_Item + // + this.L_Item.Location = new System.Drawing.Point(3, 0); + this.L_Item.Name = "L_Item"; + this.L_Item.Size = new System.Drawing.Size(55, 21); + this.L_Item.TabIndex = 0; + this.L_Item.Text = "Held Item:"; + this.L_Item.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Item + // + this.CB_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item.FormattingEnabled = true; + this.CB_Item.Location = new System.Drawing.Point(61, 0); + this.CB_Item.Margin = new System.Windows.Forms.Padding(0); + this.CB_Item.Name = "CB_Item"; + this.CB_Item.Size = new System.Drawing.Size(136, 21); + this.CB_Item.TabIndex = 2; + // + // flowLayoutPanel5 + // + this.flowLayoutPanel5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.flowLayoutPanel5.Controls.Add(this.L_Nature); + this.flowLayoutPanel5.Controls.Add(this.CB_Nature); + this.flowLayoutPanel5.Location = new System.Drawing.Point(0, 115); + this.flowLayoutPanel5.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel5.Name = "flowLayoutPanel5"; + this.flowLayoutPanel5.Size = new System.Drawing.Size(215, 21); + this.flowLayoutPanel5.TabIndex = 6; + // + // L_Nature + // + this.L_Nature.Location = new System.Drawing.Point(3, 0); + this.L_Nature.Name = "L_Nature"; + this.L_Nature.Size = new System.Drawing.Size(55, 21); + this.L_Nature.TabIndex = 0; + this.L_Nature.Text = "Nature:"; + this.L_Nature.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Nature + // + this.CB_Nature.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Nature.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Nature.FormattingEnabled = true; + this.CB_Nature.Location = new System.Drawing.Point(61, 0); + this.CB_Nature.Margin = new System.Windows.Forms.Padding(0); + this.CB_Nature.Name = "CB_Nature"; + this.CB_Nature.Size = new System.Drawing.Size(136, 21); + this.CB_Nature.TabIndex = 2; + this.CB_Nature.SelectedIndexChanged += new System.EventHandler(this.UpdateStats); + // + // flowLayoutPanel6 + // + this.flowLayoutPanel6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.flowLayoutPanel6.Controls.Add(this.L_Misc); + this.flowLayoutPanel6.Controls.Add(this.CHK_Shiny); + this.flowLayoutPanel6.Location = new System.Drawing.Point(0, 136); + this.flowLayoutPanel6.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel6.Name = "flowLayoutPanel6"; + this.flowLayoutPanel6.Size = new System.Drawing.Size(215, 21); + this.flowLayoutPanel6.TabIndex = 7; + // + // L_Misc + // + this.L_Misc.Location = new System.Drawing.Point(3, 0); + this.L_Misc.Name = "L_Misc"; + this.L_Misc.Size = new System.Drawing.Size(55, 21); + this.L_Misc.TabIndex = 0; + this.L_Misc.Text = "Misc:"; + this.L_Misc.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CHK_Shiny + // + this.CHK_Shiny.AutoSize = true; + this.CHK_Shiny.Location = new System.Drawing.Point(64, 3); + this.CHK_Shiny.Name = "CHK_Shiny"; + this.CHK_Shiny.Size = new System.Drawing.Size(52, 17); + this.CHK_Shiny.TabIndex = 1; + this.CHK_Shiny.Text = "Shiny"; + this.CHK_Shiny.UseVisualStyleBackColor = true; + // + // flowLayoutPanel7 + // + this.flowLayoutPanel7.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.flowLayoutPanel7.Controls.Add(this.L_Gender); + this.flowLayoutPanel7.Controls.Add(this.CB_Gender); + this.flowLayoutPanel7.Location = new System.Drawing.Point(0, 157); + this.flowLayoutPanel7.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel7.Name = "flowLayoutPanel7"; + this.flowLayoutPanel7.Size = new System.Drawing.Size(215, 21); + this.flowLayoutPanel7.TabIndex = 8; + // + // L_Gender + // + this.L_Gender.Location = new System.Drawing.Point(3, 0); + this.L_Gender.Name = "L_Gender"; + this.L_Gender.Size = new System.Drawing.Size(55, 21); + this.L_Gender.TabIndex = 0; + this.L_Gender.Text = "Gender:"; + this.L_Gender.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Gender + // + this.CB_Gender.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Gender.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Gender.FormattingEnabled = true; + this.CB_Gender.Location = new System.Drawing.Point(61, 0); + this.CB_Gender.Margin = new System.Windows.Forms.Padding(0); + this.CB_Gender.Name = "CB_Gender"; + this.CB_Gender.Size = new System.Drawing.Size(136, 21); + this.CB_Gender.TabIndex = 3; + // + // Tab_Stats + // + this.Tab_Stats.Controls.Add(this.Stats); + this.Tab_Stats.Location = new System.Drawing.Point(4, 22); + this.Tab_Stats.Name = "Tab_Stats"; + this.Tab_Stats.Padding = new System.Windows.Forms.Padding(3); + this.Tab_Stats.Size = new System.Drawing.Size(224, 199); + this.Tab_Stats.TabIndex = 2; + this.Tab_Stats.Text = "Stats"; + this.Tab_Stats.UseVisualStyleBackColor = true; + // + // Stats + // + this.Stats.Location = new System.Drawing.Point(17, 1); + this.Stats.Name = "Stats"; + this.Stats.PKM = null; + this.Stats.Size = new System.Drawing.Size(192, 195); + this.Stats.TabIndex = 0; + // + // Tab_Moves + // + this.Tab_Moves.Controls.Add(this.B_Clear); + this.Tab_Moves.Controls.Add(this.B_CurrentAttack); + this.Tab_Moves.Controls.Add(this.B_HighAttack); + this.Tab_Moves.Controls.Add(this.GB_Moves); + this.Tab_Moves.Location = new System.Drawing.Point(4, 22); + this.Tab_Moves.Name = "Tab_Moves"; + this.Tab_Moves.Padding = new System.Windows.Forms.Padding(3); + this.Tab_Moves.Size = new System.Drawing.Size(224, 199); + this.Tab_Moves.TabIndex = 1; + this.Tab_Moves.Text = "Moves"; + this.Tab_Moves.UseVisualStyleBackColor = true; + // + // B_Clear + // + this.B_Clear.Location = new System.Drawing.Point(75, 3); + this.B_Clear.Name = "B_Clear"; + this.B_Clear.Size = new System.Drawing.Size(75, 23); + this.B_Clear.TabIndex = 450; + this.B_Clear.Text = "Clear"; + this.B_Clear.UseVisualStyleBackColor = true; + this.B_Clear.Click += new System.EventHandler(this.B_Clear_Click); + // + // B_CurrentAttack + // + this.B_CurrentAttack.Enabled = false; + this.B_CurrentAttack.Location = new System.Drawing.Point(16, 26); + this.B_CurrentAttack.Name = "B_CurrentAttack"; + this.B_CurrentAttack.Size = new System.Drawing.Size(93, 40); + this.B_CurrentAttack.TabIndex = 449; + this.B_CurrentAttack.Text = "Current Level Levelup Moves"; + this.B_CurrentAttack.UseVisualStyleBackColor = true; + this.B_CurrentAttack.Click += new System.EventHandler(this.B_CurrentAttack_Click); + // + // B_HighAttack + // + this.B_HighAttack.Enabled = false; + this.B_HighAttack.Location = new System.Drawing.Point(115, 26); + this.B_HighAttack.Name = "B_HighAttack"; + this.B_HighAttack.Size = new System.Drawing.Size(93, 40); + this.B_HighAttack.TabIndex = 448; + this.B_HighAttack.Text = "High Attacking Levelup Moves"; + this.B_HighAttack.UseVisualStyleBackColor = true; + this.B_HighAttack.Click += new System.EventHandler(this.B_HighAttack_Click); + // + // GB_Moves + // + this.GB_Moves.Controls.Add(this.CB_Move1); + this.GB_Moves.Controls.Add(this.CB_Move4); + this.GB_Moves.Controls.Add(this.CB_Move2); + this.GB_Moves.Controls.Add(this.CB_Move3); + this.GB_Moves.Location = new System.Drawing.Point(22, 72); + this.GB_Moves.Name = "GB_Moves"; + this.GB_Moves.Size = new System.Drawing.Size(181, 114); + this.GB_Moves.TabIndex = 0; + this.GB_Moves.TabStop = false; + this.GB_Moves.Text = "Moves"; + // + // CB_Move1 + // + this.CB_Move1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Move1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move1.FormattingEnabled = true; + this.CB_Move1.Location = new System.Drawing.Point(40, 16); + this.CB_Move1.Margin = new System.Windows.Forms.Padding(0); + this.CB_Move1.Name = "CB_Move1"; + this.CB_Move1.Size = new System.Drawing.Size(121, 21); + this.CB_Move1.TabIndex = 1; + // + // CB_Move4 + // + this.CB_Move4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Move4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move4.FormattingEnabled = true; + this.CB_Move4.Location = new System.Drawing.Point(40, 82); + this.CB_Move4.Margin = new System.Windows.Forms.Padding(0); + this.CB_Move4.Name = "CB_Move4"; + this.CB_Move4.Size = new System.Drawing.Size(121, 21); + this.CB_Move4.TabIndex = 2; + // + // CB_Move2 + // + this.CB_Move2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Move2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move2.FormattingEnabled = true; + this.CB_Move2.Location = new System.Drawing.Point(40, 38); + this.CB_Move2.Margin = new System.Windows.Forms.Padding(0); + this.CB_Move2.Name = "CB_Move2"; + this.CB_Move2.Size = new System.Drawing.Size(121, 21); + this.CB_Move2.TabIndex = 1; + // + // CB_Move3 + // + this.CB_Move3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Move3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move3.FormattingEnabled = true; + this.CB_Move3.Location = new System.Drawing.Point(40, 60); + this.CB_Move3.Margin = new System.Windows.Forms.Padding(0); + this.CB_Move3.Name = "CB_Move3"; + this.CB_Move3.Size = new System.Drawing.Size(121, 21); + this.CB_Move3.TabIndex = 2; + // + // NUD_AI + // + this.NUD_AI.Hexadecimal = true; + this.NUD_AI.Location = new System.Drawing.Point(261, 55); + this.NUD_AI.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_AI.Name = "NUD_AI"; + this.NUD_AI.Size = new System.Drawing.Size(47, 20); + this.NUD_AI.TabIndex = 58; + // + // L_TrainerName + // + this.L_TrainerName.AutoSize = true; + this.L_TrainerName.Location = new System.Drawing.Point(10, 11); + this.L_TrainerName.Name = "L_TrainerName"; + this.L_TrainerName.Size = new System.Drawing.Size(74, 13); + this.L_TrainerName.TabIndex = 450; + this.L_TrainerName.Text = "Trainer Name:"; + this.L_TrainerName.Visible = false; + // + // TB_TrainerName + // + this.TB_TrainerName.Location = new System.Drawing.Point(85, 8); + this.TB_TrainerName.MaxLength = 50; + this.TB_TrainerName.Name = "TB_TrainerName"; + this.TB_TrainerName.Size = new System.Drawing.Size(175, 20); + this.TB_TrainerName.TabIndex = 35; + this.TB_TrainerName.Visible = false; + this.TB_TrainerName.TextChanged += new System.EventHandler(this.UpdateTrainerName); + // + // TC_trdata + // + this.TC_trdata.Controls.Add(this.Tab_Trainer); + this.TC_trdata.Controls.Add(this.Tab_Rand); + this.TC_trdata.Location = new System.Drawing.Point(250, 13); + this.TC_trdata.Name = "TC_trdata"; + this.TC_trdata.SelectedIndex = 0; + this.TC_trdata.Size = new System.Drawing.Size(322, 225); + this.TC_trdata.TabIndex = 450; + // + // Tab_Trainer + // + this.Tab_Trainer.Controls.Add(this.CHK_Flag); + this.Tab_Trainer.Controls.Add(this.NUD_AI); + this.Tab_Trainer.Controls.Add(this.L_AI); + this.Tab_Trainer.Controls.Add(this.TB_TrainerName); + this.Tab_Trainer.Controls.Add(this.L_Trainer_Class); + this.Tab_Trainer.Controls.Add(this.CB_Item_1); + this.Tab_Trainer.Controls.Add(this.CB_Trainer_Class); + this.Tab_Trainer.Controls.Add(this.L_Money); + this.Tab_Trainer.Controls.Add(this.L_TrainerName); + this.Tab_Trainer.Controls.Add(this.CB_Money); + this.Tab_Trainer.Controls.Add(this.L_Item_2); + this.Tab_Trainer.Controls.Add(this.L_Item_4); + this.Tab_Trainer.Controls.Add(this.L_Item_1); + this.Tab_Trainer.Controls.Add(this.CB_Item_2); + this.Tab_Trainer.Controls.Add(this.CB_Item_3); + this.Tab_Trainer.Controls.Add(this.CB_Item_4); + this.Tab_Trainer.Controls.Add(this.L_Item_3); + this.Tab_Trainer.Location = new System.Drawing.Point(4, 22); + this.Tab_Trainer.Name = "Tab_Trainer"; + this.Tab_Trainer.Padding = new System.Windows.Forms.Padding(3); + this.Tab_Trainer.Size = new System.Drawing.Size(314, 199); + this.Tab_Trainer.TabIndex = 0; + this.Tab_Trainer.Text = "Trainer"; + this.Tab_Trainer.UseVisualStyleBackColor = true; + // + // CHK_Flag + // + this.CHK_Flag.AutoSize = true; + this.CHK_Flag.Location = new System.Drawing.Point(158, 54); + this.CHK_Flag.Name = "CHK_Flag"; + this.CHK_Flag.Size = new System.Drawing.Size(46, 17); + this.CHK_Flag.TabIndex = 451; + this.CHK_Flag.Text = "Flag"; + this.CHK_Flag.UseVisualStyleBackColor = true; + // + // Tab_Rand + // + this.Tab_Rand.Controls.Add(this.B_Dump); + this.Tab_Rand.Location = new System.Drawing.Point(4, 22); + this.Tab_Rand.Name = "Tab_Rand"; + this.Tab_Rand.Size = new System.Drawing.Size(314, 199); + this.Tab_Rand.TabIndex = 2; + this.Tab_Rand.Text = "Randomizer Options"; + this.Tab_Rand.UseVisualStyleBackColor = true; + // + // SMTE + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(580, 315); + this.Controls.Add(this.TC_trpoke); + this.Controls.Add(this.L_Team); + this.Controls.Add(this.PB_Team1); + this.Controls.Add(this.PB_Team2); + this.Controls.Add(this.PB_Team3); + this.Controls.Add(this.PB_Team4); + this.Controls.Add(this.PB_Team5); + this.Controls.Add(this.PB_Team6); + this.Controls.Add(this.CB_TrainerID); + this.Controls.Add(this.TC_trdata); + this.Name = "BTTE"; + this.Text = "Trainer Editor"; + ((System.ComponentModel.ISupportInitialize)(this.PB_Team1)).EndInit(); + this.mnuVSD.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team6)).EndInit(); + this.TC_trpoke.ResumeLayout(false); + this.Tab_Main.ResumeLayout(false); + this.flowLayoutPanel2.ResumeLayout(false); + this.FLP_Species.ResumeLayout(false); + this.FLP_Form.ResumeLayout(false); + this.flowLayoutPanel3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).EndInit(); + this.flowLayoutPanel4.ResumeLayout(false); + this.flowLayoutPanel1.ResumeLayout(false); + this.flowLayoutPanel5.ResumeLayout(false); + this.flowLayoutPanel6.ResumeLayout(false); + this.flowLayoutPanel6.PerformLayout(); + this.flowLayoutPanel7.ResumeLayout(false); + this.Tab_Stats.ResumeLayout(false); + this.Tab_Moves.ResumeLayout(false); + this.GB_Moves.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.NUD_AI)).EndInit(); + this.TC_trdata.ResumeLayout(false); + this.Tab_Trainer.ResumeLayout(false); + this.Tab_Trainer.PerformLayout(); + this.Tab_Rand.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.ComboBox CB_TrainerID; + private System.Windows.Forms.Label L_AI; + private System.Windows.Forms.Label L_Money; + private System.Windows.Forms.ComboBox CB_Money; + private System.Windows.Forms.Label L_Trainer_Class; + private System.Windows.Forms.ComboBox CB_Trainer_Class; + private System.Windows.Forms.Label L_Item_4; + private System.Windows.Forms.ComboBox CB_Item_4; + private System.Windows.Forms.Label L_Item_3; + private System.Windows.Forms.ComboBox CB_Item_3; + private System.Windows.Forms.Label L_Item_2; + private System.Windows.Forms.ComboBox CB_Item_2; + private System.Windows.Forms.Label L_Item_1; + private System.Windows.Forms.ComboBox CB_Item_1; + private System.Windows.Forms.Label L_Team; + private System.Windows.Forms.PictureBox PB_Team1; + private System.Windows.Forms.PictureBox PB_Team2; + private System.Windows.Forms.PictureBox PB_Team3; + private System.Windows.Forms.PictureBox PB_Team4; + private System.Windows.Forms.PictureBox PB_Team5; + private System.Windows.Forms.PictureBox PB_Team6; + private System.Windows.Forms.Button B_Dump; + private System.Windows.Forms.TabControl TC_trpoke; + private System.Windows.Forms.TabPage Tab_Main; + private System.Windows.Forms.TabPage Tab_Moves; + private System.Windows.Forms.Label L_Species; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2; + private System.Windows.Forms.FlowLayoutPanel FLP_Species; + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.FlowLayoutPanel FLP_Form; + private System.Windows.Forms.Label L_Forme; + private System.Windows.Forms.ComboBox CB_Forme; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel3; + private System.Windows.Forms.Label L_Level; + private System.Windows.Forms.NumericUpDown NUD_Level; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel4; + private System.Windows.Forms.Label L_Ability; + private System.Windows.Forms.ComboBox CB_Ability; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.Label L_Item; + private System.Windows.Forms.ComboBox CB_Item; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel5; + private System.Windows.Forms.Label L_Nature; + private System.Windows.Forms.ComboBox CB_Nature; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel6; + private System.Windows.Forms.Label L_Misc; + private System.Windows.Forms.CheckBox CHK_Shiny; + private System.Windows.Forms.ComboBox CB_Move1; + private System.Windows.Forms.ComboBox CB_Move2; + private System.Windows.Forms.ComboBox CB_Move4; + private System.Windows.Forms.ComboBox CB_Move3; + private System.Windows.Forms.GroupBox GB_Moves; + private System.Windows.Forms.NumericUpDown NUD_AI; + private System.Windows.Forms.TextBox TB_TrainerName; + private System.Windows.Forms.Label L_TrainerName; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel7; + private System.Windows.Forms.Label L_Gender; + private System.Windows.Forms.ComboBox CB_Gender; + private System.Windows.Forms.TabPage Tab_Stats; + private System.Windows.Forms.Button B_HighAttack; + private System.Windows.Forms.Button B_CurrentAttack; + private System.Windows.Forms.ContextMenuStrip mnuVSD; + private System.Windows.Forms.ToolStripMenuItem mnuView; + private System.Windows.Forms.ToolStripMenuItem mnuSet; + private System.Windows.Forms.ToolStripMenuItem mnuDelete; + private System.Windows.Forms.Button B_Clear; + private System.Windows.Forms.TabControl TC_trdata; + private System.Windows.Forms.TabPage Tab_Trainer; + private System.Windows.Forms.TabPage Tab_Rand; + private System.Windows.Forms.CheckBox CHK_Flag; + private Controls.StatEditor Stats; + } +} + diff --git a/pkNX.WinForms/Subforms/BTTE.resx b/pkNX.WinForms/Subforms/BTTE.resx new file mode 100644 index 00000000..b4ae0e8f --- /dev/null +++ b/pkNX.WinForms/Subforms/BTTE.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 17, 17 + + \ No newline at end of file diff --git a/pkNX.WinForms/Subforms/TextEditor.cs b/pkNX.WinForms/Subforms/TextEditor.cs index 2fc4afef..28261b57 100644 --- a/pkNX.WinForms/Subforms/TextEditor.cs +++ b/pkNX.WinForms/Subforms/TextEditor.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Windows.Forms; -using Util = pkNX.Randomization.Util; +using pkNX.Randomization; namespace pkNX.WinForms { diff --git a/pkNX.WinForms/Subforms/TrainerEditor.cs b/pkNX.WinForms/Subforms/TrainerEditor.cs new file mode 100644 index 00000000..10385a8c --- /dev/null +++ b/pkNX.WinForms/Subforms/TrainerEditor.cs @@ -0,0 +1,72 @@ +using System; +using System.Linq; +using pkNX.Containers; +using pkNX.Structures; + +namespace pkNX.WinForms +{ + public class TrainerEditor + { + public IFileContainer TrainerData; + public IFileContainer TrainerPoke; + public IFileContainer TrainerClass; + public IFileContainer TrainerMsg; + + public Func ReadTrainer; + public Func ReadPoke; + public Func ReadTeam; + public Func WriteTeam; + public Func ReadClass; + + private VsTrainer[] Cache; + private TrainerClass[] CacheClass; + + public int Length => Cache.Length; + + public void Initialize() + { + Cache = new VsTrainer[TrainerData.Count]; + CacheClass = new TrainerClass[TrainerData.Count]; + } + + public VsTrainer this[int index] + { + get => Cache[index] ?? (Cache[index] = LoadTrainer(index)); + set => Cache[index] = value; + } + + public TrainerClass GetClass(int index) => CacheClass[index] ?? (CacheClass[index] = ReadClass(TrainerClass[index])); + + private VsTrainer LoadTrainer(int index) + { + var tr = ReadTrainer(TrainerData[index]); + var poke = ReadTeam(TrainerPoke[index], tr); + var data = new VsTrainer + { + ID = index, + Self = tr, + }; + data.Team.AddRange(poke); + return data; + } + + public void Save() + { + for (int i = 0; i < Length; i++) + { + var data = Cache[i]; + if (data == null) + continue; + data.Self.NumPokemon = data.Team.Count; + TrainerData[i] = data.Self.Write(); + TrainerPoke[i] = data.Team.SelectMany(z => z.Write()).ToArray(); + } + } + + public void CancelEdits() + { + TrainerData.CancelEdits(); + TrainerPoke.CancelEdits(); + } + } +} \ No newline at end of file diff --git a/pkNX.WinForms/WinFormsUtil.cs b/pkNX.WinForms/WinFormsUtil.cs index 766d266e..6ef64418 100644 --- a/pkNX.WinForms/WinFormsUtil.cs +++ b/pkNX.WinForms/WinFormsUtil.cs @@ -30,5 +30,11 @@ internal static DialogResult Prompt(MessageBoxButtons btn, params string[] lines string msg = string.Join(Environment.NewLine + Environment.NewLine, lines); return MessageBox.Show(msg, "Prompt", btn, MessageBoxIcon.Asterisk); } + + /// + /// Gets the selected value of the input . If no value is selected, will return 0. + /// + /// ComboBox to retrieve value for. + internal static int GetIndex(ComboBox cb) => (int)(cb?.SelectedValue ?? 0); } } \ No newline at end of file diff --git a/pkNX.WinForms/pkNX.WinForms.csproj b/pkNX.WinForms/pkNX.WinForms.csproj index 5490d242..59fe49ca 100644 --- a/pkNX.WinForms/pkNX.WinForms.csproj +++ b/pkNX.WinForms/pkNX.WinForms.csproj @@ -39,6 +39,12 @@ + + UserControl + + + StatEditor.cs + @@ -56,6 +62,12 @@ + + Form + + + BTTE.cs + Form @@ -63,7 +75,11 @@ TextEditor.cs + + + StatEditor.cs + Main.cs @@ -77,6 +93,9 @@ Resources.resx True + + BTTE.cs + TextEditor.cs @@ -106,14 +125,16 @@ pkNX.Randomization False + + {55d82546-3dda-42e1-9a24-f6a08ee231b0} + pkNX.Sprites + {01447516-8382-4e9b-8b6c-92ff0a2d0cbf} pkNX.Structures False - - - + \ No newline at end of file