diff --git a/CTA/CustomTeamAssigner/CustomRoles.cs b/CTA/CustomTeamAssigner/CustomRoles.cs index f5b44014d..27da0e092 100644 --- a/CTA/CustomTeamAssigner/CustomRoles.cs +++ b/CTA/CustomTeamAssigner/CustomRoles.cs @@ -170,6 +170,7 @@ public enum CustomRoles Benefactor, Bestower, Bodyguard, + Bouncer, CameraMan, Captain, Car, diff --git a/Patches/ChatCommandPatch.cs b/Patches/ChatCommandPatch.cs index 3bcf93c52..b9477a329 100644 --- a/Patches/ChatCommandPatch.cs +++ b/Patches/ChatCommandPatch.cs @@ -391,7 +391,7 @@ internal static class ChatCommands if (GameStates.InGame && (Silencer.ForSilencer.Contains(PlayerControl.LocalPlayer.PlayerId) || (Main.PlayerStates[PlayerControl.LocalPlayer.PlayerId].Role is Dad { IsEnable: true } dad && dad.UsingAbilities.Contains(Dad.Ability.GoForMilk))) && PlayerControl.LocalPlayer.IsAlive()) goto Canceled; - if (GameStates.IsMeeting && Exorcist.AbilityEndTS > Utils.TimeStamp && !text.StartsWith("/cmd")) + if (GameStates.IsMeeting && Exorcist.AbilityEndTS > Utils.TimeStamp && !text.StartsWith("/cmd") && !PlayerControl.LocalPlayer.Is(CustomRoles.Pestilence)) { LateTask.New(() => { @@ -3458,7 +3458,7 @@ internal static class ChatCommands if (text.StartsWith("\n")) text = text[1..]; - if (GameStates.IsMeeting && Exorcist.AbilityEndTS > now && player.IsAlive() && !text.StartsWith("/cmd")) + if (GameStates.IsMeeting && Exorcist.AbilityEndTS > now && player.IsAlive() && !text.StartsWith("/cmd") && !player.Is(CustomRoles.Pestilence)) { player.RpcGuesserMurderPlayer(); player.SetRealKiller(Main.EnumeratePlayerControls().FirstOrDefault(x => x.Is(CustomRoles.Exorcist))); diff --git a/Roles/Standard/Crewmate/Support/Bouncer.cs b/Roles/Standard/Crewmate/Support/Bouncer.cs index 23bb37d1f..fa2b997a2 100644 --- a/Roles/Standard/Crewmate/Support/Bouncer.cs +++ b/Roles/Standard/Crewmate/Support/Bouncer.cs @@ -107,14 +107,17 @@ public class Bouncer : RoleBase if (pc.IsInRoom(MarkedRoom)) return; LastPosition[pc.PlayerId] = pc.transform.position; } - else if (pc.IsInRoom(MarkedRoom) && WhoGetsBounced.GetValue() switch + else if (pc.IsInRoom(MarkedRoom)) { - 0 => true, - 1 => pc.Is(Team.Impostor), - 2 => pc.Is(Team.Impostor) || pc.IsNeutralKiller() || pc.IsNeutralPariah() || pc.IsNeutralEvil(), - _ => false - }) - pc.TP(lastPosition); + if (WhoGetsBounced.GetValue() switch + { + 0 => true, + 1 => pc.Is(Team.Impostor), + 2 => pc.Is(Team.Impostor) || pc.IsNeutralKiller() || pc.IsNeutralPariah() || pc.IsNeutralEvil(), + _ => false + }) + pc.TP(lastPosition); + } else LastPosition[pc.PlayerId] = pc.transform.position; }