From b0ceb129a4cacd7605de75def789b44480921e05 Mon Sep 17 00:00:00 2001
From: Atony <75191600+AtonyGit@users.noreply.github.com>
Date: Thu, 30 Apr 2026 12:37:54 -0500
Subject: [PATCH] Re-add Hns options as modded options
The options don't appear yet though, this needs to be fixed!
---
.../Options/HnsCrewmateOptions.cs | 89 +++++++++++++++++++
.../Options/HnsFinalHideOptions.cs | 52 +++++++++++
.../Options/HnsImpostorOptions.cs | 40 +++++++++
.../Options/HnsTaskOptions.cs | 43 +++++++++
4 files changed, 224 insertions(+)
create mode 100644 MiraAPI/HnsReimplemented/Options/HnsCrewmateOptions.cs
create mode 100644 MiraAPI/HnsReimplemented/Options/HnsFinalHideOptions.cs
create mode 100644 MiraAPI/HnsReimplemented/Options/HnsImpostorOptions.cs
create mode 100644 MiraAPI/HnsReimplemented/Options/HnsTaskOptions.cs
diff --git a/MiraAPI/HnsReimplemented/Options/HnsCrewmateOptions.cs b/MiraAPI/HnsReimplemented/Options/HnsCrewmateOptions.cs
new file mode 100644
index 0000000..cf1a7c6
--- /dev/null
+++ b/MiraAPI/HnsReimplemented/Options/HnsCrewmateOptions.cs
@@ -0,0 +1,89 @@
+using MiraAPI.GameModes;
+using MiraAPI.GameOptions;
+using MiraAPI.GameOptions.OptionTypes;
+using MiraAPI.Utilities;
+
+namespace MiraAPI.HnsReimplemented.Options;
+
+///
+public class HnsCrewmateOptions : AbstractOptionGroup
+{
+ ///
+ public override string GroupName => "Crewmates";
+
+ public ModdedNumberOption PlayerSpeed { get; set; } = new(
+ "Player Speed",
+ 1f,
+ 0.5f,
+ 3f,
+ 0.25f,
+ "#",
+ "#",
+ MiraNumberSuffixes.Multiplier,
+ "0.00");
+
+ public ModdedNumberOption HidingTime { get; set; } = new(
+ "Hiding Time",
+ 200,
+ 160,
+ 300,
+ 20,
+ "#",
+ "#",
+ MiraNumberSuffixes.Seconds);
+
+ public ModdedNumberOption CrewmateVision { get; set; } = new(
+ "Crewmate Vision",
+ 0.6f,
+ 0.25f,
+ 1,
+ 0.05f,
+ "#",
+ "#",
+ MiraNumberSuffixes.Multiplier,
+ "0.00");
+
+ public ModdedNumberOption MaxVentUses { get; set; } = new(
+ "Max Vent Uses",
+ 1,
+ 0,
+ 5,
+ 1,
+ "#",
+ "#",
+ MiraNumberSuffixes.None);
+
+ public ModdedNumberOption MaxTimeInVent { get; set; } = new(
+ "Max Time in Vent",
+ 3,
+ 1,
+ 10,
+ 1,
+ "#",
+ "#",
+ MiraNumberSuffixes.Seconds)
+ {
+ Visible = () => (int)OptionGroupSingleton.Instance.MaxVentUses.Value > 0,
+ };
+
+ public ModdedToggleOption FlashlightMode { get; set; } = new(
+ "Flashlight Mode",
+ true);
+
+ public ModdedNumberOption CrewmateFlashlightSize { get; set; } = new(
+ "Crewmate Flashlight Size",
+ 0.35f,
+ 0.1f,
+ 0.5f,
+ 0.05f,
+ "#",
+ "#",
+ MiraNumberSuffixes.Multiplier)
+ {
+ Visible = () => OptionGroupSingleton.Instance.FlashlightMode.Value,
+ };
+
+ public ModdedToggleOption ShowNames { get; set; } = new(
+ "Show Names",
+ false);
+}
diff --git a/MiraAPI/HnsReimplemented/Options/HnsFinalHideOptions.cs b/MiraAPI/HnsReimplemented/Options/HnsFinalHideOptions.cs
new file mode 100644
index 0000000..009b248
--- /dev/null
+++ b/MiraAPI/HnsReimplemented/Options/HnsFinalHideOptions.cs
@@ -0,0 +1,52 @@
+using MiraAPI.GameModes;
+using MiraAPI.GameOptions;
+using MiraAPI.GameOptions.OptionTypes;
+using MiraAPI.Utilities;
+
+namespace MiraAPI.HnsReimplemented.Options;
+
+///
+public class HnsFinalHideOptions : AbstractOptionGroup
+{
+ ///
+ public override string GroupName => "Final Hide";
+
+ public ModdedNumberOption FinalHideTime { get; set; } = new(
+ "Hiding Time",
+ 50,
+ 30,
+ 120,
+ 5,
+ "#",
+ "#",
+ MiraNumberSuffixes.Seconds);
+
+ public ModdedToggleOption FinalHidePings { get; set; } = new(
+ "Final Hide Pings",
+ true);
+
+ public ModdedNumberOption FinalHideImpostorSpeed { get; set; } = new(
+ "Final Hide Impostor Speed",
+ 1.2f,
+ 1f,
+ 3,
+ 0.05f,
+ "#",
+ "#",
+ MiraNumberSuffixes.Multiplier,
+ "0.00");
+
+ public ModdedNumberOption PingInterval { get; set; } = new(
+ "Ping Interval",
+ 6,
+ 3,
+ 10,
+ 5,
+ "#",
+ "#",
+ MiraNumberSuffixes.Seconds);
+
+ public ModdedToggleOption FinalHideSeekMap { get; set; } = new(
+ "Final Hide Seek Map",
+ true);
+}
diff --git a/MiraAPI/HnsReimplemented/Options/HnsImpostorOptions.cs b/MiraAPI/HnsReimplemented/Options/HnsImpostorOptions.cs
new file mode 100644
index 0000000..c0c61b5
--- /dev/null
+++ b/MiraAPI/HnsReimplemented/Options/HnsImpostorOptions.cs
@@ -0,0 +1,40 @@
+using MiraAPI.GameModes;
+using MiraAPI.GameOptions;
+using MiraAPI.GameOptions.OptionTypes;
+using MiraAPI.Utilities;
+
+namespace MiraAPI.HnsReimplemented.Options;
+
+///
+public class HnsImpostorOptions : AbstractOptionGroup
+{
+ ///
+ public override string GroupName => "Impostors";
+
+ public ModdedPlayerOption SelectedSeeker { get; set; } = new(
+ "Forced Impostor");
+
+ public ModdedNumberOption ImpostorVision { get; set; } = new(
+ "Impostor Vision",
+ 0.6f,
+ 0.25f,
+ 1,
+ 0.05f,
+ "#",
+ "#",
+ MiraNumberSuffixes.Multiplier,
+ "0.00");
+
+ public ModdedNumberOption ImpostorFlashlightSize { get; set; } = new(
+ "Impostor Flashlight Size",
+ 0.35f,
+ 0.1f,
+ 0.5f,
+ 0.05f,
+ "#",
+ "#",
+ MiraNumberSuffixes.Multiplier)
+ {
+ Visible = () => OptionGroupSingleton.Instance.FlashlightMode.Value,
+ };
+}
diff --git a/MiraAPI/HnsReimplemented/Options/HnsTaskOptions.cs b/MiraAPI/HnsReimplemented/Options/HnsTaskOptions.cs
new file mode 100644
index 0000000..112f674
--- /dev/null
+++ b/MiraAPI/HnsReimplemented/Options/HnsTaskOptions.cs
@@ -0,0 +1,43 @@
+using MiraAPI.GameModes;
+using MiraAPI.GameOptions;
+using MiraAPI.GameOptions.OptionTypes;
+using MiraAPI.Utilities;
+
+namespace MiraAPI.HnsReimplemented.Options;
+
+///
+public class HnsTaskOptions : AbstractOptionGroup
+{
+ ///
+ public override string GroupName => "Tasks";
+
+ public ModdedNumberOption CommonTasks { get; set; } = new(
+ "# Common Tasks",
+ 1,
+ 0,
+ 2,
+ 1,
+ "#",
+ "#",
+ MiraNumberSuffixes.None);
+
+ public ModdedNumberOption LongTasks { get; set; } = new(
+ "# Long Tasks",
+ 1,
+ 0,
+ 3,
+ 1,
+ "#",
+ "#",
+ MiraNumberSuffixes.None);
+
+ public ModdedNumberOption ShortTasks { get; set; } = new(
+ "# Short Tasks",
+ 2,
+ 0,
+ 5,
+ 1,
+ "#",
+ "#",
+ MiraNumberSuffixes.None);
+}