diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..0e98f34 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,18 @@ +### REQUIRED +* [ ] I confirm this Issue is relevant to Among Us Revamped +* [ ] I confirm this Issue is not a duplicate +* [ ] I have read the main GitHub page for potential answers to my Issue + +### INFO +Please tick all the boxes above by typing "x" between them. +If your Issue does not match these requirements, please do not post it. +Issues ignoring or falsifying these requirements will be closed without warning. +Support based questions are preferred to be asked on Discord, but not prohibited. + +### ISSUE TYPE (tick 1) +* [ ] Bug Report +* [ ] Suggestion +* [ ] Support +* [ ] other + +### WRITE YOUR ISSUE BELOW: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..7188b3d --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,17 @@ +### REQUIRED +* [ ] I confirm this PR was not fully made by AI +* [ ] I confirm this PR is fitting for Among Us Revamped +* [ ] I confirm this PR has been tested and properly functions + +### INFO +Please tick all the boxes above by typing "x" between them. +If your Pull Request does not match these requirements, please do not post it. +Pull Requests ignoring or falsifying these requirements will be closed without warning. + +### PR TYPE +* [ ] Bug Fix +* [ ] New Feature +* [ ] Refactor/Optimization +* [ ] Documentation Update + +### WRITE YOUR PULL REQUEST BELOW: diff --git a/AmongUsRevamped.cs b/AmongUsRevamped.cs index 9773363..2b06713 100644 --- a/AmongUsRevamped.cs +++ b/AmongUsRevamped.cs @@ -44,7 +44,7 @@ public partial class Main : BasePlugin public static bool HasArgumentException; public static string CredentialsText; - public const string ModVersion = "v2.0.2"; + public const string ModVersion = "v2.0.3"; public static float GameTimer; public static float AfkTimer; diff --git a/Modules/FixedUpdate.cs b/Modules/FixedUpdate.cs index 755d1ce..6e9c882 100644 --- a/Modules/FixedUpdate.cs +++ b/Modules/FixedUpdate.cs @@ -128,8 +128,8 @@ public static class FixedUpdate if (p.protectedByGuardianId == -1) { p.RpcProtectPlayer(p, p.cosmetics.ColorId); - p.Data.MarkDirty(); } + p.Data.MarkDirty(); } } } @@ -270,16 +270,6 @@ class FixedUpdateInGamePatch NormalGameEndChecker.CheckWinnerText("PnSTimer"); } } - - if ((Options.SNSChatInGameFast.GetBool() && Options.Gamemode.GetValue() == 1) || (Options.PNSChatInGameFast.GetBool() && Options.Gamemode.GetValue() == 3)) - { - if (Main.GM.Value && !Utils.IsDead) - { - Logger.Info($" Game Master Successful", "StartGame"); - PlayerControl.LocalPlayer.Exiled(); - PlayerControl.LocalPlayer.RpcSetRole(RoleTypes.CrewmateGhost); - } - } } } } \ No newline at end of file diff --git a/Modules/OptionManager.cs b/Modules/OptionManager.cs index e2f31d4..0dde06e 100644 --- a/Modules/OptionManager.cs +++ b/Modules/OptionManager.cs @@ -7,7 +7,8 @@ namespace AmongUsRevamped; public static class OptionManager { - private static OptionBackupData CachedOptions; + private static float OldKillCooldown; + public static void SyncGameOptions() { if (!AmongUsClient.Instance.AmHost) return; @@ -29,17 +30,19 @@ public static class OptionManager { if (!AmongUsClient.Instance.AmHost) return; - CachedOptions = new OptionBackupData(GameOptionsManager.Instance.CurrentGameOptions); + OldKillCooldown = Main.NormalOptions.KillCooldown; } public static void RestoreOptions() { - if (!AmongUsClient.Instance.AmHost || CachedOptions == null) return; - - var restored = CachedOptions.Restore(GameOptionsManager.Instance.CurrentGameOptions); - - GameOptionsManager.Instance.CurrentGameOptions = restored; + if (!AmongUsClient.Instance.AmHost) return; + if (Main.NormalOptions.KillCooldown != OldKillCooldown) + { + Main.NormalOptions.KillCooldown = OldKillCooldown; + Logger.Info("Force overrided Kill Cooldown back to original", "RestoreOptions"); + } + SyncGameOptions(); } } \ No newline at end of file diff --git a/Patches/EndGamePatches.cs b/Patches/EndGamePatches.cs index 1940b55..f3a0819 100644 --- a/Patches/EndGamePatches.cs +++ b/Patches/EndGamePatches.cs @@ -11,9 +11,9 @@ public static class EndGameManagerPatch public static void Postfix(EndGameManager __instance) { Logger.Info(" -------- GAME ENDED --------", "EndGame"); - Utils.ClearLeftoverData(); - //OptionManager.RestoreOptions(); + Utils.ClearLeftoverData(); + OptionManager.RestoreOptions(); EndGameNavigation navigation = __instance.Navigation; if (!AmongUsClient.Instance.AmHost || __instance == null || navigation == null || !Options.AutoRejoinLobby.GetBool()) return; diff --git a/Patches/ExilePatch.cs b/Patches/ExilePatch.cs index c308a84..12e6d03 100644 --- a/Patches/ExilePatch.cs +++ b/Patches/ExilePatch.cs @@ -20,6 +20,17 @@ class ExileControllerWrapUpPatch public static void AfterExile(NetworkedPlayerInfo ejectedPlayer) { if (!AmongUsClient.Instance.AmHost) return; + + if ((Options.SNSChatInGameFast.GetBool() && Options.Gamemode.GetValue() == 1) || (Options.PNSChatInGameFast.GetBool() && Options.Gamemode.GetValue() == 3)) + { + if (Main.GM.Value && !Utils.IsDead) + { + Logger.Info($" Game Master Successful", "StartGame"); + PlayerControl.LocalPlayer.Exiled(); + PlayerControl.LocalPlayer.RpcSetRole(RoleTypes.CrewmateGhost); + } + } + if (ejectedPlayer == null) return; PlayerControl pc = null; diff --git a/Patches/IntroPatch.cs b/Patches/IntroPatch.cs index 009f8ca..b772b7c 100644 --- a/Patches/IntroPatch.cs +++ b/Patches/IntroPatch.cs @@ -15,7 +15,7 @@ internal static class CoShowIntroPatch if (!AmongUsClient.Instance.AmHost) return; - //OptionManager.CacheOptions(); + OptionManager.CacheOptions(); foreach (var p in PlayerControl.AllPlayerControls) { diff --git a/Patches/PlayerControlPatches.cs b/Patches/PlayerControlPatches.cs index d4dac53..58ee68c 100644 --- a/Patches/PlayerControlPatches.cs +++ b/Patches/PlayerControlPatches.cs @@ -62,20 +62,22 @@ internal static class MurderPlayerPatch if (resultFlags.HasFlag(MurderResultFlags.Succeeded)) { - killCount[playerId]++; - Logger.Info($" {__instance.Data.PlayerName} killed {target.Data.PlayerName}", "MurderPlayer"); - if (string.IsNullOrEmpty(NormalGameEndChecker.firstDeath)) - { - NormalGameEndChecker.firstDeath = target.Data.PlayerName; - Utils.HasMurdered = true; - } - if (Options.Gamemode.GetValue() == 1 && !Utils.isHideNSeek) { if (target.Data.PlayerId == __instance.shapeshiftTargetPlayerId) return; Logger.Info($" {__instance.Data.PlayerName} directly killed {target.Data.PlayerName} in SnS, forcing suicide. (Are they hacking?)", "MurderPlayer"); __instance.RpcSetRole(RoleTypes.ImpostorGhost); } + else + { + killCount[playerId]++; + Logger.Info($" {__instance.Data.PlayerName} killed {target.Data.PlayerName}", "MurderPlayer"); + if (string.IsNullOrEmpty(NormalGameEndChecker.firstDeath)) + { + NormalGameEndChecker.firstDeath = target.Data.PlayerName; + Utils.HasMurdered = true; + } + } } if ((target == PlayerControl.LocalPlayer || PlayerControl.LocalPlayer.Data.IsDead) && !Main.DisableInfoWhenDead.Value && resultFlags.HasFlag(MurderResultFlags.Succeeded)) @@ -94,7 +96,7 @@ internal static class MurderPlayerPatch } //1 = Shift and Seek - if (Options.Gamemode.GetValue() == 1 && !Utils.isHideNSeek) + if (Options.Gamemode.GetValue() == 1 && !Utils.isHideNSeek && !resultFlags.HasFlag(MurderResultFlags.Succeeded)) { if (target.Data.PlayerId == __instance.shapeshiftTargetPlayerId) { diff --git a/README.md b/README.md index 9dfb1d9..52235ef 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,10 @@ + + Ko-fi + +

@@ -37,7 +41,7 @@ **** ‎ -# 🎮 Features (v2.0.2): +# 🎮 Features (v2.0.3): ## ♠️ Client Side settings: - Toggle Game Master (Spectator)