From 72a7fb396c0b5b3e3fae67230fe11c15d0de7812 Mon Sep 17 00:00:00 2001 From: nlaky <299499053+nlaky@users.noreply.github.com> Date: Mon, 3 Aug 2026 12:25:33 -0600 Subject: [PATCH 1/3] Add OOC shuttle call vote --- Content.Server/RoundEnd/RoundEndSystem.cs | 3 +- .../_DVA/RoundEnd/RoundEndSystem.cs | 31 +++++++++++++++++++ Content.Shared/_DVA/CCVars/DCCVars.cs | 8 +++++ .../en-US/_DVA/roundend/round-end-system.ftl | 4 +++ 4 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 Content.Server/_DVA/RoundEnd/RoundEndSystem.cs create mode 100644 Resources/Locale/en-US/_DVA/roundend/round-end-system.ftl diff --git a/Content.Server/RoundEnd/RoundEndSystem.cs b/Content.Server/RoundEnd/RoundEndSystem.cs index b5c364a847b..833c2c365f7 100644 --- a/Content.Server/RoundEnd/RoundEndSystem.cs +++ b/Content.Server/RoundEnd/RoundEndSystem.cs @@ -381,7 +381,8 @@ public override void Update(float frameTime) { if (!_shuttle.EmergencyShuttleArrived && ExpectedCountdownEnd is null) { - RequestRoundEnd(checkCooldown: false, text: "round-end-system-shuttle-auto-called-announcement"); + CallEvacuationVote(); // DeltaV - call OOC vote for ending round + // RequestRoundEnd(checkCooldown: false, text: "round-end-system-shuttle-auto-called-announcement"); _autoCalledBefore = true; } diff --git a/Content.Server/_DVA/RoundEnd/RoundEndSystem.cs b/Content.Server/_DVA/RoundEnd/RoundEndSystem.cs new file mode 100644 index 00000000000..38723e7d9d8 --- /dev/null +++ b/Content.Server/_DVA/RoundEnd/RoundEndSystem.cs @@ -0,0 +1,31 @@ +using Content.Server.Voting.Managers; +using Content.Server.Voting; +using Content.Shared._DVA.CCVars; + +namespace Content.Server.RoundEnd; + +public sealed partial class RoundEndSystem : EntitySystem +{ + [Dependency] IVoteManager _vote = default!; + + public void CallEvacuationVote() + { + var options = new VoteOptions + { + Title = Loc.GetString("round-end-system-vote-title"), + Duration = _cfg.GetCVar(DCCVars.EmergencyShuttleVoteTime), + InitiatorText = Loc.GetString("vote-options-server-initiator-text") + }; + + options.Options.Add((Loc.GetString("round-end-system-vote-end"), true)); + options.Options.Add((Loc.GetString("round-end-system-vote-continue"), false)); + + var vote = _vote.CreateVote(options); + + vote.OnFinished += (_, args) => + { + if (args.Winner == null || (bool)args.Winner) + RequestRoundEnd(null, null, false, "round-end-system-vote-shuttle-called-announcement"); + }; + } +} diff --git a/Content.Shared/_DVA/CCVars/DCCVars.cs b/Content.Shared/_DVA/CCVars/DCCVars.cs index d5d0774e7a3..ec3685cc9ea 100644 --- a/Content.Shared/_DVA/CCVars/DCCVars.cs +++ b/Content.Shared/_DVA/CCVars/DCCVars.cs @@ -35,6 +35,14 @@ public sealed partial class DCCVars * Misc. */ + /* OOC shuttle vote */ + + /// + /// How long players should have to vote on the round end shuttle being sent + /// + public static readonly CVarDef EmergencyShuttleVoteTime = + CVarDef.Create("shuttle.vote_time", TimeSpan.FromMinutes(1), CVar.SERVER); + /// /// The total time a player has to be SSD to be considered cryoable (stage 3). /// Default is 20 minutes. Value should be bigger than . diff --git a/Resources/Locale/en-US/_DVA/roundend/round-end-system.ftl b/Resources/Locale/en-US/_DVA/roundend/round-end-system.ftl new file mode 100644 index 00000000000..c1b9c18149e --- /dev/null +++ b/Resources/Locale/en-US/_DVA/roundend/round-end-system.ftl @@ -0,0 +1,4 @@ +round-end-system-vote-title = Should the shift end? +round-end-system-vote-end = Initiate Crew Transfer +round-end-system-vote-continue = Continue Round +round-end-system-vote-shuttle-called-announcement = An automatic crew shift change shuttle has been sent. ETA: {$time} {$units}. From 9a26a0d1b10ee20f614910445055a01de5d7666f Mon Sep 17 00:00:00 2001 From: nlaky <299499053+nlaky@users.noreply.github.com> Date: Mon, 10 Aug 2026 11:11:04 -0600 Subject: [PATCH 2/3] Change call to RequestRoundEnd Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com> --- Content.Server/_DVA/RoundEnd/RoundEndSystem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Server/_DVA/RoundEnd/RoundEndSystem.cs b/Content.Server/_DVA/RoundEnd/RoundEndSystem.cs index 38723e7d9d8..96cac5d4a59 100644 --- a/Content.Server/_DVA/RoundEnd/RoundEndSystem.cs +++ b/Content.Server/_DVA/RoundEnd/RoundEndSystem.cs @@ -25,7 +25,7 @@ public void CallEvacuationVote() vote.OnFinished += (_, args) => { if (args.Winner == null || (bool)args.Winner) - RequestRoundEnd(null, null, false, "round-end-system-vote-shuttle-called-announcement"); + RequestRoundEnd(checkCooldown: false, text: "round-end-system-vote-shuttle-called-announcement"); }; } } From 681fe1cf204acf76f7ba93c83e9547ce7e02cca0 Mon Sep 17 00:00:00 2001 From: nlaky <299499053+nlaky@users.noreply.github.com> Date: Tue, 11 Aug 2026 10:52:12 -0600 Subject: [PATCH 3/3] Move RoundEndSystem.cs -> RoundEndSystem.EvacVote.cs --- .../RoundEnd/{RoundEndSystem.cs => RoundEndSystem.EvacVote.cs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Content.Server/_DVA/RoundEnd/{RoundEndSystem.cs => RoundEndSystem.EvacVote.cs} (100%) diff --git a/Content.Server/_DVA/RoundEnd/RoundEndSystem.cs b/Content.Server/_DVA/RoundEnd/RoundEndSystem.EvacVote.cs similarity index 100% rename from Content.Server/_DVA/RoundEnd/RoundEndSystem.cs rename to Content.Server/_DVA/RoundEnd/RoundEndSystem.EvacVote.cs