From 807b6963fc6ac870c8d6061d43257a3689cac6ba Mon Sep 17 00:00:00 2001 From: HyperAtill Date: Tue, 9 Sep 2025 18:21:21 +0300 Subject: [PATCH] Ban and Minimalism => Killing Machine --- CustomRoles.cs | 2 +- Modules/CustomRolesHelper.cs | 4 ++-- Modules/Statistics.cs | 2 +- Patches/ChatCommandPatch.cs | 2 +- Patches/IntroPatch.cs | 2 +- Patches/PlayerControlPatch.cs | 4 ++-- Resources/Config/EACList.txt | 1 + Resources/Lang/en_US.json | 18 +++++++++--------- .../{Minimalism.cs => KillingMachine.cs} | 8 ++++---- 9 files changed, 22 insertions(+), 21 deletions(-) rename Roles/Impostor/{Minimalism.cs => KillingMachine.cs} (95%) diff --git a/CustomRoles.cs b/CustomRoles.cs index 51eb836e5..82ddcde29 100644 --- a/CustomRoles.cs +++ b/CustomRoles.cs @@ -67,7 +67,7 @@ public enum CustomRoles Inhibitor, Kamikaze, Kidnapper, - Minimalism, // Killing Machine + KillingMachine, BallLightning, // Lightning Librarian, Lurker, diff --git a/Modules/CustomRolesHelper.cs b/Modules/CustomRolesHelper.cs index 953e8cd0b..34c771fb1 100644 --- a/Modules/CustomRolesHelper.cs +++ b/Modules/CustomRolesHelper.cs @@ -739,7 +739,7 @@ internal static class CustomRolesHelper CustomRoles.TimeThief or CustomRoles.Trickster or CustomRoles.Mafia or - CustomRoles.Minimalism or + CustomRoles.KillingMachine or CustomRoles.FireWorks or CustomRoles.Sniper or CustomRoles.EvilTracker or @@ -1564,7 +1564,7 @@ internal static class CustomRolesHelper CustomRoles.Hitman => RoleOptionType.Impostor_Killing, CustomRoles.Inhibitor => RoleOptionType.Impostor_Killing, CustomRoles.Kamikaze => RoleOptionType.Impostor_Killing, - CustomRoles.Minimalism => RoleOptionType.Impostor_Killing, + CustomRoles.KillingMachine => RoleOptionType.Impostor_Killing, CustomRoles.Lurker => RoleOptionType.Impostor_Killing, CustomRoles.Mafioso => RoleOptionType.Impostor_Killing, CustomRoles.Mafia => RoleOptionType.Impostor_Killing, diff --git a/Modules/Statistics.cs b/Modules/Statistics.cs index 5ab6a678b..179a9e227 100644 --- a/Modules/Statistics.cs +++ b/Modules/Statistics.cs @@ -169,7 +169,7 @@ public static class Statistics case CustomRoles.Snitch when lp.AllTasksCompleted() && CustomWinnerHolder.WinnerTeam == CustomWinner.Crewmate && won: Achievements.Type.CrewHero.Complete(); break; - case CustomRoles.Minimalism when Main.PlayerStates.Values.Count(x => x.GetRealKiller() == lp.PlayerId) >= 8: + case CustomRoles.KillingMachine when Main.PlayerStates.Values.Count(x => x.GetRealKiller() == lp.PlayerId) >= 8: Achievements.Type.Bloodbath.CompleteAfterGameEnd(); break; case CustomRoles.Technician when Technician.LocalPlayerFixedSabotageTypes.Count >= 4: diff --git a/Patches/ChatCommandPatch.cs b/Patches/ChatCommandPatch.cs index fb3094d32..829386c7d 100644 --- a/Patches/ChatCommandPatch.cs +++ b/Patches/ChatCommandPatch.cs @@ -3309,7 +3309,7 @@ internal static class ChatCommands "嗜血殺手" or "嗜血" or "sk" => GetString("SerialKiller"), "千面鬼" or "千面" => GetString("ShapeMaster"), "狂妄殺手" or "狂妄" or "arr" => GetString("Sans"), - "殺戮機器" or "杀戮" or "机器" or "杀戮兵器" or "km" => GetString("Minimalism"), + "殺戮機器" or "杀戮" or "机器" or "杀戮兵器" or "km" => GetString("KillingMachine"), "蝕時者" or "蚀时" or "偷时" or "tt" => GetString("TimeThief"), "狙擊手" or "狙击" => GetString("Sniper"), "傀儡師" or "傀儡" => GetString("Puppeteer"), diff --git a/Patches/IntroPatch.cs b/Patches/IntroPatch.cs index ebf77fd39..6f8a58f90 100644 --- a/Patches/IntroPatch.cs +++ b/Patches/IntroPatch.cs @@ -639,7 +639,7 @@ internal static class BeginCrewmatePatch CustomRoles.Provocateur => ShipStatus.Instance.SabotageSound, - CustomRoles.Minimalism or + CustomRoles.KillingMachine or CustomRoles.NiceGuesser or CustomRoles.SwordsMan or CustomRoles.Veteran diff --git a/Patches/PlayerControlPatch.cs b/Patches/PlayerControlPatch.cs index 7adc94a97..6dd23741a 100644 --- a/Patches/PlayerControlPatch.cs +++ b/Patches/PlayerControlPatch.cs @@ -573,7 +573,7 @@ internal static class CheckMurderPatch { switch (killer.Is(CustomRoles.Pestilence)) { - case false when !killer.Is(CustomRoles.Minimalism): + case false when !killer.Is(CustomRoles.KillingMachine): player.Kill(killer); Crusader.ForCrusade.Remove(target.PlayerId); killer.RpcGuardAndKill(target); @@ -769,7 +769,7 @@ internal static class MurderPlayerPatch var realKiller = target.GetRealKiller(); if (realKiller != null) killer = realKiller; - if (target != killer && !killer.Is(CustomRoles.Minimalism) && (killer.PlayerId != target.PlayerId || target.GetRealKiller()?.GetCustomRole() is CustomRoles.Swooper or CustomRoles.Wraith || !killer.Is(CustomRoles.Oblivious) || !Options.ObliviousBaitImmune.GetBool())) + if (target != killer && !killer.Is(CustomRoles.KillingMachine) && (killer.PlayerId != target.PlayerId || target.GetRealKiller()?.GetCustomRole() is CustomRoles.Swooper or CustomRoles.Wraith || !killer.Is(CustomRoles.Oblivious) || !Options.ObliviousBaitImmune.GetBool())) { killer.RPCPlayCustomSound("Congrats"); target.RPCPlayCustomSound("Congrats"); diff --git a/Resources/Config/EACList.txt b/Resources/Config/EACList.txt index e8d41a9e2..a0dc1c3f7 100644 --- a/Resources/Config/EACList.txt +++ b/Resources/Config/EACList.txt @@ -125,6 +125,7 @@ tidytrice#2024,Alisa?(either this or above one) Foamcrisp#5124, e5be77e02, Barbie (aka princess, broadbarn alt) rosefiscal#4338, Bagelz (suspected alt of broadbarn or tidytrice) driedbreak#2568, 2f9986d9f, ASHHHOLE (toxic) +wheywaking#9984, name not known (toxic) ## Racist/Homophobic onwardhome#3591, MentoMan diff --git a/Resources/Lang/en_US.json b/Resources/Lang/en_US.json index 2f2f711bb..9bba8ba48 100644 --- a/Resources/Lang/en_US.json +++ b/Resources/Lang/en_US.json @@ -184,7 +184,7 @@ "Zombie": "Zombie", "Anonymous": "Anonymous", "Miner": "Miner", - "Minimalism": "Killing Machine", + "KillingMachine": "Killing Machine", "Escapee": "Escapist", "Witch": "Witch", "Mafia": "Nemesis", @@ -460,10 +460,10 @@ "VampireInfo": "Your kills are delayed", "WarlockInfo": "Curse crewmates & shift to make them kill", "NinjaInfo": "Mark a target, then shift to kill them", - "ZombieInfo": "You're very slow", + "ZombieInfo": "You're very slow, but can't be ejected", "AnonymousInfo": "Force a player to report a body", "MinerInfo": "Warp to your last used vent by shifting", - "MinimalismInfo": "You can ONLY kill, but low cooldown", + "KillingMachineInfo": "You can ONLY kill, but low cooldown and bypass shields", "EscapeeInfo": "Shift to mark places and warp back to them", "WitchInfo": "Spell crewmates to kill them in meetings", "MafiaInfo": "Revenge After Death", @@ -477,7 +477,7 @@ "BomberInfo": "Shapeshift to explode", "BoobyTrapInfo": "Start a killing chain", "ScavengerInfo": "Your kills are unreportable", - "EvilGuesserInfo": "Guess crew roles in meetings to kill", + "EvilGuesserInfo": "Guess roles in meetings to kill", "CapitalismInfo": "Give more tasks to crewmates", "GangsterInfo": "Convert players to your side", "CleanerInfo": "Report bodies to make them unreportable", @@ -498,9 +498,9 @@ "ParasiteInfo": "Help the Impostors kill the crew", "DisperserInfo": "Shift to teleport everyone to a random vent", "InhibitorInfo": "You cannot kill during sabotages", - "SaboteurInfo": "You can only kill during sabotages", + "SaboteurInfo": "Kill to call and stack sabotages. You can only kill during a sabotage", "CouncillorInfo": "Kill crewmates during meetings", - "DazzlerInfo": "Reduce the vision of the crew", + "DazzlerInfo": "Reduce players' vision", "DeathpactInfo": "Assign players to a death pact", "DevourerInfo": "Consume the skin of the crew", "EvilDivinerInfo": "Discover the roles of other players", @@ -521,7 +521,7 @@ "ParanoiaInfo": "You have a portable meeting button", "PsychicInfo": "One of the red names is evil", "SabotageMasterInfo": "Vent and fix sabotages quickly", - "SheriffInfo": "Kill Impostors & Neutral Killers", + "SheriffInfo": "Kill evil players", "CopyCatInfo": "Use kill button to copy target's role", "SnitchInfo": "Finish your tasks to find the Impostors", "MarshallInfo": "Finish your tasks to prove your innocence", @@ -568,7 +568,7 @@ "TerroristInfo": "Finish your tasks, THEN die", "ExecutionerInfo": "Get your target voted out", "LawyerInfo": "Help your target win!", - "MarioInfo": "Jump in! Jump out!", + "MarioInfo": "Jump in, jump out, win!", "JackalInfo": "Murder everyone", "GodInfo": "Everything is under your control", "InnocentInfo": "Get someone ejected by making them kill you", @@ -693,7 +693,7 @@ "NinjaInfoLong": "(Impostors):\\nNinja can use the kill button to mark a target, and if the mark is successful, a shield animation will show as a reminder. The Ninja can then use the vanish/pet to teleport to the marked person and kill the marked person. Ninja cannot kill regularly, but may be able to kill regularly after assassination according to the host's settings.", "AnonymousInfoLong": "(Impostors):\\nAnonymous can use Shapeshift to hack into a target. The hacked target will report the body killed by Anonymous or its own if there is none. Hacking ignores whether a body can be reported. Hacking Lazy Guy is a waste of time.", "MinerInfoLong": "(Impostors):\\nMiner can vanish/pet to teleport back to the last vent they were in.", - "MinimalismInfoLong": "(Impostors):\\nThe Killing Machine has a very short kill cooldown, but cannot vent, has lower vision, cannot sabotage, cannot report, and cannot call emergency meetings.", + "KillingMachineInfoLong": "(Impostors):\\nThe Killing Machine has a very short kill cooldown, but cannot vent, has lower vision, cannot sabotage, cannot report, and cannot call emergency meetings.", "EscapeeInfoLong": "(Impostors):\\nEscapist can mark a location by shapeshifting/petting, and they will be teleported to the marked location when they vanish/pet again (not when unshifting).", "WitchInfoLong": "(Impostors):\\nThe Witch can kill players directly or cast spells by tapping the kill button once or twice, respectively. Spelled players will have a 「†」 mark next to their name in the next meeting. If the Witch survives until the meeting's end, all spelled players die.", "MafiaInfoLong": "(Impostors):\\nNemesis can't kill while there are other Impostors alive in the game, but can use /rv [player id] after death to kill the specified player.", diff --git a/Roles/Impostor/Minimalism.cs b/Roles/Impostor/KillingMachine.cs similarity index 95% rename from Roles/Impostor/Minimalism.cs rename to Roles/Impostor/KillingMachine.cs index 3d52328a9..2aef6b5e5 100644 --- a/Roles/Impostor/Minimalism.cs +++ b/Roles/Impostor/KillingMachine.cs @@ -3,7 +3,7 @@ using EHR.Modules; namespace EHR.Impostor; -internal class Minimalism : RoleBase +internal class KillingMachine : RoleBase { public static bool On; @@ -13,14 +13,14 @@ internal class Minimalism : RoleBase public override void SetupCustomOption() { - Options.SetupRoleOptions(16300, TabGroup.ImpostorRoles, CustomRoles.Minimalism); + Options.SetupRoleOptions(16300, TabGroup.ImpostorRoles, CustomRoles.KillingMachine); MnKillCooldown = new FloatOptionItem(16310, "KillCooldown", new(2.5f, 180f, 0.5f), 10f, TabGroup.ImpostorRoles) - .SetParent(Options.CustomRoleSpawnChances[CustomRoles.Minimalism]) + .SetParent(Options.CustomRoleSpawnChances[CustomRoles.KillingMachine]) .SetValueFormat(OptionFormat.Seconds); BypassShields = new BooleanOptionItem(16311, "BypassShields", true, TabGroup.ImpostorRoles) - .SetParent(Options.CustomRoleSpawnChances[CustomRoles.Minimalism]); + .SetParent(Options.CustomRoleSpawnChances[CustomRoles.KillingMachine]); } public override void Add(byte playerId)