From cd97fab3a285bc9a7112e5ddb0169865b92bc55e Mon Sep 17 00:00:00 2001
From: Atony <75191600+AtonyGit@users.noreply.github.com>
Date: Thu, 13 Aug 2026 23:59:51 -0500
Subject: [PATCH] Show gamemode description in options
---
MiraAPI/GameModes/ClassicMode.cs | 2 +-
MiraAPI/GameModes/HideAndSeekMode.cs | 2 +-
MiraAPI/Patches/Options/GameOptionsMenuPatch.cs | 12 ++++++++++++
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/MiraAPI/GameModes/ClassicMode.cs b/MiraAPI/GameModes/ClassicMode.cs
index 952f918..7eff012 100644
--- a/MiraAPI/GameModes/ClassicMode.cs
+++ b/MiraAPI/GameModes/ClassicMode.cs
@@ -12,5 +12,5 @@ public class ClassicMode : AbstractGameMode
public override string Name => "Classic";
///
- public override string Description => "The classic Among Us experience";
+ public override string Description => "The classic Among Us experience!\nFind the Impostors or deceive the Crew.";
}
diff --git a/MiraAPI/GameModes/HideAndSeekMode.cs b/MiraAPI/GameModes/HideAndSeekMode.cs
index 952a268..6ec83ae 100644
--- a/MiraAPI/GameModes/HideAndSeekMode.cs
+++ b/MiraAPI/GameModes/HideAndSeekMode.cs
@@ -26,7 +26,7 @@ public class HideAndSeekMode : AbstractGameMode
public override string Name => "Hide n Seek";
///
- public override string Description => "You can run, but you can't hide!";
+ public override string Description => "You can run, but you can't hide!\nOutlive the timer or eliminate the crew.";
public override Color Color { get; } = new Color32(255, 88, 90, 255);
diff --git a/MiraAPI/Patches/Options/GameOptionsMenuPatch.cs b/MiraAPI/Patches/Options/GameOptionsMenuPatch.cs
index 1da222a..5e5b27e 100644
--- a/MiraAPI/Patches/Options/GameOptionsMenuPatch.cs
+++ b/MiraAPI/Patches/Options/GameOptionsMenuPatch.cs
@@ -31,6 +31,7 @@ internal static class GameOptionsMenuPatch
private static System.Collections.Generic.Dictionary> _gameModeGroups = new();
private static System.Collections.Generic.Dictionary> _gameModeOptions = new();
private static System.Collections.Generic.Dictionary> _gameModeHeaders = new();
+ private static TextMeshPro _gamemodeDescription = null!;
[HarmonyPrefix]
[HarmonyPatch(nameof(GameOptionsMenu.Initialize))]
// ReSharper disable once InconsistentNaming
@@ -83,6 +84,7 @@ internal static class GameOptionsMenuPatch
{
instance.Children.Add(opt);
}
+ _gamemodeDescription.text = gameMode.Description;
if (gameMode.ShowNormalGameSettings)
{
foreach (var opt in _vanillaHeaders)
@@ -195,6 +197,16 @@ internal static class GameOptionsMenuPatch
GameModeOption.Values.ElementAt(i).Value);
}
+ var gamemodeTextObj = Object.Instantiate(GameModeOption.OptionBehaviour.transform.GetChild(1).gameObject, Vector3.zero, Quaternion.identity, container);
+ gamemodeTextObj.transform.localPosition = new Vector3(1, -0.675f, -2f);
+ gamemodeTextObj.transform.localScale = new Vector3(2.6f, 2.6f, 1);
+ _gamemodeDescription = gamemodeTextObj.GetComponentInChildren();
+ _gamemodeDescription.fontSizeMin = 0.5f;
+ _gamemodeDescription.fontSizeMax = 1;
+
+ var gamemodeBg = Object.Instantiate(GameModeOption.OptionBehaviour.transform.GetChild(0).gameObject, Vector3.zero, Quaternion.identity, gamemodeTextObj.transform);
+ gamemodeBg.transform.localPosition = new Vector3(0, 0, 0.01f);
+ gamemodeBg.transform.localScale = new Vector3(0.61f, 0.375f, 1);
num -= 1.3f;
AdditionalVanillaScrollNum = 0f;
foreach (RulesCategory rulesCategory in GameManager.Instance.GameSettingsList.AllCategories)