diff --git a/Content.Server/GameTicking/Rules/Components/RevolutionaryRuleComponent.cs b/Content.Server/GameTicking/Rules/Components/RevolutionaryRuleComponent.cs index 2ce3f1f9a66..238053a091b 100644 --- a/Content.Server/GameTicking/Rules/Components/RevolutionaryRuleComponent.cs +++ b/Content.Server/GameTicking/Rules/Components/RevolutionaryRuleComponent.cs @@ -56,7 +56,8 @@ public sealed partial class RevolutionaryRuleComponent : Component public List StartingGear = new() { "Flash", - "ClothingEyesGlassesSunglasses" + "ClothingEyesGlassesSunglasses", + "EncryptionKeySyndie" }; /// diff --git a/Content.Server/GameTicking/Rules/RevolutionaryRuleSystem.cs b/Content.Server/GameTicking/Rules/RevolutionaryRuleSystem.cs index 5caa223c9c1..75c198dd59f 100644 --- a/Content.Server/GameTicking/Rules/RevolutionaryRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/RevolutionaryRuleSystem.cs @@ -1,5 +1,6 @@ using Content.Server.Administration.Logs; using Content.Server.Antag; +using Content.Shared.Cuffs.Components; using Content.Server.EUI; using Content.Server.Flash; using Content.Server.GameTicking.Rules.Components; @@ -271,7 +272,7 @@ private bool CheckCommandLose() commandList.Add(id); } - return IsGroupDead(commandList, true); + return IsGroupDefeated(commandList, true); } private void OnHeadRevMobStateChanged(EntityUid uid, HeadRevolutionaryComponent comp, MobStateChangedEvent ev) @@ -295,7 +296,7 @@ private bool CheckRevsLose() } // If no Head Revs are alive all normal Revs will lose their Rev status and rejoin Nanotrasen - if (IsGroupDead(headRevList, false)) + if (IsGroupDefeated(headRevList, false)) { var rev = AllEntityQuery(); while (rev.MoveNext(out var uid, out _, out var mc)) @@ -327,35 +328,39 @@ private bool CheckRevsLose() } /// - /// Will take a group of entities and check if they are all alive or dead + /// Will take a group of entities and check if they are all fighting or defeated /// /// The list of the entities /// Bool for if you want to check if someone is in space and consider them dead. (Won't check when emergency shuttle arrives just in case) /// - private bool IsGroupDead(List list, bool checkOffStation) + private bool IsGroupDefeated(List list, bool checkOffStation) { - var dead = 0; + var defeated = 0; foreach (var entity in list) { if (TryComp(entity, out var state)) { if (state.CurrentState == MobState.Dead || state.CurrentState == MobState.Invalid) { - dead++; + defeated++; } else if (checkOffStation && _stationSystem.GetOwningStation(entity) == null && !_emergencyShuttle.EmergencyShuttleArrived) { - dead++; + defeated++; + } + else if (TryComp(entity, out var cuffed) && cuffed.CuffedHandCount > 0) + { + defeated++; } } - //If they don't have the MobStateComponent they might as well be dead. + //If they don't have the MobStateComponent they might as well be defeated. else { - dead++; + defeated++; } } - return dead == list.Count || list.Count == 0; + return defeated == list.Count || list.Count == 0; } private static readonly string[] Outcomes = diff --git a/Resources/Locale/en-US/game-ticking/game-presets/preset-revolutionary.ftl b/Resources/Locale/en-US/game-ticking/game-presets/preset-revolutionary.ftl index 5fb1d40b3d3..11872fcf8d5 100644 --- a/Resources/Locale/en-US/game-ticking/game-presets/preset-revolutionary.ftl +++ b/Resources/Locale/en-US/game-ticking/game-presets/preset-revolutionary.ftl @@ -1,35 +1,36 @@ ## Rev Head roles-antag-rev-head-name = Head Revolutionary -roles-antag-rev-head-objective = Your objective is to take over the station by converting people to your cause and killing all Command staff on station. +roles-antag-rev-head-objective = Your objective is to take over the station by converting people to your cause and mooring all Command staff on station. head-rev-role-greeting = You are a Head Revolutionary. - You are tasked with removing all of Command from station via death or exilement. + You are tasked with assuming control of the station and mooring all Command staff. The Syndicate has sponsored you with a flash that converts the crew to your side. Beware, this won't work on Security, Command, or those wearing sunglasses. Viva la revoluciĆ³n! head-rev-briefing = Use flashes to convert people to your cause. - Kill all heads to take over the station. + Take over the station and moor all members of Command. head-rev-break-mindshield = The Mindshield was destroyed! ## Rev roles-antag-rev-name = Revolutionary -roles-antag-rev-objective = Your objective is to ensure the safety and follow the orders of the Head Revolutionaries as well as killing all Command staff on station. +roles-antag-rev-objective = Your objective is to support the Head Revolutionaries in their endeavor to seize control of the station. rev-break-control = {$name} has remembered their true allegiance! rev-role-greeting = You are a Revolutionary. - You are tasked with taking over the station and protecting the Head Revolutionaries. - Eliminate all of the Command staff. + Your mind has been altered so that you will support and protect the Head Revolutionaries. + You are the same person you always were; you just see things differently, now. + You will remember none of this when it is over. Viva la revoluciĆ³n! -rev-briefing = Help your head revolutionaries kill every head to take over the station. +rev-briefing = Assist the Head Revolutionaries in seizing control of the station. ## General @@ -40,13 +41,13 @@ rev-not-enough-ready-players = Not enough players readied up for the game. There rev-no-one-ready = No players readied up! Can't start a Revolution. rev-no-heads = There were no Head Revolutionaries to be selected. Can't start a Revolution. -rev-all-heads-dead = All the heads are dead, now finish up the rest of the crew! +rev-all-heads-dead = All the heads are dead! -rev-won = The Head Revs survived and killed all of Command. +rev-won = The Head Revs survived and moored all of Command. -rev-lost = Command survived and killed all of the Head Revs. +rev-lost = Command survived and neutralized all of the Head Revs. -rev-stalemate = All of the Head Revs and Command died. It's a draw. +rev-stalemate = All of the Head Revs and Command were defeated. It's a draw. rev-reverse-stalemate = Both Command and Head Revs survived. @@ -69,7 +70,7 @@ rev-headrev-name = [color=#5e9cff]{$name}[/color] converted {$count} {$count -> rev-deconverted-title = Deconverted! rev-deconverted-text = - As the last headrev has died, the revolution is over. + As the last headrev has been neutralized, the revolution is over. - You are no longer a revolutionary, so be nice. + You are no longer a revolutionary, and only remember a bright flash in your eyes. rev-deconverted-confirm = Confirm diff --git a/Resources/Prototypes/secret_weights.yml b/Resources/Prototypes/secret_weights.yml index 4ad31cd1940..14a5c827224 100644 --- a/Resources/Prototypes/secret_weights.yml +++ b/Resources/Prototypes/secret_weights.yml @@ -1,9 +1,10 @@ - type: weightedRandom id: Secret weights: - Survival: 0.44 - Nukeops: 0.14 - Zombie: 0.03 - Traitor: 0.39 + Survival: 0.35 + Nukeops: 0.11 + Zombie: 0.02 + Traitor: 0.32 + Revolutionary: 0.20 #Pirates: 0.15 #ahoy me bucko