diff --git a/Content.Server/GameTicking/GameTicker.RoundFlow.cs b/Content.Server/GameTicking/GameTicker.RoundFlow.cs index 993de90ffe..c5d3c74782 100644 --- a/Content.Server/GameTicking/GameTicker.RoundFlow.cs +++ b/Content.Server/GameTicking/GameTicker.RoundFlow.cs @@ -89,6 +89,7 @@ namespace Content.Server.GameTicking readyPlayers = _playersInLobby.Keys.ToList(); } + _roundStartDateTime = DateTime.UtcNow; RunLevel = GameRunLevel.InRound; RoundLengthMetric.Set(0); diff --git a/Content.Server/GameTicking/GameTicker.StatusShell.cs b/Content.Server/GameTicking/GameTicker.StatusShell.cs index bf2d359807..0ea712d4e8 100644 --- a/Content.Server/GameTicking/GameTicker.StatusShell.cs +++ b/Content.Server/GameTicking/GameTicker.StatusShell.cs @@ -1,6 +1,8 @@ +using System; using Newtonsoft.Json.Linq; using Robust.Server.ServerStatus; using Robust.Shared.IoC; +using Robust.Shared.ViewVariables; namespace Content.Server.GameTicking { @@ -11,6 +13,12 @@ namespace Content.Server.GameTicking /// private readonly object _statusShellLock = new(); + /// + /// Round start time in UTC, for status shell purposes. + /// + [ViewVariables] + private DateTime _roundStartDateTime; + private void InitializeStatusShell() { IoCManager.Resolve().OnStatusRequest += GetStatusResponse; @@ -26,7 +34,7 @@ namespace Content.Server.GameTicking jObject["run_level"] = (int) _runLevel; if (_runLevel >= GameRunLevel.InRound) { - jObject["round_start_time"] = _roundStartTime.ToString("o"); + jObject["round_start_time"] = _roundStartDateTime.ToString("o"); } } }