diff --git a/src/CrowdedMod/CrowdedMod.csproj b/src/CrowdedMod/CrowdedMod.csproj index 54c8d32..3ae5a94 100644 --- a/src/CrowdedMod/CrowdedMod.csproj +++ b/src/CrowdedMod/CrowdedMod.csproj @@ -2,7 +2,7 @@ net6.0 - 2.7.0-corelcr + 2.9.0-corelcr CrowdedMods, andry08 latest @@ -11,11 +11,12 @@ Steam - 2022.10.25 + 2022.12.14 + D:\RE\Among Us\v2022.12.14s\BepInEx - - + + diff --git a/src/CrowdedMod/CrowdedModPlugin.cs b/src/CrowdedMod/CrowdedModPlugin.cs index 655b487..fa09281 100644 --- a/src/CrowdedMod/CrowdedModPlugin.cs +++ b/src/CrowdedMod/CrowdedModPlugin.cs @@ -1,4 +1,5 @@ using System.Linq; +using AmongUs.GameOptions; using BepInEx; using BepInEx.Unity.IL2CPP; using HarmonyLib; @@ -18,8 +19,9 @@ public partial class CrowdedModPlugin : BasePlugin public override void Load() { - GameOptionsData.RecommendedImpostors = GameOptionsData.MaxImpostors = Enumerable.Repeat(127, 127).ToArray(); - GameOptionsData.MinPlayers = Enumerable.Repeat(4, 127).ToArray(); + NormalGameOptionsV07.RecommendedImpostors = NormalGameOptionsV07.MaxImpostors = Enumerable.Repeat(127, 127).ToArray(); + NormalGameOptionsV07.MinPlayers = Enumerable.Repeat(4, 127).ToArray(); + Harmony.PatchAll(); } diff --git a/src/CrowdedMod/Net/SetColorRpc.cs b/src/CrowdedMod/Net/SetColorRpc.cs index 85cac74..fe8d42c 100644 --- a/src/CrowdedMod/Net/SetColorRpc.cs +++ b/src/CrowdedMod/Net/SetColorRpc.cs @@ -1,7 +1,7 @@ -using Hazel; +using CrowdedMod; +using Hazel; using Reactor.Networking.Attributes; using Reactor.Networking.Rpc; - namespace CrowdedMod.Net; [RegisterCustomRpc((uint) CustomRpcCalls.SetColor)] diff --git a/src/CrowdedMod/Patches/CreateGameOptionsPatches.cs b/src/CrowdedMod/Patches/CreateGameOptionsPatches.cs index 4fa157b..75bf205 100644 --- a/src/CrowdedMod/Patches/CreateGameOptionsPatches.cs +++ b/src/CrowdedMod/Patches/CreateGameOptionsPatches.cs @@ -1,4 +1,5 @@ using System; +using AmongUs.GameOptions; using HarmonyLib; using Reactor.Utilities.Extensions; using TMPro; @@ -68,6 +69,11 @@ public static void Postfix(CreateOptionsPicker __instance) playerButton.OnClick.AddListener((Action)(() => __instance.SetMaxPlayersButtons(byte.Parse(text.text)))); } + + for (var i = 0; i < __instance.MaxPlayerButtons.Count; i++) { + __instance.MaxPlayerButtons[i].enabled = + __instance.MaxPlayerButtons[i].GetComponentInChildren().text == __instance.GetTargetOptions().MaxPlayers.ToString(); + } } { @@ -79,6 +85,8 @@ public static void Postfix(CreateOptionsPicker __instance) secondButton.GetComponent().Destroy(); var secondButtonText = secondButton.GetComponentInChildren(); + secondButtonText.text = + __instance.GetTargetOptions().NumImpostors.ToString(); var firstButtonRenderer = __instance.ImpostorButtons[0]; firstButtonRenderer.enabled = false; @@ -112,11 +120,11 @@ public static void Postfix(CreateOptionsPicker __instance) [HarmonyPatch(typeof(CreateOptionsPicker), nameof(CreateOptionsPicker.UpdateMaxPlayersButtons))] public static class CreateOptionsPicker_UpdateMaxPlayersButtons { - public static bool Prefix(CreateOptionsPicker __instance, [HarmonyArgument(0)] GameOptionsData opts) + public static bool Prefix(CreateOptionsPicker __instance, [HarmonyArgument(0)] IGameOptions opts) { if (__instance.CrewArea) { - __instance.CrewArea.SetCrewSize(opts.MaxPlayers, opts.numImpostors); + __instance.CrewArea.SetCrewSize(opts.MaxPlayers, opts.NumImpostors); } var selectedAsString = opts.MaxPlayers.ToString(); @@ -137,22 +145,5 @@ public static bool Prefix() return false; } } - - [HarmonyPatch(typeof(GameOptionsData), nameof(GameOptionsData.GameHostOptions), MethodType.Getter)] - public static class SaveManager_get_GameHostOptions - { - public static bool Prefix(out GameOptionsData __result) - { - GameOptionsData.hostOptionsData ??= GameOptionsData.LoadGameHostOptions(); - - // patched because of impostor clamping - GameOptionsData.hostOptionsData.NumImpostors = - Mathf.Clamp(GameOptionsData.hostOptionsData.NumImpostors, 1, GameOptionsData.hostOptionsData.MaxPlayers - 1); - GameOptionsData.hostOptionsData.KillDistance = Mathf.Clamp(GameOptionsData.hostOptionsData.KillDistance, 0, 2); - - __result = GameOptionsData.hostOptionsData; - return false; - } - } } } \ No newline at end of file diff --git a/src/CrowdedMod/Patches/GenericPatches.cs b/src/CrowdedMod/Patches/GenericPatches.cs index 5a1e2ae..81ba4eb 100644 --- a/src/CrowdedMod/Patches/GenericPatches.cs +++ b/src/CrowdedMod/Patches/GenericPatches.cs @@ -68,7 +68,7 @@ public static void Postfix(GameStartManager __instance) { if (fixDummyCounterColor != null) { - __instance.PlayerCounter.text = $"{fixDummyCounterColor}{GameData.Instance.PlayerCount}/{PlayerControl.GameOptions.MaxPlayers}"; + __instance.PlayerCounter.text = $"{fixDummyCounterColor}{GameData.Instance.PlayerCount}/{GameManager.Instance.LogicOptions.MaxPlayers}"; fixDummyCounterColor = null; } }