Add BDSP Hall of Origin unlock cheat

This commit is contained in:
sora10pls 2022-05-13 17:25:18 -04:00
parent e741d34a44
commit 75f9f39cbf
3 changed files with 39 additions and 6 deletions

View file

@ -8,6 +8,7 @@ public class EventUnlocker8b : EventUnlocker<SAV8BS>
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 class EventUnlocker8b : EventUnlocker<SAV8BS>
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

View file

@ -32,6 +32,7 @@ namespace PKHeX.WinForms
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 @@ namespace PKHeX.WinForms
// 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 @@ namespace PKHeX.WinForms
// 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 @@ namespace PKHeX.WinForms
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 @@ namespace PKHeX.WinForms
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 @@ namespace PKHeX.WinForms
//
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 @@ namespace PKHeX.WinForms
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;
}
}

View file

@ -33,6 +33,7 @@ namespace PKHeX.WinForms
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 @@ namespace PKHeX.WinForms
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();