diff --git a/Modules/Utils.cs b/Modules/Utils.cs index e9edd6f6c..2c05dd1ac 100644 --- a/Modules/Utils.cs +++ b/Modules/Utils.cs @@ -2730,13 +2730,13 @@ public static class Utils if (target.Is(CustomRoles.Car) && !forMeeting && !GameStates.IsEnded) { sender.RpcSetName(target, Car.Name, seer); - return true; + continue; } if (Main.PlayerStates.TryGetValue(target.PlayerId, out var targetState) && targetState.Role is Tree { TreeSpriteActive: true } && !forMeeting && !GameStates.IsEnded) { sender.RpcSetName(target, Tree.Sprite, seer); - return true; + continue; } TargetMark.Clear(); diff --git a/Patches/ControlPatch.cs b/Patches/ControlPatch.cs index 5f1363825..f8340cf42 100644 --- a/Patches/ControlPatch.cs +++ b/Patches/ControlPatch.cs @@ -54,9 +54,6 @@ internal static class ControllerManagerUpdatePatch } else InGameRoleInfoMenu.Hide(); - - if (KeysDown(KeyCode.Return, KeyCode.C, KeyCode.LeftShift)) - HudManager.Instance.Chat.SetVisible(true); if (KeysDown(KeyCode.F11, KeyCode.LeftAlt)) { @@ -89,10 +86,14 @@ internal static class ControllerManagerUpdatePatch if (KeysDown(KeyCode.LeftAlt, KeyCode.C) && !Input.GetKey(KeyCode.LeftShift) && !GameStates.IsNotJoined) Utils.CopyCurrentSettings(); - + bool admin = ChatCommands.IsPlayerAdmin(PlayerControl.LocalPlayer.FriendCode); + if (!AmongUsClient.Instance.AmHost && !admin) return; + if (KeysDown(KeyCode.Return, KeyCode.C, KeyCode.LeftShift)) + HudManager.Instance.Chat.SetVisible(true); + if (KeysDown(KeyCode.Return, KeyCode.L, KeyCode.LeftShift) && GameStates.IsInGame) { CustomWinnerHolder.ResetAndSetWinner(CustomWinner.Draw); diff --git a/Patches/ExilePatch.cs b/Patches/ExilePatch.cs index b0c5a05ca..224200bbd 100644 --- a/Patches/ExilePatch.cs +++ b/Patches/ExilePatch.cs @@ -144,6 +144,7 @@ internal static class ExileControllerWrapUpPatch { string text = showRemainingKillers ? Utils.GetRemainingKillers(true) : string.Empty; string finalText = ejectionNotify ? "<#ffffff>" + CheckForEndVotingPatch.EjectionText.Trim() : text; + if (Options.EnableGameTimeLimit.GetBool()) finalText += $"\n<#888888>{Options.GameTimeLimit.GetInt() - Main.GameTimer:N0}s {Translator.GetString("RemainingText.Suffix")}"; if (!string.IsNullOrEmpty(finalText)) Main.AllAlivePlayerControls.NotifyPlayers(finalText, 13f); diff --git a/Resources/Config/EACList.txt b/Resources/Config/EACList.txt index e8d41a9e2..742678dde 100644 --- a/Resources/Config/EACList.txt +++ b/Resources/Config/EACList.txt @@ -81,7 +81,6 @@ levelposse#7723,virajwins // Hacking while also streaming it gummytub#2962,0f6992415 dollepic#0847,17be4645c // DESTRUCT10 donehoof#2148 -huesassy#4051 // Harassment daytiddly#8682,f5f420927,Wardpatchy // Nuking lobbies coachcalm#9343,354aa4ac3,Twinfabled // Hacking the game diff --git a/Resources/Lang/en_US.json b/Resources/Lang/en_US.json index 1cc807174..81d2e6ca0 100644 --- a/Resources/Lang/en_US.json +++ b/Resources/Lang/en_US.json @@ -9281,6 +9281,7 @@ "Ambusher.FragileDuration": "Fragile Effect Duration", "Ambusher.Success": "<#00ff00>Ambush successful", "Ambusher.InProgress": "Ambushing {0}.... {1}s left", + "Ambusher.InvisTimeLeft": "Invisibility expires in {0}s", "Psychopath": "Psychopath", "PsychopathInfo": "You're Forced to Kill Off Cooldown", "PsychopathInfoLong": "(Impostors):\\nAs the Psychopath, as soon as your kill cooldown is up, you'll kill instantly if someone is inside your kill-range.", diff --git a/Roles/Impostor/Ambusher.cs b/Roles/Impostor/Ambusher.cs index 4cffff52e..88d4fd0a6 100644 --- a/Roles/Impostor/Ambusher.cs +++ b/Roles/Impostor/Ambusher.cs @@ -169,7 +169,6 @@ public class Ambusher : RoleBase Count = 0; Utils.NotifyRoles(SpecifySeer: pc, SpecifyTarget: pc); - if (pc.AmOwner) Utils.DirtyName.Add(pc.PlayerId); } public override void OnGlobalFixedUpdate(PlayerControl pc, bool lowLoad) @@ -198,7 +197,7 @@ public class Ambusher : RoleBase public override string GetSuffix(PlayerControl seer, PlayerControl target, bool hud = false, bool meeting = false) { if (seer.PlayerId != AmbusherId || seer.PlayerId != target.PlayerId || hud || meeting || !Main.Invisible.Contains(AmbusherId)) return string.Empty; - string str = DontCheck ? Translator.GetString("Ambusher.Success") : string.Format(Translator.GetString("Ambusher.InProgress"), TargetId.ColoredPlayerName(), Math.Round(TargetTimer, 1)); - return $"{str}\n{string.Format(Translator.GetString("Ambusher.InvisTimeLeft"), (int)Math.Round(AbilityEndTimer))}"; + string str = DontCheck ? Translator.GetString("Ambusher.Success") : TargetId != byte.MaxValue ? string.Format(Translator.GetString("Ambusher.InProgress"), TargetId.ColoredPlayerName(), Math.Round(TargetTimer, 1)) : string.Empty; + return $"{str}\n{string.Format(Translator.GetString("Ambusher.InvisTimeLeft"), (int)Math.Round(AbilityEndTimer))}"; } } \ No newline at end of file