From 465ab0eee39e15e105efe36857173e7d8661bf31 Mon Sep 17 00:00:00 2001 From: NotSugden <28943913+NotSugden@users.noreply.github.com> Date: Mon, 5 Jul 2021 14:23:45 +0100 Subject: [PATCH] refactor(Sheriff): remove kills glitch option --- .../Patches/CrewmateRoles/SheriffMod/Kill.cs | 35 ++++++++++--------- source/Patches/CustomGameOptions.cs | 1 - source/Patches/CustomOption/Generate.cs | 3 -- source/Patches/PingTrackerUpdate.cs | 2 +- source/Patches/VersionShowerUpdate.cs | 2 +- source/TownOfUs.cs | 3 +- 6 files changed, 22 insertions(+), 24 deletions(-) diff --git a/source/Patches/CrewmateRoles/SheriffMod/Kill.cs b/source/Patches/CrewmateRoles/SheriffMod/Kill.cs index 6a77e6675..91f1ffed3 100644 --- a/source/Patches/CrewmateRoles/SheriffMod/Kill.cs +++ b/source/Patches/CrewmateRoles/SheriffMod/Kill.cs @@ -20,41 +20,44 @@ private static bool Prefix(KillButtonManager __instance) if (PlayerControl.LocalPlayer.Data.IsDead) return false; var flag2 = role.SheriffKillTimer() == 0f; if (!flag2) return false; - if (!__instance.enabled || role.ClosestPlayer == null) return false; - var distBetweenPlayers = Utils.getDistBetweenPlayers(PlayerControl.LocalPlayer, role.ClosestPlayer); + var target = role.ClosestPlayer; + if (!__instance.enabled || target == null) return false; + var distBetweenPlayers = Utils.getDistBetweenPlayers(PlayerControl.LocalPlayer, target); var flag3 = distBetweenPlayers < GameOptionsData.KillDistances[PlayerControl.GameOptions.KillDistance]; if (!flag3) return false; - if (role.ClosestPlayer.isShielded()) + if (target.isShielded()) { - var medic = role.ClosestPlayer.getMedic().Player.PlayerId; + var medic = target.getMedic().Player.PlayerId; var writer1 = AmongUsClient.Instance.StartRpcImmediately(PlayerControl.LocalPlayer.NetId, (byte) CustomRPC.AttemptSound, SendOption.Reliable, -1); writer1.Write(medic); - writer1.Write(role.ClosestPlayer.PlayerId); + writer1.Write(target.PlayerId); AmongUsClient.Instance.FinishRpcImmediately(writer1); if (CustomGameOptions.ShieldBreaks) role.LastKilled = DateTime.UtcNow; - StopKill.BreakShield(medic, role.ClosestPlayer.PlayerId, CustomGameOptions.ShieldBreaks); + StopKill.BreakShield(medic, target.PlayerId, CustomGameOptions.ShieldBreaks); return false; } - var flag4 = role.ClosestPlayer.Data.IsImpostor || - role.ClosestPlayer.Is(RoleEnum.Jester) && CustomGameOptions.SheriffKillsJester || - role.ClosestPlayer.Is(RoleEnum.Glitch) && CustomGameOptions.SheriffKillsGlitch || - role.ClosestPlayer.Is(RoleEnum.Arsonist) && CustomGameOptions.SheriffKillsArsonist; - if (!flag4) + var targetRole = Role.GetRole(target)?.RoleType; + + var canKill = target.Data.IsImpostor || role != null && + targetRole == RoleEnum.Glitch || + targetRole == RoleEnum.Jester && CustomGameOptions.SheriffKillsJester || + targetRole == RoleEnum.Arsonist && CustomGameOptions.SheriffKillsArsonist; + if (canKill) { - if (CustomGameOptions.SheriffKillOther) - Utils.RpcMurderPlayer(PlayerControl.LocalPlayer, role.ClosestPlayer); - Utils.RpcMurderPlayer(PlayerControl.LocalPlayer, PlayerControl.LocalPlayer); + Utils.RpcMurderPlayer(PlayerControl.LocalPlayer, target); } else { - Utils.RpcMurderPlayer(PlayerControl.LocalPlayer, role.ClosestPlayer); + if (CustomGameOptions.SheriffKillOther) + Utils.RpcMurderPlayer(PlayerControl.LocalPlayer, target); + Utils.RpcMurderPlayer(PlayerControl.LocalPlayer, PlayerControl.LocalPlayer); } - + role.LastKilled = DateTime.UtcNow; return false; diff --git a/source/Patches/CustomGameOptions.cs b/source/Patches/CustomGameOptions.cs index 1c9dc4b36..8733b85d0 100644 --- a/source/Patches/CustomGameOptions.cs +++ b/source/Patches/CustomGameOptions.cs @@ -47,7 +47,6 @@ public static class CustomGameOptions public static bool ShowSheriff => Generate.ShowSheriff.Get(); public static bool SheriffKillOther => Generate.SheriffKillOther.Get(); public static bool SheriffKillsJester => Generate.SheriffKillsJester.Get(); - public static bool SheriffKillsGlitch => Generate.SheriffKillsGlitch.Get(); public static bool SheriffKillsArsonist => Generate.SheriffKillsArsonist.Get(); public static float SheriffKillCd => Generate.SheriffKillCd.Get(); public static int MayorVoteBank => (int) Generate.MayorVoteBank.Get(); diff --git a/source/Patches/CustomOption/Generate.cs b/source/Patches/CustomOption/Generate.cs index 1fb83f786..016ac60da 100644 --- a/source/Patches/CustomOption/Generate.cs +++ b/source/Patches/CustomOption/Generate.cs @@ -74,7 +74,6 @@ public class Generate public static CustomToggleOption ShowSheriff; public static CustomToggleOption SheriffKillOther; public static CustomToggleOption SheriffKillsJester; - public static CustomToggleOption SheriffKillsGlitch; public static CustomToggleOption SheriffKillsArsonist; public static CustomNumberOption SheriffKillCd; public static CustomToggleOption SheriffBodyReport; @@ -294,8 +293,6 @@ public static void GenerateAll() SheriffKillsJester = new CustomToggleOption(num++, "Sheriff Kills Jester", false); - SheriffKillsGlitch = - new CustomToggleOption(num++, "Sheriff Kills The Glitch", false); SheriffKillsArsonist = new CustomToggleOption(num++, "Sheriff Kills Arsonist", false); diff --git a/source/Patches/PingTrackerUpdate.cs b/source/Patches/PingTrackerUpdate.cs index 28c8bd53b..c5b37710d 100644 --- a/source/Patches/PingTrackerUpdate.cs +++ b/source/Patches/PingTrackerUpdate.cs @@ -1,4 +1,4 @@ -using HarmonyLib; +using HarmonyLib; using TownOfUs.CustomHats; using UnityEngine; diff --git a/source/Patches/VersionShowerUpdate.cs b/source/Patches/VersionShowerUpdate.cs index e6710b3e5..8291d2a87 100644 --- a/source/Patches/VersionShowerUpdate.cs +++ b/source/Patches/VersionShowerUpdate.cs @@ -1,4 +1,4 @@ -using HarmonyLib; +using HarmonyLib; namespace TownOfUs { diff --git a/source/TownOfUs.cs b/source/TownOfUs.cs index 3e48eb4cd..b0c5f10c3 100644 --- a/source/TownOfUs.cs +++ b/source/TownOfUs.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Linq; using System.Net; using System.Net.Sockets; @@ -25,7 +25,6 @@ namespace TownOfUs public class TownOfUs : BasePlugin { public const string Id = "com.slushiegoose.townofus"; - public static Sprite JanitorClean; public static Sprite EngineerFix; public static Sprite SwapperSwitch;