From 3d3f7768a299df2a1602697d28c14bd084ede03a Mon Sep 17 00:00:00 2001 From: sora10pls Date: Wed, 24 Jan 2018 20:38:47 -0500 Subject: [PATCH] Misc additions --- pk3DS.Core/Legality/Legal.cs | 12 +- pk3DS.Core/Randomizers/SpeciesRandomizer.cs | 10 +- pk3DS/Subforms/Gen6/GiftEditor6.Designer.cs | 130 +++++++---- pk3DS/Subforms/Gen6/GiftEditor6.cs | 18 +- .../Subforms/Gen6/StarterEditor6.Designer.cs | 38 ++-- pk3DS/Subforms/Gen6/StarterEditor6.cs | 12 +- .../Gen6/StaticEncounterEditor6.Designer.cs | 90 +++++--- pk3DS/Subforms/Gen6/StaticEncounterEditor6.cs | 17 +- .../Gen7/StaticEncounterEditor7.Designer.cs | 211 ++++++++++++------ pk3DS/Subforms/Gen7/StaticEncounterEditor7.cs | 47 +++- 10 files changed, 401 insertions(+), 184 deletions(-) diff --git a/pk3DS.Core/Legality/Legal.cs b/pk3DS.Core/Legality/Legal.cs index 480b6d8..aa4783a 100644 --- a/pk3DS.Core/Legality/Legal.cs +++ b/pk3DS.Core/Legality/Legal.cs @@ -275,6 +275,16 @@ public static partial class Legal 490, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 541, 542, 543, 555, 556, 557, 558, 559, 560, 561, 562, 572, 573, 578, 580, 582, 583, 630, 644, 645, 647, 648, 649, 650, 651, 652, }; + public static readonly int[] BasicStarters_6 = + { + 001, 004, 007, 010, 013, 016, 029, 032, 041, 043, 060, 063, 066, 069, 074, 081, 092, 111, 116, 137, 147, 152, 155, 158, 172, 173, 174, 175, 179, 187, 220, 239, 240, 246, 252, 255, 258, + 265, 270, 273, 280, 287, 293, 298, 304, 328, 355, 363, 371, 374, 387, 390, 393, 396, 403, 406, 440, 443, 495, 498, 501, 506, 519, 524, 532, 535, 540, 543, 551, 574, 577, 582, 599, 602, + 607, 610, 633, 650, 653, 656, 661, 664, 669, 679, 704, + }; + public static readonly int[] BasicStarters_7 = BasicStarters_6.Concat(new int[] + { + 722, 725, 728, 731, 736, 761, 782, 789 + }).ToArray(); /// /// All final evolutions, excluding Event-exclusive Forms that do not evolve (Pikachu, Floette, etc). Used for forcing fully evolved species. /// Overrides all other randomizer settings, allowing all Generations and Legendary/Mythical Pokemon as well. @@ -313,7 +323,7 @@ public static partial class Legal }; public static readonly int[] Legendary_Mythical_SM = Legendary_Mythical_6.Concat(new int[] { - 785, 786, 787, 788, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, + 773, 785, 786, 787, 788, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, }).ToArray(); public static readonly int[] Legendary_Mythical_USUM = Legendary_Mythical_SM.Concat(new int[] { diff --git a/pk3DS.Core/Randomizers/SpeciesRandomizer.cs b/pk3DS.Core/Randomizers/SpeciesRandomizer.cs index 1863767..8129712 100644 --- a/pk3DS.Core/Randomizers/SpeciesRandomizer.cs +++ b/pk3DS.Core/Randomizers/SpeciesRandomizer.cs @@ -190,8 +190,14 @@ private void AddGen6Species(List list) } private void AddGen7Species(List list) { - list.AddRange(Enumerable.Range(722, 67)); // Rowlet - Kommo-o - if (L) list.AddRange(Enumerable.Range(785, 16)); // Tapus, Legends, UBs + list.AddRange(Enumerable.Range(722, 50)); // Rowlet - Pyukumuku + list.AddRange(Enumerable.Range(774, 11)); // Minior - Kommo-o + + if (L) + { + list.AddRange(Enumerable.Range(772, 2)); // Type: Null, Silvally + list.AddRange(Enumerable.Range(785, 16)); // Tapus, Legends, UBs + } if (E) list.AddRange(Enumerable.Range(801, 2)); // Magearna, Marshadow if (MaxSpeciesID == 807) // USUM diff --git a/pk3DS/Subforms/Gen6/GiftEditor6.Designer.cs b/pk3DS/Subforms/Gen6/GiftEditor6.Designer.cs index 10818de..5c0f02c 100644 --- a/pk3DS/Subforms/Gen6/GiftEditor6.Designer.cs +++ b/pk3DS/Subforms/Gen6/GiftEditor6.Designer.cs @@ -43,6 +43,10 @@ private void InitializeComponent() this.B_RandAll = new System.Windows.Forms.Button(); this.tabControl1 = new System.Windows.Forms.TabControl(); this.tabPage1 = new System.Windows.Forms.TabPage(); + this.L_Gender = new System.Windows.Forms.Label(); + this.CB_Gender = new System.Windows.Forms.ComboBox(); + this.L_Ability = new System.Windows.Forms.Label(); + this.CB_Ability = new System.Windows.Forms.ComboBox(); this.CB_Nature = new System.Windows.Forms.ComboBox(); this.GB_EIVs = new System.Windows.Forms.GroupBox(); this.L_HP = new System.Windows.Forms.Label(); @@ -61,6 +65,7 @@ private void InitializeComponent() this.tabPage2 = new System.Windows.Forms.TabPage(); this.B_ModifyLevel = new System.Windows.Forms.Button(); this.GB_Tweak = new System.Windows.Forms.GroupBox(); + this.CHK_RandomAbility = new System.Windows.Forms.CheckBox(); this.CHK_RemoveShinyLock = new System.Windows.Forms.CheckBox(); this.CHK_AllowMega = new System.Windows.Forms.CheckBox(); this.CHK_Item = new System.Windows.Forms.CheckBox(); @@ -78,11 +83,8 @@ private void InitializeComponent() this.CHK_ReplaceMega = new System.Windows.Forms.CheckBox(); this.NUD_LevelBoost = new System.Windows.Forms.NumericUpDown(); this.CHK_Level = new System.Windows.Forms.CheckBox(); - this.L_Gender = new System.Windows.Forms.Label(); - this.CB_Gender = new System.Windows.Forms.ComboBox(); - this.L_Ability = new System.Windows.Forms.Label(); - this.CB_Ability = new System.Windows.Forms.ComboBox(); - this.CHK_RandomAbility = new System.Windows.Forms.CheckBox(); + this.NUD_ForceFullyEvolved = new System.Windows.Forms.NumericUpDown(); + this.CHK_ForceFullyEvolved = new System.Windows.Forms.CheckBox(); ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.NUD_Form)).BeginInit(); this.tabControl1.SuspendLayout(); @@ -97,6 +99,7 @@ private void InitializeComponent() this.tabPage2.SuspendLayout(); this.GB_Tweak.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).BeginInit(); this.SuspendLayout(); // // B_Cancel @@ -260,6 +263,40 @@ private void InitializeComponent() this.tabPage1.Text = "Editor"; this.tabPage1.UseVisualStyleBackColor = true; // + // L_Gender + // + this.L_Gender.Location = new System.Drawing.Point(9, 96); + this.L_Gender.Name = "L_Gender"; + this.L_Gender.Size = new System.Drawing.Size(55, 23); + this.L_Gender.TabIndex = 532; + this.L_Gender.Text = "Gender:"; + this.L_Gender.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Gender + // + this.CB_Gender.FormattingEnabled = true; + this.CB_Gender.Location = new System.Drawing.Point(65, 97); + this.CB_Gender.Name = "CB_Gender"; + this.CB_Gender.Size = new System.Drawing.Size(121, 21); + this.CB_Gender.TabIndex = 531; + // + // L_Ability + // + this.L_Ability.Location = new System.Drawing.Point(9, 73); + this.L_Ability.Name = "L_Ability"; + this.L_Ability.Size = new System.Drawing.Size(55, 23); + this.L_Ability.TabIndex = 530; + this.L_Ability.Text = "Ability:"; + this.L_Ability.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Ability + // + this.CB_Ability.FormattingEnabled = true; + this.CB_Ability.Location = new System.Drawing.Point(65, 74); + this.CB_Ability.Name = "CB_Ability"; + this.CB_Ability.Size = new System.Drawing.Size(121, 21); + this.CB_Ability.TabIndex = 529; + // // CB_Nature // this.CB_Nature.FormattingEnabled = true; @@ -513,6 +550,8 @@ private void InitializeComponent() // // GB_Tweak // + this.GB_Tweak.Controls.Add(this.NUD_ForceFullyEvolved); + this.GB_Tweak.Controls.Add(this.CHK_ForceFullyEvolved); this.GB_Tweak.Controls.Add(this.CHK_RandomAbility); this.GB_Tweak.Controls.Add(this.CHK_RemoveShinyLock); this.GB_Tweak.Controls.Add(this.CHK_AllowMega); @@ -527,13 +566,23 @@ private void InitializeComponent() this.GB_Tweak.Controls.Add(this.CHK_G3); this.GB_Tweak.Controls.Add(this.CHK_G2); this.GB_Tweak.Controls.Add(this.CHK_G1); - this.GB_Tweak.Location = new System.Drawing.Point(5, 71); + this.GB_Tweak.Location = new System.Drawing.Point(5, 57); this.GB_Tweak.Name = "GB_Tweak"; - this.GB_Tweak.Size = new System.Drawing.Size(258, 147); + this.GB_Tweak.Size = new System.Drawing.Size(258, 170); this.GB_Tweak.TabIndex = 513; this.GB_Tweak.TabStop = false; this.GB_Tweak.Text = "Extra Randomization Tweaks"; // + // CHK_RandomAbility + // + this.CHK_RandomAbility.AutoSize = true; + this.CHK_RandomAbility.Location = new System.Drawing.Point(9, 110); + this.CHK_RandomAbility.Name = "CHK_RandomAbility"; + this.CHK_RandomAbility.Size = new System.Drawing.Size(183, 17); + this.CHK_RandomAbility.TabIndex = 298; + this.CHK_RandomAbility.Text = "Random Abilities (1, 2, or Hidden)"; + this.CHK_RandomAbility.UseVisualStyleBackColor = true; + // // CHK_RemoveShinyLock // this.CHK_RemoveShinyLock.AutoSize = true; @@ -737,49 +786,33 @@ private void InitializeComponent() this.CHK_Level.Text = "Multiply PKM Level by"; this.CHK_Level.UseVisualStyleBackColor = true; // - // L_Gender + // NUD_ForceFullyEvolved // - this.L_Gender.Location = new System.Drawing.Point(9, 96); - this.L_Gender.Name = "L_Gender"; - this.L_Gender.Size = new System.Drawing.Size(55, 23); - this.L_Gender.TabIndex = 532; - this.L_Gender.Text = "Gender:"; - this.L_Gender.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.NUD_ForceFullyEvolved.Location = new System.Drawing.Point(168, 141); + this.NUD_ForceFullyEvolved.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUD_ForceFullyEvolved.Name = "NUD_ForceFullyEvolved"; + this.NUD_ForceFullyEvolved.Size = new System.Drawing.Size(40, 20); + this.NUD_ForceFullyEvolved.TabIndex = 518; + this.NUD_ForceFullyEvolved.Value = new decimal(new int[] { + 50, + 0, + 0, + 0}); // - // CB_Gender + // CHK_ForceFullyEvolved // - this.CB_Gender.FormattingEnabled = true; - this.CB_Gender.Location = new System.Drawing.Point(65, 97); - this.CB_Gender.Name = "CB_Gender"; - this.CB_Gender.Size = new System.Drawing.Size(121, 21); - this.CB_Gender.TabIndex = 531; - // - // L_Ability - // - this.L_Ability.Location = new System.Drawing.Point(9, 73); - this.L_Ability.Name = "L_Ability"; - this.L_Ability.Size = new System.Drawing.Size(55, 23); - this.L_Ability.TabIndex = 530; - this.L_Ability.Text = "Ability:"; - this.L_Ability.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_Ability - // - this.CB_Ability.FormattingEnabled = true; - this.CB_Ability.Location = new System.Drawing.Point(65, 74); - this.CB_Ability.Name = "CB_Ability"; - this.CB_Ability.Size = new System.Drawing.Size(121, 21); - this.CB_Ability.TabIndex = 529; - // - // CHK_RandomAbility - // - this.CHK_RandomAbility.AutoSize = true; - this.CHK_RandomAbility.Location = new System.Drawing.Point(9, 110); - this.CHK_RandomAbility.Name = "CHK_RandomAbility"; - this.CHK_RandomAbility.Size = new System.Drawing.Size(183, 17); - this.CHK_RandomAbility.TabIndex = 298; - this.CHK_RandomAbility.Text = "Random Abilities (1, 2, or Hidden)"; - this.CHK_RandomAbility.UseVisualStyleBackColor = true; + this.CHK_ForceFullyEvolved.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_ForceFullyEvolved.AutoSize = true; + this.CHK_ForceFullyEvolved.Location = new System.Drawing.Point(9, 142); + this.CHK_ForceFullyEvolved.Name = "CHK_ForceFullyEvolved"; + this.CHK_ForceFullyEvolved.Size = new System.Drawing.Size(160, 17); + this.CHK_ForceFullyEvolved.TabIndex = 517; + this.CHK_ForceFullyEvolved.Text = "Force Fully Evolved at Level"; + this.CHK_ForceFullyEvolved.UseVisualStyleBackColor = true; // // GiftEditor6 // @@ -815,6 +848,7 @@ private void InitializeComponent() this.GB_Tweak.ResumeLayout(false); this.GB_Tweak.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).EndInit(); this.ResumeLayout(false); } @@ -876,5 +910,7 @@ private void InitializeComponent() private System.Windows.Forms.Label L_Ability; private System.Windows.Forms.ComboBox CB_Ability; private System.Windows.Forms.CheckBox CHK_RandomAbility; + private System.Windows.Forms.NumericUpDown NUD_ForceFullyEvolved; + private System.Windows.Forms.CheckBox CHK_ForceFullyEvolved; } } \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/GiftEditor6.cs b/pk3DS/Subforms/Gen6/GiftEditor6.cs index b7b3bde..a3797f8 100644 --- a/pk3DS/Subforms/Gen6/GiftEditor6.cs +++ b/pk3DS/Subforms/Gen6/GiftEditor6.cs @@ -59,6 +59,7 @@ public GiftEditor6() private readonly string[] specieslist = Main.Config.getText(TextName.SpeciesNames); private readonly string[] natureslist = Main.Config.getText(TextName.Natures); private readonly Dictionary MegaDictionary; + private static int[] FinalEvo; private readonly string[] ability = { @@ -97,6 +98,7 @@ private void loadData() foreach (var s in ability) CB_Ability.Items.Add(s); foreach (var s in gender) CB_Gender.Items.Add(s); + FinalEvo = Legal.FinalEvolutions_6; loaded = true; LB_Gifts.SelectedIndex = 0; @@ -242,11 +244,6 @@ private void B_RandAll_Click(object sender, EventArgs e) if (CHK_AllowMega.Checked) formrand.AllowMega = true; - CB_Species.SelectedIndex = species; - NUD_Form.Value = formrand.GetRandomForme(species); - CB_Gender.SelectedIndex = 0; // random - CB_Nature.SelectedIndex = 0; // random - if (MegaDictionary.Values.Any(z => z.Contains(CB_HeldItem.SelectedIndex)) && NUD_Form.Value > 0) NUD_Form.Value = 0; // don't allow Mega Stone Gifts to be form 1 @@ -258,6 +255,17 @@ private void B_RandAll_Click(object sender, EventArgs e) if (CHK_RandomAbility.Checked) CB_Ability.SelectedIndex = (Util.rand.Next(1, 4)); // 1, 2 , or H + + if (CHK_ForceFullyEvolved.Checked && NUD_Level.Value >= NUD_ForceFullyEvolved.Value && !FinalEvo.Contains(species)) + { + int randFinalEvo() => (int)(Util.rnd32() % FinalEvo.Length); + species = FinalEvo[randFinalEvo()]; + } + + CB_Species.SelectedIndex = species; + NUD_Form.Value = formrand.GetRandomForme(species); + CB_Gender.SelectedIndex = 0; // random + CB_Nature.SelectedIndex = 0; // random } WinFormsUtil.Alert("Randomized all Gift Pokémon according to specification!"); } diff --git a/pk3DS/Subforms/Gen6/StarterEditor6.Designer.cs b/pk3DS/Subforms/Gen6/StarterEditor6.Designer.cs index ccbd841..f1f9d67 100644 --- a/pk3DS/Subforms/Gen6/StarterEditor6.Designer.cs +++ b/pk3DS/Subforms/Gen6/StarterEditor6.Designer.cs @@ -60,8 +60,8 @@ private void InitializeComponent() this.L_Set4 = new System.Windows.Forms.Label(); this.L_Set2 = new System.Windows.Forms.Label(); this.CHK_Gen = new System.Windows.Forms.CheckBox(); - this.CHK_BST = new System.Windows.Forms.CheckBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.CHK_BasicStarter = new System.Windows.Forms.CheckBox(); ((System.ComponentModel.ISupportInitialize)(this.PB_G1_0)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.PB_G1_1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.PB_G1_2)).BeginInit(); @@ -338,7 +338,7 @@ private void InitializeComponent() // B_Save // this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Save.Location = new System.Drawing.Point(717, 317); + this.B_Save.Location = new System.Drawing.Point(711, 331); this.B_Save.Name = "B_Save"; this.B_Save.Size = new System.Drawing.Size(75, 23); this.B_Save.TabIndex = 464; @@ -349,7 +349,7 @@ private void InitializeComponent() // B_Cancel // this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Cancel.Location = new System.Drawing.Point(636, 317); + this.B_Cancel.Location = new System.Drawing.Point(711, 309); this.B_Cancel.Name = "B_Cancel"; this.B_Cancel.Size = new System.Drawing.Size(75, 23); this.B_Cancel.TabIndex = 465; @@ -360,7 +360,7 @@ private void InitializeComponent() // B_Randomize // this.B_Randomize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.B_Randomize.Location = new System.Drawing.Point(12, 317); + this.B_Randomize.Location = new System.Drawing.Point(12, 320); this.B_Randomize.Name = "B_Randomize"; this.B_Randomize.Size = new System.Drawing.Size(75, 23); this.B_Randomize.TabIndex = 466; @@ -422,29 +422,29 @@ private void InitializeComponent() this.CHK_Gen.Text = "Keep Same Gen"; this.CHK_Gen.UseVisualStyleBackColor = true; // - // CHK_BST - // - this.CHK_BST.AutoSize = true; - this.CHK_BST.Checked = true; - this.CHK_BST.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_BST.Location = new System.Drawing.Point(16, 29); - this.CHK_BST.Name = "CHK_BST"; - this.CHK_BST.Size = new System.Drawing.Size(108, 17); - this.CHK_BST.TabIndex = 472; - this.CHK_BST.Text = "Keep Similar BST"; - this.CHK_BST.UseVisualStyleBackColor = true; - // // groupBox1 // - this.groupBox1.Controls.Add(this.CHK_BST); + this.groupBox1.Controls.Add(this.CHK_BasicStarter); this.groupBox1.Controls.Add(this.CHK_Gen); this.groupBox1.Location = new System.Drawing.Point(93, 306); this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(200, 45); + this.groupBox1.Size = new System.Drawing.Size(153, 48); this.groupBox1.TabIndex = 473; this.groupBox1.TabStop = false; this.groupBox1.Text = "Randomizer Settings"; // + // CHK_BasicStarter + // + this.CHK_BasicStarter.AutoSize = true; + this.CHK_BasicStarter.Checked = true; + this.CHK_BasicStarter.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_BasicStarter.Location = new System.Drawing.Point(16, 29); + this.CHK_BasicStarter.Name = "CHK_BasicStarter"; + this.CHK_BasicStarter.Size = new System.Drawing.Size(134, 17); + this.CHK_BasicStarter.TabIndex = 474; + this.CHK_BasicStarter.Text = "Basic Starter Pokémon"; + this.CHK_BasicStarter.UseVisualStyleBackColor = true; + // // StarterEditor6 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -541,7 +541,7 @@ private void InitializeComponent() private System.Windows.Forms.Label L_Set4; private System.Windows.Forms.Label L_Set2; private System.Windows.Forms.CheckBox CHK_Gen; - private System.Windows.Forms.CheckBox CHK_BST; private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.CheckBox CHK_BasicStarter; } } \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/StarterEditor6.cs b/pk3DS/Subforms/Gen6/StarterEditor6.cs index 68c984b..1b1a353 100644 --- a/pk3DS/Subforms/Gen6/StarterEditor6.cs +++ b/pk3DS/Subforms/Gen6/StarterEditor6.cs @@ -60,6 +60,7 @@ public StarterEditor6() private byte[] FieldData; private readonly int Count = Main.Config.ORAS ? 4 : 2; private int offset; + private static int[] BasicStarter; private void B_Save_Click(object sender, EventArgs e) { saveData(); @@ -78,6 +79,7 @@ private void loadData() offset = BitConverter.ToInt32(Data, 0xb8); if (!Main.Config.ORAS) // XY have 0x10 bytes of zeroes offset += 0x10; + BasicStarter = Legal.BasicStarters_6; for (int i = 0; i < Count; i++) { Labels[i].Visible = true; @@ -161,15 +163,19 @@ private void B_Randomize_Click(object sender, EventArgs e) L = false, E = false, Shedinja = false, - - rBST = CHK_BST.Checked, }; rand.Initialize(); // Assign Species for (int j = 0; j < 3; j++) { int oldSpecies = BitConverter.ToUInt16(Data, offset + (i * 3 + j) * 0x54); - Choices[i][j].SelectedIndex = rand.GetRandomSpecies(oldSpecies); + if (CHK_BasicStarter.Checked) + { + int basic() => (int)(Util.rnd32() % BasicStarter.Length); + Choices[i][j].SelectedIndex = BasicStarter[basic()]; + } + else + Choices[i][j].SelectedIndex = rand.GetRandomSpecies(oldSpecies); } } diff --git a/pk3DS/Subforms/Gen6/StaticEncounterEditor6.Designer.cs b/pk3DS/Subforms/Gen6/StaticEncounterEditor6.Designer.cs index bb5fbcc..a7a03a7 100644 --- a/pk3DS/Subforms/Gen6/StaticEncounterEditor6.Designer.cs +++ b/pk3DS/Subforms/Gen6/StaticEncounterEditor6.Designer.cs @@ -51,6 +51,7 @@ private void InitializeComponent() this.tabPage2 = new System.Windows.Forms.TabPage(); this.B_ModifyLevel = new System.Windows.Forms.Button(); this.GB_Tweak = new System.Windows.Forms.GroupBox(); + this.CHK_ReplaceLegend = new System.Windows.Forms.CheckBox(); this.CHK_RandomAbility = new System.Windows.Forms.CheckBox(); this.CHK_RemoveShinyLock = new System.Windows.Forms.CheckBox(); this.CHK_AllowMega = new System.Windows.Forms.CheckBox(); @@ -67,7 +68,8 @@ private void InitializeComponent() this.CHK_G1 = new System.Windows.Forms.CheckBox(); this.NUD_LevelBoost = new System.Windows.Forms.NumericUpDown(); this.CHK_Level = new System.Windows.Forms.CheckBox(); - this.CHK_ReplaceLegend = new System.Windows.Forms.CheckBox(); + this.NUD_ForceFullyEvolved = new System.Windows.Forms.NumericUpDown(); + this.CHK_ForceFullyEvolved = new System.Windows.Forms.CheckBox(); this.tabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).BeginInit(); @@ -75,6 +77,7 @@ private void InitializeComponent() this.tabPage2.SuspendLayout(); this.GB_Tweak.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).BeginInit(); this.SuspendLayout(); // // B_Cancel @@ -321,17 +324,31 @@ private void InitializeComponent() this.GB_Tweak.Controls.Add(this.CHK_G3); this.GB_Tweak.Controls.Add(this.CHK_G2); this.GB_Tweak.Controls.Add(this.CHK_G1); - this.GB_Tweak.Location = new System.Drawing.Point(5, 83); + this.GB_Tweak.Controls.Add(this.NUD_ForceFullyEvolved); + this.GB_Tweak.Controls.Add(this.CHK_ForceFullyEvolved); + this.GB_Tweak.Location = new System.Drawing.Point(5, 66); this.GB_Tweak.Name = "GB_Tweak"; - this.GB_Tweak.Size = new System.Drawing.Size(258, 160); + this.GB_Tweak.Size = new System.Drawing.Size(258, 185); this.GB_Tweak.TabIndex = 509; this.GB_Tweak.TabStop = false; this.GB_Tweak.Text = "Extra Randomization Tweaks"; // + // CHK_ReplaceLegend + // + this.CHK_ReplaceLegend.AutoSize = true; + this.CHK_ReplaceLegend.Checked = true; + this.CHK_ReplaceLegend.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_ReplaceLegend.Location = new System.Drawing.Point(9, 141); + this.CHK_ReplaceLegend.Name = "CHK_ReplaceLegend"; + this.CHK_ReplaceLegend.Size = new System.Drawing.Size(242, 17); + this.CHK_ReplaceLegend.TabIndex = 304; + this.CHK_ReplaceLegend.Text = "Replace Legendaries with Another Legendary"; + this.CHK_ReplaceLegend.UseVisualStyleBackColor = true; + // // CHK_RandomAbility // this.CHK_RandomAbility.AutoSize = true; - this.CHK_RandomAbility.Location = new System.Drawing.Point(9, 109); + this.CHK_RandomAbility.Location = new System.Drawing.Point(9, 110); this.CHK_RandomAbility.Name = "CHK_RandomAbility"; this.CHK_RandomAbility.Size = new System.Drawing.Size(183, 17); this.CHK_RandomAbility.TabIndex = 303; @@ -341,7 +358,7 @@ private void InitializeComponent() // CHK_RemoveShinyLock // this.CHK_RemoveShinyLock.AutoSize = true; - this.CHK_RemoveShinyLock.Location = new System.Drawing.Point(9, 94); + this.CHK_RemoveShinyLock.Location = new System.Drawing.Point(9, 95); this.CHK_RemoveShinyLock.Name = "CHK_RemoveShinyLock"; this.CHK_RemoveShinyLock.Size = new System.Drawing.Size(127, 17); this.CHK_RemoveShinyLock.TabIndex = 297; @@ -351,7 +368,7 @@ private void InitializeComponent() // CHK_AllowMega // this.CHK_AllowMega.AutoSize = true; - this.CHK_AllowMega.Location = new System.Drawing.Point(9, 125); + this.CHK_AllowMega.Location = new System.Drawing.Point(9, 126); this.CHK_AllowMega.Name = "CHK_AllowMega"; this.CHK_AllowMega.Size = new System.Drawing.Size(155, 17); this.CHK_AllowMega.TabIndex = 296; @@ -363,7 +380,7 @@ private void InitializeComponent() this.CHK_Item.AutoSize = true; this.CHK_Item.Checked = true; this.CHK_Item.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Item.Location = new System.Drawing.Point(9, 79); + this.CHK_Item.Location = new System.Drawing.Point(9, 80); this.CHK_Item.Name = "CHK_Item"; this.CHK_Item.Size = new System.Drawing.Size(119, 17); this.CHK_Item.TabIndex = 295; @@ -373,7 +390,7 @@ private void InitializeComponent() // L_RandOpt // this.L_RandOpt.AutoSize = true; - this.L_RandOpt.Location = new System.Drawing.Point(6, 16); + this.L_RandOpt.Location = new System.Drawing.Point(6, 17); this.L_RandOpt.Name = "L_RandOpt"; this.L_RandOpt.Size = new System.Drawing.Size(105, 13); this.L_RandOpt.TabIndex = 294; @@ -382,7 +399,7 @@ private void InitializeComponent() // CHK_BST // this.CHK_BST.AutoSize = true; - this.CHK_BST.Location = new System.Drawing.Point(128, 64); + this.CHK_BST.Location = new System.Drawing.Point(128, 65); this.CHK_BST.Name = "CHK_BST"; this.CHK_BST.Size = new System.Drawing.Size(117, 17); this.CHK_BST.TabIndex = 288; @@ -394,7 +411,7 @@ private void InitializeComponent() this.CHK_E.AutoSize = true; this.CHK_E.Checked = true; this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_E.Location = new System.Drawing.Point(128, 49); + this.CHK_E.Location = new System.Drawing.Point(128, 50); this.CHK_E.Name = "CHK_E"; this.CHK_E.Size = new System.Drawing.Size(98, 17); this.CHK_E.TabIndex = 287; @@ -406,7 +423,7 @@ private void InitializeComponent() this.CHK_L.AutoSize = true; this.CHK_L.Checked = true; this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_L.Location = new System.Drawing.Point(128, 34); + this.CHK_L.Location = new System.Drawing.Point(128, 35); this.CHK_L.Name = "CHK_L"; this.CHK_L.Size = new System.Drawing.Size(98, 17); this.CHK_L.TabIndex = 286; @@ -418,7 +435,7 @@ private void InitializeComponent() this.CHK_G6.AutoSize = true; this.CHK_G6.Checked = true; this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G6.Location = new System.Drawing.Point(67, 64); + this.CHK_G6.Location = new System.Drawing.Point(67, 65); this.CHK_G6.Name = "CHK_G6"; this.CHK_G6.Size = new System.Drawing.Size(55, 17); this.CHK_G6.TabIndex = 285; @@ -430,7 +447,7 @@ private void InitializeComponent() this.CHK_G5.AutoSize = true; this.CHK_G5.Checked = true; this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G5.Location = new System.Drawing.Point(67, 49); + this.CHK_G5.Location = new System.Drawing.Point(67, 50); this.CHK_G5.Name = "CHK_G5"; this.CHK_G5.Size = new System.Drawing.Size(55, 17); this.CHK_G5.TabIndex = 284; @@ -442,7 +459,7 @@ private void InitializeComponent() this.CHK_G4.AutoSize = true; this.CHK_G4.Checked = true; this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G4.Location = new System.Drawing.Point(67, 34); + this.CHK_G4.Location = new System.Drawing.Point(67, 35); this.CHK_G4.Name = "CHK_G4"; this.CHK_G4.Size = new System.Drawing.Size(55, 17); this.CHK_G4.TabIndex = 283; @@ -454,7 +471,7 @@ private void InitializeComponent() this.CHK_G3.AutoSize = true; this.CHK_G3.Checked = true; this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G3.Location = new System.Drawing.Point(9, 64); + this.CHK_G3.Location = new System.Drawing.Point(9, 65); this.CHK_G3.Name = "CHK_G3"; this.CHK_G3.Size = new System.Drawing.Size(55, 17); this.CHK_G3.TabIndex = 282; @@ -466,7 +483,7 @@ private void InitializeComponent() this.CHK_G2.AutoSize = true; this.CHK_G2.Checked = true; this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G2.Location = new System.Drawing.Point(9, 49); + this.CHK_G2.Location = new System.Drawing.Point(9, 50); this.CHK_G2.Name = "CHK_G2"; this.CHK_G2.Size = new System.Drawing.Size(55, 17); this.CHK_G2.TabIndex = 281; @@ -478,7 +495,7 @@ private void InitializeComponent() this.CHK_G1.AutoSize = true; this.CHK_G1.Checked = true; this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G1.Location = new System.Drawing.Point(9, 34); + this.CHK_G1.Location = new System.Drawing.Point(9, 35); this.CHK_G1.Name = "CHK_G1"; this.CHK_G1.Size = new System.Drawing.Size(55, 17); this.CHK_G1.TabIndex = 280; @@ -520,17 +537,33 @@ private void InitializeComponent() this.CHK_Level.Text = "Multiply PKM Level by"; this.CHK_Level.UseVisualStyleBackColor = true; // - // CHK_ReplaceLegend + // NUD_ForceFullyEvolved // - this.CHK_ReplaceLegend.AutoSize = true; - this.CHK_ReplaceLegend.Checked = true; - this.CHK_ReplaceLegend.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_ReplaceLegend.Location = new System.Drawing.Point(9, 140); - this.CHK_ReplaceLegend.Name = "CHK_ReplaceLegend"; - this.CHK_ReplaceLegend.Size = new System.Drawing.Size(242, 17); - this.CHK_ReplaceLegend.TabIndex = 304; - this.CHK_ReplaceLegend.Text = "Replace Legendaries with Another Legendary"; - this.CHK_ReplaceLegend.UseVisualStyleBackColor = true; + this.NUD_ForceFullyEvolved.Location = new System.Drawing.Point(168, 158); + this.NUD_ForceFullyEvolved.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUD_ForceFullyEvolved.Name = "NUD_ForceFullyEvolved"; + this.NUD_ForceFullyEvolved.Size = new System.Drawing.Size(40, 20); + this.NUD_ForceFullyEvolved.TabIndex = 516; + this.NUD_ForceFullyEvolved.Value = new decimal(new int[] { + 50, + 0, + 0, + 0}); + // + // CHK_ForceFullyEvolved + // + this.CHK_ForceFullyEvolved.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_ForceFullyEvolved.AutoSize = true; + this.CHK_ForceFullyEvolved.Location = new System.Drawing.Point(9, 159); + this.CHK_ForceFullyEvolved.Name = "CHK_ForceFullyEvolved"; + this.CHK_ForceFullyEvolved.Size = new System.Drawing.Size(160, 17); + this.CHK_ForceFullyEvolved.TabIndex = 515; + this.CHK_ForceFullyEvolved.Text = "Force Fully Evolved at Level"; + this.CHK_ForceFullyEvolved.UseVisualStyleBackColor = true; // // StaticEncounterEditor6 // @@ -559,6 +592,7 @@ private void InitializeComponent() this.GB_Tweak.ResumeLayout(false); this.GB_Tweak.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).EndInit(); this.ResumeLayout(false); } @@ -605,5 +639,7 @@ private void InitializeComponent() private System.Windows.Forms.ComboBox CB_Ability; private System.Windows.Forms.CheckBox CHK_RandomAbility; private System.Windows.Forms.CheckBox CHK_ReplaceLegend; + private System.Windows.Forms.NumericUpDown NUD_ForceFullyEvolved; + private System.Windows.Forms.CheckBox CHK_ForceFullyEvolved; } } \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/StaticEncounterEditor6.cs b/pk3DS/Subforms/Gen6/StaticEncounterEditor6.cs index 6d5c7a1..71839ee 100644 --- a/pk3DS/Subforms/Gen6/StaticEncounterEditor6.cs +++ b/pk3DS/Subforms/Gen6/StaticEncounterEditor6.cs @@ -42,6 +42,7 @@ public StaticEncounterEditor6() private EncounterStatic6[] EncounterData; private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); private readonly string[] specieslist = Main.Config.getText(TextName.SpeciesNames); + private static int[] FinalEvo; private static int[] ReplaceLegend; private readonly string[] ability = @@ -81,7 +82,7 @@ private void loadData() foreach (var s in ability) CB_Ability.Items.Add(s); foreach (var s in gender) CB_Gender.Items.Add(s); - + FinalEvo = Legal.FinalEvolutions_6; ReplaceLegend = Legal.Legendary_Mythical_6; loaded = true; @@ -179,10 +180,6 @@ private void B_RandAll_Click(object sender, EventArgs e) // every other entry else species = specrand.GetRandomSpecies(species); - - CB_Species.SelectedIndex = species; - NUD_Form.Value = formrand.GetRandomForme(species); - CB_Gender.SelectedIndex = 0; // random if (CHK_AllowMega.Checked) formrand.AllowMega = true; @@ -198,6 +195,16 @@ private void B_RandAll_Click(object sender, EventArgs e) if (CHK_RandomAbility.Checked) CB_Ability.SelectedIndex = (Util.rand.Next(1, 4)); // 1, 2 , or H + + if (CHK_ForceFullyEvolved.Checked && NUD_Level.Value >= NUD_ForceFullyEvolved.Value && !FinalEvo.Contains(species)) + { + int randFinalEvo() => (int)(Util.rnd32() % FinalEvo.Length); + species = FinalEvo[randFinalEvo()]; + } + + CB_Species.SelectedIndex = species; + NUD_Form.Value = formrand.GetRandomForme(species); + CB_Gender.SelectedIndex = 0; // random } WinFormsUtil.Alert("Randomized all Static Encounters according to specification!"); } diff --git a/pk3DS/Subforms/Gen7/StaticEncounterEditor7.Designer.cs b/pk3DS/Subforms/Gen7/StaticEncounterEditor7.Designer.cs index a67e3af..e6b3147 100644 --- a/pk3DS/Subforms/Gen7/StaticEncounterEditor7.Designer.cs +++ b/pk3DS/Subforms/Gen7/StaticEncounterEditor7.Designer.cs @@ -138,7 +138,8 @@ private void InitializeComponent() this.NUD_LevelBoost = new System.Windows.Forms.NumericUpDown(); this.CHK_Level = new System.Windows.Forms.CheckBox(); this.B_RandAll = new System.Windows.Forms.Button(); - this.GB_Tweak = new System.Windows.Forms.GroupBox(); + this.GB_Rand = new System.Windows.Forms.GroupBox(); + this.CHK_ReplaceLegend = new System.Windows.Forms.CheckBox(); this.CHK_RandomAbility = new System.Windows.Forms.CheckBox(); this.CHK_SpecialMove = new System.Windows.Forms.CheckBox(); this.CHK_RandomAura = new System.Windows.Forms.CheckBox(); @@ -146,7 +147,6 @@ private void InitializeComponent() this.CHK_AllowMega = new System.Windows.Forms.CheckBox(); this.CHK_Item = new System.Windows.Forms.CheckBox(); this.CHK_G7 = new System.Windows.Forms.CheckBox(); - this.L_RandOpt = new System.Windows.Forms.Label(); this.CHK_BST = new System.Windows.Forms.CheckBox(); this.CHK_E = new System.Windows.Forms.CheckBox(); this.CHK_L = new System.Windows.Forms.CheckBox(); @@ -159,7 +159,11 @@ private void InitializeComponent() this.B_Starters = new System.Windows.Forms.Button(); this.B_Save = new System.Windows.Forms.Button(); this.B_Cancel = new System.Windows.Forms.Button(); - this.CHK_ReplaceLegend = new System.Windows.Forms.CheckBox(); + this.GB_Tweak = new System.Windows.Forms.GroupBox(); + this.CHK_BasicStarter = new System.Windows.Forms.CheckBox(); + this.CHK_ForceTotem = new System.Windows.Forms.CheckBox(); + this.NUD_ForceFullyEvolved = new System.Windows.Forms.NumericUpDown(); + this.CHK_ForceFullyEvolved = new System.Windows.Forms.CheckBox(); this.TC_Tabs.SuspendLayout(); this.Tab_Gifts.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.NUD_GForm)).BeginInit(); @@ -197,7 +201,9 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.NUD_TLevel)).BeginInit(); this.Tab_Randomizer.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).BeginInit(); + this.GB_Rand.SuspendLayout(); this.GB_Tweak.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).BeginInit(); this.SuspendLayout(); // // TC_Tabs @@ -1504,11 +1510,12 @@ private void InitializeComponent() // // Tab_Randomizer // + this.Tab_Randomizer.Controls.Add(this.GB_Tweak); this.Tab_Randomizer.Controls.Add(this.B_ModifyLevel); this.Tab_Randomizer.Controls.Add(this.NUD_LevelBoost); this.Tab_Randomizer.Controls.Add(this.CHK_Level); this.Tab_Randomizer.Controls.Add(this.B_RandAll); - this.Tab_Randomizer.Controls.Add(this.GB_Tweak); + this.Tab_Randomizer.Controls.Add(this.GB_Rand); this.Tab_Randomizer.Controls.Add(this.B_Starters); this.Tab_Randomizer.Location = new System.Drawing.Point(4, 22); this.Tab_Randomizer.Name = "Tab_Randomizer"; @@ -1520,7 +1527,7 @@ private void InitializeComponent() // // B_ModifyLevel // - this.B_ModifyLevel.Location = new System.Drawing.Point(306, 89); + this.B_ModifyLevel.Location = new System.Drawing.Point(306, 49); this.B_ModifyLevel.Name = "B_ModifyLevel"; this.B_ModifyLevel.Size = new System.Drawing.Size(70, 23); this.B_ModifyLevel.TabIndex = 512; @@ -1536,7 +1543,7 @@ private void InitializeComponent() 0, 0, 131072}); - this.NUD_LevelBoost.Location = new System.Drawing.Point(257, 90); + this.NUD_LevelBoost.Location = new System.Drawing.Point(257, 50); this.NUD_LevelBoost.Maximum = new decimal(new int[] { 3, 0, @@ -1556,7 +1563,7 @@ private void InitializeComponent() this.CHK_Level.AutoSize = true; this.CHK_Level.Checked = true; this.CHK_Level.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Level.Location = new System.Drawing.Point(125, 91); + this.CHK_Level.Location = new System.Drawing.Point(125, 51); this.CHK_Level.Name = "CHK_Level"; this.CHK_Level.Size = new System.Drawing.Size(130, 17); this.CHK_Level.TabIndex = 510; @@ -1565,7 +1572,7 @@ private void InitializeComponent() // // B_RandAll // - this.B_RandAll.Location = new System.Drawing.Point(192, 330); + this.B_RandAll.Location = new System.Drawing.Point(192, 369); this.B_RandAll.Name = "B_RandAll"; this.B_RandAll.Size = new System.Drawing.Size(122, 23); this.B_RandAll.TabIndex = 509; @@ -1573,37 +1580,46 @@ private void InitializeComponent() this.B_RandAll.UseVisualStyleBackColor = true; this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); // - // GB_Tweak + // GB_Rand // - this.GB_Tweak.Controls.Add(this.CHK_ReplaceLegend); - this.GB_Tweak.Controls.Add(this.CHK_RandomAbility); - this.GB_Tweak.Controls.Add(this.CHK_SpecialMove); - this.GB_Tweak.Controls.Add(this.CHK_RandomAura); - this.GB_Tweak.Controls.Add(this.CHK_RemoveShinyLock); - this.GB_Tweak.Controls.Add(this.CHK_AllowMega); - this.GB_Tweak.Controls.Add(this.CHK_Item); - this.GB_Tweak.Controls.Add(this.CHK_G7); - this.GB_Tweak.Controls.Add(this.L_RandOpt); - this.GB_Tweak.Controls.Add(this.CHK_BST); - this.GB_Tweak.Controls.Add(this.CHK_E); - this.GB_Tweak.Controls.Add(this.CHK_L); - this.GB_Tweak.Controls.Add(this.CHK_G6); - this.GB_Tweak.Controls.Add(this.CHK_G5); - this.GB_Tweak.Controls.Add(this.CHK_G4); - this.GB_Tweak.Controls.Add(this.CHK_G3); - this.GB_Tweak.Controls.Add(this.CHK_G2); - this.GB_Tweak.Controls.Add(this.CHK_G1); - this.GB_Tweak.Location = new System.Drawing.Point(119, 113); - this.GB_Tweak.Name = "GB_Tweak"; - this.GB_Tweak.Size = new System.Drawing.Size(258, 205); - this.GB_Tweak.TabIndex = 508; - this.GB_Tweak.TabStop = false; - this.GB_Tweak.Text = "Extra Randomization Tweaks"; + this.GB_Rand.Controls.Add(this.CHK_SpecialMove); + this.GB_Rand.Controls.Add(this.CHK_RandomAbility); + this.GB_Rand.Controls.Add(this.CHK_RandomAura); + this.GB_Rand.Controls.Add(this.CHK_AllowMega); + this.GB_Rand.Controls.Add(this.CHK_Item); + this.GB_Rand.Controls.Add(this.CHK_G7); + this.GB_Rand.Controls.Add(this.CHK_BST); + this.GB_Rand.Controls.Add(this.CHK_E); + this.GB_Rand.Controls.Add(this.CHK_L); + this.GB_Rand.Controls.Add(this.CHK_G6); + this.GB_Rand.Controls.Add(this.CHK_G5); + this.GB_Rand.Controls.Add(this.CHK_G4); + this.GB_Rand.Controls.Add(this.CHK_G3); + this.GB_Rand.Controls.Add(this.CHK_G2); + this.GB_Rand.Controls.Add(this.CHK_G1); + this.GB_Rand.Location = new System.Drawing.Point(119, 73); + this.GB_Rand.Name = "GB_Rand"; + this.GB_Rand.Size = new System.Drawing.Size(258, 155); + this.GB_Rand.TabIndex = 508; + this.GB_Rand.TabStop = false; + this.GB_Rand.Text = "Randomizer Options"; + // + // CHK_ReplaceLegend + // + this.CHK_ReplaceLegend.AutoSize = true; + this.CHK_ReplaceLegend.Checked = true; + this.CHK_ReplaceLegend.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_ReplaceLegend.Location = new System.Drawing.Point(6, 15); + this.CHK_ReplaceLegend.Name = "CHK_ReplaceLegend"; + this.CHK_ReplaceLegend.Size = new System.Drawing.Size(242, 17); + this.CHK_ReplaceLegend.TabIndex = 303; + this.CHK_ReplaceLegend.Text = "Replace Legendaries with Another Legendary"; + this.CHK_ReplaceLegend.UseVisualStyleBackColor = true; // // CHK_RandomAbility // this.CHK_RandomAbility.AutoSize = true; - this.CHK_RandomAbility.Location = new System.Drawing.Point(9, 124); + this.CHK_RandomAbility.Location = new System.Drawing.Point(9, 120); this.CHK_RandomAbility.Name = "CHK_RandomAbility"; this.CHK_RandomAbility.Size = new System.Drawing.Size(183, 17); this.CHK_RandomAbility.TabIndex = 302; @@ -1613,7 +1629,7 @@ private void InitializeComponent() // CHK_SpecialMove // this.CHK_SpecialMove.AutoSize = true; - this.CHK_SpecialMove.Location = new System.Drawing.Point(9, 155); + this.CHK_SpecialMove.Location = new System.Drawing.Point(9, 135); this.CHK_SpecialMove.Name = "CHK_SpecialMove"; this.CHK_SpecialMove.Size = new System.Drawing.Size(197, 17); this.CHK_SpecialMove.TabIndex = 301; @@ -1623,7 +1639,7 @@ private void InitializeComponent() // CHK_RandomAura // this.CHK_RandomAura.AutoSize = true; - this.CHK_RandomAura.Location = new System.Drawing.Point(9, 140); + this.CHK_RandomAura.Location = new System.Drawing.Point(9, 105); this.CHK_RandomAura.Name = "CHK_RandomAura"; this.CHK_RandomAura.Size = new System.Drawing.Size(172, 17); this.CHK_RandomAura.TabIndex = 300; @@ -1633,7 +1649,9 @@ private void InitializeComponent() // CHK_RemoveShinyLock // this.CHK_RemoveShinyLock.AutoSize = true; - this.CHK_RemoveShinyLock.Location = new System.Drawing.Point(9, 109); + this.CHK_RemoveShinyLock.Checked = true; + this.CHK_RemoveShinyLock.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_RemoveShinyLock.Location = new System.Drawing.Point(6, 79); this.CHK_RemoveShinyLock.Name = "CHK_RemoveShinyLock"; this.CHK_RemoveShinyLock.Size = new System.Drawing.Size(127, 17); this.CHK_RemoveShinyLock.TabIndex = 299; @@ -1643,7 +1661,7 @@ private void InitializeComponent() // CHK_AllowMega // this.CHK_AllowMega.AutoSize = true; - this.CHK_AllowMega.Location = new System.Drawing.Point(9, 171); + this.CHK_AllowMega.Location = new System.Drawing.Point(9, 90); this.CHK_AllowMega.Name = "CHK_AllowMega"; this.CHK_AllowMega.Size = new System.Drawing.Size(155, 17); this.CHK_AllowMega.TabIndex = 298; @@ -1655,7 +1673,7 @@ private void InitializeComponent() this.CHK_Item.AutoSize = true; this.CHK_Item.Checked = true; this.CHK_Item.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Item.Location = new System.Drawing.Point(9, 94); + this.CHK_Item.Location = new System.Drawing.Point(9, 75); this.CHK_Item.Name = "CHK_Item"; this.CHK_Item.Size = new System.Drawing.Size(119, 17); this.CHK_Item.TabIndex = 297; @@ -1667,26 +1685,17 @@ private void InitializeComponent() this.CHK_G7.AutoSize = true; this.CHK_G7.Checked = true; this.CHK_G7.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G7.Location = new System.Drawing.Point(9, 79); + this.CHK_G7.Location = new System.Drawing.Point(9, 60); this.CHK_G7.Name = "CHK_G7"; this.CHK_G7.Size = new System.Drawing.Size(55, 17); this.CHK_G7.TabIndex = 296; this.CHK_G7.Text = "Gen 7"; this.CHK_G7.UseVisualStyleBackColor = true; // - // L_RandOpt - // - this.L_RandOpt.AutoSize = true; - this.L_RandOpt.Location = new System.Drawing.Point(6, 16); - this.L_RandOpt.Name = "L_RandOpt"; - this.L_RandOpt.Size = new System.Drawing.Size(105, 13); - this.L_RandOpt.TabIndex = 294; - this.L_RandOpt.Text = "Randomizer Options:"; - // // CHK_BST // this.CHK_BST.AutoSize = true; - this.CHK_BST.Location = new System.Drawing.Point(128, 64); + this.CHK_BST.Location = new System.Drawing.Point(128, 45); this.CHK_BST.Name = "CHK_BST"; this.CHK_BST.Size = new System.Drawing.Size(117, 17); this.CHK_BST.TabIndex = 288; @@ -1698,7 +1707,7 @@ private void InitializeComponent() this.CHK_E.AutoSize = true; this.CHK_E.Checked = true; this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_E.Location = new System.Drawing.Point(128, 49); + this.CHK_E.Location = new System.Drawing.Point(128, 30); this.CHK_E.Name = "CHK_E"; this.CHK_E.Size = new System.Drawing.Size(98, 17); this.CHK_E.TabIndex = 287; @@ -1710,7 +1719,7 @@ private void InitializeComponent() this.CHK_L.AutoSize = true; this.CHK_L.Checked = true; this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_L.Location = new System.Drawing.Point(128, 34); + this.CHK_L.Location = new System.Drawing.Point(128, 15); this.CHK_L.Name = "CHK_L"; this.CHK_L.Size = new System.Drawing.Size(98, 17); this.CHK_L.TabIndex = 286; @@ -1722,7 +1731,7 @@ private void InitializeComponent() this.CHK_G6.AutoSize = true; this.CHK_G6.Checked = true; this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G6.Location = new System.Drawing.Point(67, 64); + this.CHK_G6.Location = new System.Drawing.Point(67, 45); this.CHK_G6.Name = "CHK_G6"; this.CHK_G6.Size = new System.Drawing.Size(55, 17); this.CHK_G6.TabIndex = 285; @@ -1734,7 +1743,7 @@ private void InitializeComponent() this.CHK_G5.AutoSize = true; this.CHK_G5.Checked = true; this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G5.Location = new System.Drawing.Point(67, 49); + this.CHK_G5.Location = new System.Drawing.Point(67, 30); this.CHK_G5.Name = "CHK_G5"; this.CHK_G5.Size = new System.Drawing.Size(55, 17); this.CHK_G5.TabIndex = 284; @@ -1746,7 +1755,7 @@ private void InitializeComponent() this.CHK_G4.AutoSize = true; this.CHK_G4.Checked = true; this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G4.Location = new System.Drawing.Point(67, 34); + this.CHK_G4.Location = new System.Drawing.Point(67, 15); this.CHK_G4.Name = "CHK_G4"; this.CHK_G4.Size = new System.Drawing.Size(55, 17); this.CHK_G4.TabIndex = 283; @@ -1758,7 +1767,7 @@ private void InitializeComponent() this.CHK_G3.AutoSize = true; this.CHK_G3.Checked = true; this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G3.Location = new System.Drawing.Point(9, 64); + this.CHK_G3.Location = new System.Drawing.Point(9, 45); this.CHK_G3.Name = "CHK_G3"; this.CHK_G3.Size = new System.Drawing.Size(55, 17); this.CHK_G3.TabIndex = 282; @@ -1770,7 +1779,7 @@ private void InitializeComponent() this.CHK_G2.AutoSize = true; this.CHK_G2.Checked = true; this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G2.Location = new System.Drawing.Point(9, 49); + this.CHK_G2.Location = new System.Drawing.Point(9, 30); this.CHK_G2.Name = "CHK_G2"; this.CHK_G2.Size = new System.Drawing.Size(55, 17); this.CHK_G2.TabIndex = 281; @@ -1782,7 +1791,7 @@ private void InitializeComponent() this.CHK_G1.AutoSize = true; this.CHK_G1.Checked = true; this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G1.Location = new System.Drawing.Point(9, 34); + this.CHK_G1.Location = new System.Drawing.Point(9, 15); this.CHK_G1.Name = "CHK_G1"; this.CHK_G1.Size = new System.Drawing.Size(55, 17); this.CHK_G1.TabIndex = 280; @@ -1791,7 +1800,7 @@ private void InitializeComponent() // // B_Starters // - this.B_Starters.Location = new System.Drawing.Point(192, 359); + this.B_Starters.Location = new System.Drawing.Point(192, 398); this.B_Starters.Name = "B_Starters"; this.B_Starters.Size = new System.Drawing.Size(122, 23); this.B_Starters.TabIndex = 9; @@ -1819,17 +1828,70 @@ private void InitializeComponent() this.B_Cancel.UseVisualStyleBackColor = true; this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); // - // CHK_ReplaceLegend + // GB_Tweak // - this.CHK_ReplaceLegend.AutoSize = true; - this.CHK_ReplaceLegend.Checked = true; - this.CHK_ReplaceLegend.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_ReplaceLegend.Location = new System.Drawing.Point(9, 186); - this.CHK_ReplaceLegend.Name = "CHK_ReplaceLegend"; - this.CHK_ReplaceLegend.Size = new System.Drawing.Size(242, 17); - this.CHK_ReplaceLegend.TabIndex = 303; - this.CHK_ReplaceLegend.Text = "Replace Legendaries with Another Legendary"; - this.CHK_ReplaceLegend.UseVisualStyleBackColor = true; + this.GB_Tweak.Controls.Add(this.CHK_RemoveShinyLock); + this.GB_Tweak.Controls.Add(this.NUD_ForceFullyEvolved); + this.GB_Tweak.Controls.Add(this.CHK_ForceTotem); + this.GB_Tweak.Controls.Add(this.CHK_ForceFullyEvolved); + this.GB_Tweak.Controls.Add(this.CHK_BasicStarter); + this.GB_Tweak.Controls.Add(this.CHK_ReplaceLegend); + this.GB_Tweak.Location = new System.Drawing.Point(119, 245); + this.GB_Tweak.Name = "GB_Tweak"; + this.GB_Tweak.Size = new System.Drawing.Size(258, 100); + this.GB_Tweak.TabIndex = 509; + this.GB_Tweak.TabStop = false; + this.GB_Tweak.Text = "Extra Tweaks"; + // + // CHK_BasicStarter + // + this.CHK_BasicStarter.AutoSize = true; + this.CHK_BasicStarter.Checked = true; + this.CHK_BasicStarter.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_BasicStarter.Location = new System.Drawing.Point(6, 31); + this.CHK_BasicStarter.Name = "CHK_BasicStarter"; + this.CHK_BasicStarter.Size = new System.Drawing.Size(217, 17); + this.CHK_BasicStarter.TabIndex = 304; + this.CHK_BasicStarter.Text = "Basic Starter Pokémon with 2 Evolutions"; + this.CHK_BasicStarter.UseVisualStyleBackColor = true; + // + // CHK_ForceTotem + // + this.CHK_ForceTotem.AutoSize = true; + this.CHK_ForceTotem.Location = new System.Drawing.Point(6, 47); + this.CHK_ForceTotem.Name = "CHK_ForceTotem"; + this.CHK_ForceTotem.Size = new System.Drawing.Size(200, 17); + this.CHK_ForceTotem.TabIndex = 305; + this.CHK_ForceTotem.Text = "Force Fully Evolved Totem Pokémon"; + this.CHK_ForceTotem.UseVisualStyleBackColor = true; + // + // NUD_ForceFullyEvolved + // + this.NUD_ForceFullyEvolved.Location = new System.Drawing.Point(165, 62); + this.NUD_ForceFullyEvolved.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUD_ForceFullyEvolved.Name = "NUD_ForceFullyEvolved"; + this.NUD_ForceFullyEvolved.Size = new System.Drawing.Size(40, 20); + this.NUD_ForceFullyEvolved.TabIndex = 514; + this.NUD_ForceFullyEvolved.Value = new decimal(new int[] { + 50, + 0, + 0, + 0}); + // + // CHK_ForceFullyEvolved + // + this.CHK_ForceFullyEvolved.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_ForceFullyEvolved.AutoSize = true; + this.CHK_ForceFullyEvolved.Location = new System.Drawing.Point(6, 63); + this.CHK_ForceFullyEvolved.Name = "CHK_ForceFullyEvolved"; + this.CHK_ForceFullyEvolved.Size = new System.Drawing.Size(160, 17); + this.CHK_ForceFullyEvolved.TabIndex = 513; + this.CHK_ForceFullyEvolved.Text = "Force Fully Evolved at Level"; + this.CHK_ForceFullyEvolved.UseVisualStyleBackColor = true; // // StaticEncounterEditor7 // @@ -1882,8 +1944,11 @@ private void InitializeComponent() this.Tab_Randomizer.ResumeLayout(false); this.Tab_Randomizer.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).EndInit(); + this.GB_Rand.ResumeLayout(false); + this.GB_Rand.PerformLayout(); this.GB_Tweak.ResumeLayout(false); this.GB_Tweak.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).EndInit(); this.ResumeLayout(false); } @@ -1934,9 +1999,8 @@ private void InitializeComponent() private System.Windows.Forms.ComboBox CB_TRequest; private System.Windows.Forms.Label label1; private System.Windows.Forms.TabPage Tab_Randomizer; - private System.Windows.Forms.GroupBox GB_Tweak; + private System.Windows.Forms.GroupBox GB_Rand; private System.Windows.Forms.CheckBox CHK_G7; - private System.Windows.Forms.Label L_RandOpt; private System.Windows.Forms.CheckBox CHK_BST; private System.Windows.Forms.CheckBox CHK_E; private System.Windows.Forms.CheckBox CHK_L; @@ -2022,5 +2086,10 @@ private void InitializeComponent() private System.Windows.Forms.Label L_TGender; private System.Windows.Forms.NumericUpDown NUD_TGender; private System.Windows.Forms.CheckBox CHK_ReplaceLegend; + private System.Windows.Forms.GroupBox GB_Tweak; + private System.Windows.Forms.CheckBox CHK_ForceTotem; + private System.Windows.Forms.CheckBox CHK_BasicStarter; + private System.Windows.Forms.NumericUpDown NUD_ForceFullyEvolved; + private System.Windows.Forms.CheckBox CHK_ForceFullyEvolved; } } \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/StaticEncounterEditor7.cs b/pk3DS/Subforms/Gen7/StaticEncounterEditor7.cs index 4873f95..eacdf55 100644 --- a/pk3DS/Subforms/Gen7/StaticEncounterEditor7.cs +++ b/pk3DS/Subforms/Gen7/StaticEncounterEditor7.cs @@ -20,7 +20,9 @@ public partial class StaticEncounterEditor7 : Form private readonly string[] natures = Main.Config.getText(TextName.Natures); private readonly string[] types = Main.Config.getText(TextName.Types); private readonly int[] oldStarters; + private static int[] FinalEvo; private static int[] ReplaceLegend; + private static int[] BasicStarter; private readonly string[] ability = { @@ -52,6 +54,9 @@ public partial class StaticEncounterEditor7 : Form "All Stats (+3)", }; + private static int[] Totem = { 020, 105, 735, 738, 743, 746, 752, 754, 758, 777, 778, 784 }; // Totem battles + private static int[] UnevolvedLegend = { 772, 789, 803 }; // Type: Null, Cosmog, Poipole gifts + public StaticEncounterEditor7(byte[][] infiles) { InitializeComponent(); @@ -134,8 +139,9 @@ public StaticEncounterEditor7(byte[][] infiles) LB_Gift.SelectedIndex = 0; LB_Encounter.SelectedIndex = 0; LB_Trade.SelectedIndex = 0; - + FinalEvo = Main.Config.USUM ? Legal.FinalEvolutions_USUM : Legal.FinalEvolutions_SM; ReplaceLegend = Main.Config.USUM ? Legal.Legendary_Mythical_USUM : Legal.Legendary_Mythical_SM; + BasicStarter = Legal.BasicStarters_7; // Select last tab (Randomization) by default in case info already randomized. TC_Tabs.SelectedIndex = TC_Tabs.TabCount - 1; @@ -464,7 +470,17 @@ private void B_Starters_Click(object sender, EventArgs e) for (int i = 0; i < 3; i++) { var t = Gifts[i]; - t.Species = specrand.GetRandomSpecies(oldStarters[i]); + + // Pokemon with 2 evolutions + if (CHK_BasicStarter.Checked) + { + int basic() => (int)(Util.rnd32() % BasicStarter.Length); + t.Species = BasicStarter[basic()]; + } + + else + t.Species = specrand.GetRandomSpecies(oldStarters[i]); + t.Form = formrand.GetRandomForme(t.Species); t.Nature = -1; // random @@ -505,13 +521,14 @@ private void B_RandAll_Click(object sender, EventArgs e) var formrand = new FormRandomizer(Main.Config) { AllowMega = false, AllowAlolanForm = true }; var move = new LearnsetRandomizer(Main.Config, Main.Config.Learnsets); var items = Randomizer.getRandomItemList(); + int randFinalEvo() => (int)(Util.rnd32() % FinalEvo.Length); for (int i = 3; i < Gifts.Length; i++) // Skip Starters { var t = Gifts[i]; - // replace Legendaries with another Legendary - if (CHK_ReplaceLegend.Checked && ReplaceLegend.Contains(t.Species)) + // replace Legendaries with another Legendary, including unevolved Legendary gifts + if (CHK_ReplaceLegend.Checked && (ReplaceLegend.Contains(t.Species)) || (UnevolvedLegend.Contains(t.Species))) { int randLegend() => (int)(Util.rnd32() % ReplaceLegend.Length); t.Species = ReplaceLegend[randLegend()]; @@ -541,6 +558,12 @@ private void B_RandAll_Click(object sender, EventArgs e) if (CHK_RandomAbility.Checked) t.Ability = (sbyte)(Util.rand.Next(0, 3)); // 1, 2, or H + + if (CHK_ForceFullyEvolved.Checked && t.Level >= NUD_ForceFullyEvolved.Value && !FinalEvo.Contains(t.Species)) + { + t.Species = FinalEvo[randFinalEvo()]; + t.Form = Randomizer.GetRandomForme(t.Species, CHK_AllowMega.Checked, true, Main.SpeciesStat); + } } foreach (EncounterStatic7 t in Encounters) { @@ -551,6 +574,10 @@ private void B_RandAll_Click(object sender, EventArgs e) t.Species = ReplaceLegend[randLegend()]; } + // fully evolved Totems + else if (CHK_ForceTotem.Checked && Totem.Contains(t.Species)) + t.Species = FinalEvo[randFinalEvo()]; + // every other entry else t.Species = specrand.GetRandomSpecies(t.Species); @@ -577,6 +604,12 @@ private void B_RandAll_Click(object sender, EventArgs e) if (CHK_RandomAbility.Checked) t.Ability = (sbyte)(Util.rand.Next(1, 4)); // 1, 2, or H + + if (CHK_ForceFullyEvolved.Checked && t.Level >= NUD_ForceFullyEvolved.Value && !FinalEvo.Contains(t.Species)) + { + t.Species = FinalEvo[randFinalEvo()]; + t.Form = Randomizer.GetRandomForme(t.Species, CHK_AllowMega.Checked, true, Main.SpeciesStat); + } } foreach (EncounterTrade7 t in Trades) { @@ -596,6 +629,12 @@ private void B_RandAll_Click(object sender, EventArgs e) if (CHK_RandomAbility.Checked) t.Ability = (sbyte)(Util.rand.Next(0, 3)); // 1, 2, or H + + if (CHK_ForceFullyEvolved.Checked && t.Level >= NUD_ForceFullyEvolved.Value && !FinalEvo.Contains(t.Species)) + { + t.Species = FinalEvo[randFinalEvo()]; + t.Form = Randomizer.GetRandomForme(t.Species, CHK_AllowMega.Checked, true, Main.SpeciesStat); + } } getListBoxEntries();