diff --git a/PKHeX.Core/Editing/Saves/Editors/EventUnlock/EventUnlocker8b.cs b/PKHeX.Core/Editing/Saves/Editors/EventUnlock/EventUnlocker8b.cs index a7fabb35a..2943b268b 100644 --- a/PKHeX.Core/Editing/Saves/Editors/EventUnlock/EventUnlocker8b.cs +++ b/PKHeX.Core/Editing/Saves/Editors/EventUnlock/EventUnlocker8b.cs @@ -8,6 +8,7 @@ public class EventUnlocker8b : EventUnlocker public bool UnlockReadyBoxLegend => SAV.Work.GetFlag(308) && SAV.Work.GetWork(84) != 5; // FE_D05R0114_SPPOKE_GET, WK_SCENE_D05R0114 (1-3 story related, 4 = captured, 5 = can retry) public bool UnlockReadyShaymin => SAV.Work.GetFlag(545) || !(SAV.Work.GetWork(276) == 1 && SAV.Zukan.HasNationalDex && SAV.Items.GetItemQuantity(452) == 1 && SAV.Work.GetSystemFlag(5)); // HAIHUEVENT_ID_D30, Oak's Letter public bool UnlockReadyDarkrai => SAV.Work.GetFlag(301) || !(SAV.Work.GetWork(275) == 1 && SAV.Zukan.HasNationalDex && SAV.Items.GetItemQuantity(454) == 1); // HAIHUEVENT_ID_D18, Member Card + public bool UnlockReadyArceus => SAV.Work.GetFlag(531) || !(SAV.Work.GetWork(188) == 0 && SAV.Zukan.HasNationalDex && SAV.Items.GetItemQuantity(455) == 1 && SAV.Work.GetSystemFlag(5)); // FE_D05R0116_LEGEND_CLEAR, Azure Flute // 0 = inactive, 1 = roaming, 2 = KOed, 3 = captured public bool UnlockReadyRoamerMesprit => SAV.Encounter.Roamer1Encount != 1; @@ -47,6 +48,17 @@ public void UnlockDarkrai() SAV.Work.SetFlag(301, false); // clear vanish } + public void UnlockArceus() + { + SAV.Zukan.HasNationalDex = true; // dex + SAV.Items.SetItemQuantity(455, 1); // flute + SAV.Work.SetSystemFlag(5, true); // clear + SAV.Work.SetFlag(1508, true); // wildcard + SAV.Work.SetFlag(244, false); // captured + SAV.Work.SetFlag(531, false); // clear vanish + SAV.Work.SetWork(188, 0); // staircase + } + public void UnlockZones() { const int ZONE_START = 134; // FLAG_ARRIVE_C01 diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_Misc8b.Designer.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_Misc8b.Designer.cs index 2160a0c63..bc589fbef 100644 --- a/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_Misc8b.Designer.cs +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_Misc8b.Designer.cs @@ -32,6 +32,7 @@ private void InitializeComponent() this.B_Save = new System.Windows.Forms.Button(); this.TC_Misc = new System.Windows.Forms.TabControl(); this.TAB_Main = new System.Windows.Forms.TabPage(); + this.B_Arceus = new System.Windows.Forms.Button(); this.B_Zones = new System.Windows.Forms.Button(); this.B_RebattleEyecatch = new System.Windows.Forms.Button(); this.B_DefeatEyecatch = new System.Windows.Forms.Button(); @@ -47,7 +48,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(194, 338); + this.B_Cancel.Location = new System.Drawing.Point(194, 378); this.B_Cancel.Name = "B_Cancel"; this.B_Cancel.Size = new System.Drawing.Size(75, 25); this.B_Cancel.TabIndex = 1; @@ -58,7 +59,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(275, 338); + this.B_Save.Location = new System.Drawing.Point(275, 378); this.B_Save.Name = "B_Save"; this.B_Save.Size = new System.Drawing.Size(75, 25); this.B_Save.TabIndex = 2; @@ -76,11 +77,12 @@ private void InitializeComponent() this.TC_Misc.Margin = new System.Windows.Forms.Padding(0); this.TC_Misc.Name = "TC_Misc"; this.TC_Misc.SelectedIndex = 0; - this.TC_Misc.Size = new System.Drawing.Size(344, 323); + this.TC_Misc.Size = new System.Drawing.Size(344, 363); this.TC_Misc.TabIndex = 0; // // TAB_Main // + this.TAB_Main.Controls.Add(this.B_Arceus); this.TAB_Main.Controls.Add(this.B_Zones); this.TAB_Main.Controls.Add(this.B_RebattleEyecatch); this.TAB_Main.Controls.Add(this.B_DefeatEyecatch); @@ -92,14 +94,24 @@ private void InitializeComponent() 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(336, 297); + this.TAB_Main.Size = new System.Drawing.Size(336, 337); this.TAB_Main.TabIndex = 0; this.TAB_Main.Text = "Main"; this.TAB_Main.UseVisualStyleBackColor = true; // + // B_Arceus + // + this.B_Arceus.Location = new System.Drawing.Point(6, 198); + this.B_Arceus.Name = "B_Arceus"; + this.B_Arceus.Size = new System.Drawing.Size(124, 58); + this.B_Arceus.TabIndex = 8; + this.B_Arceus.Text = "Unlock Arceus Event"; + this.B_Arceus.UseVisualStyleBackColor = true; + this.B_Arceus.Click += new System.EventHandler(this.B_Arceus_Click); + // // B_Zones // - this.B_Zones.Location = new System.Drawing.Point(6, 198); + this.B_Zones.Location = new System.Drawing.Point(6, 262); this.B_Zones.Name = "B_Zones"; this.B_Zones.Size = new System.Drawing.Size(124, 58); this.B_Zones.TabIndex = 7; @@ -181,7 +193,7 @@ private void InitializeComponent() // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(362, 372); + this.ClientSize = new System.Drawing.Size(362, 412); this.Controls.Add(this.TC_Misc); this.Controls.Add(this.B_Save); this.Controls.Add(this.B_Cancel); @@ -210,5 +222,6 @@ private void InitializeComponent() private System.Windows.Forms.Button B_DefeatEyecatch; private System.Windows.Forms.Button B_RebattleEyecatch; private System.Windows.Forms.Button B_Zones; + private System.Windows.Forms.Button B_Arceus; } } diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_Misc8b.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_Misc8b.cs index 5636e9ec9..875c17444 100644 --- a/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_Misc8b.cs +++ b/PKHeX.WinForms/Subforms/Save Editors/Gen8/SAV_Misc8b.cs @@ -33,6 +33,7 @@ private void ReadMain() B_Spiritomb.Enabled = Unlocker.UnlockReadySpiritomb; B_Darkrai.Enabled = Unlocker.UnlockReadyDarkrai; B_Shaymin.Enabled = Unlocker.UnlockReadyShaymin; + B_Arceus.Enabled = Unlocker.UnlockReadyArceus; B_DialgaPalkia.Enabled = Unlocker.UnlockReadyBoxLegend; B_Roamer.Enabled = Unlocker.ResetReadyRoamerMesprit || Unlocker.ResetReadyRoamerCresselia; @@ -65,6 +66,13 @@ private void B_Darkrai_Click(object sender, EventArgs e) B_Darkrai.Enabled = Unlocker.UnlockReadyDarkrai; } + private void B_Arceus_Click(object sender, EventArgs e) + { + Unlocker.UnlockArceus(); + System.Media.SystemSounds.Asterisk.Play(); + B_Arceus.Enabled = Unlocker.UnlockReadyArceus; + } + private void B_DialgaPalkia_Click(object sender, EventArgs e) { Unlocker.UnlockBoxLegend();