Add CVar for customizing round restart time (#19136)
Co-authored-by: TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com>
This commit is contained in:
@@ -34,10 +34,10 @@ namespace Content.IntegrationTests.Tests
|
||||
config.SetCVar(CCVars.GameLobbyEnabled, true);
|
||||
config.SetCVar(CCVars.EmergencyShuttleMinTransitTime, 1f);
|
||||
config.SetCVar(CCVars.EmergencyShuttleDockTime, 1f);
|
||||
config.SetCVar(CCVars.RoundRestartTime, 1f);
|
||||
|
||||
roundEndSystem.DefaultCooldownDuration = TimeSpan.FromMilliseconds(100);
|
||||
roundEndSystem.DefaultCountdownDuration = TimeSpan.FromMilliseconds(300);
|
||||
roundEndSystem.DefaultRestartRoundDuration = TimeSpan.FromMilliseconds(100);
|
||||
});
|
||||
|
||||
await server.WaitAssertion(() =>
|
||||
@@ -131,10 +131,10 @@ namespace Content.IntegrationTests.Tests
|
||||
config.SetCVar(CCVars.GameLobbyEnabled, false);
|
||||
config.SetCVar(CCVars.EmergencyShuttleMinTransitTime, CCVars.EmergencyShuttleMinTransitTime.DefaultValue);
|
||||
config.SetCVar(CCVars.EmergencyShuttleDockTime, CCVars.EmergencyShuttleDockTime.DefaultValue);
|
||||
config.SetCVar(CCVars.RoundRestartTime, CCVars.RoundRestartTime.DefaultValue);
|
||||
|
||||
roundEndSystem.DefaultCooldownDuration = TimeSpan.FromSeconds(30);
|
||||
roundEndSystem.DefaultCountdownDuration = TimeSpan.FromMinutes(4);
|
||||
roundEndSystem.DefaultRestartRoundDuration = TimeSpan.FromMinutes(1);
|
||||
ticker.RestartRound();
|
||||
});
|
||||
await PoolManager.ReallyBeIdle(pairTracker.Pair, 10);
|
||||
|
||||
@@ -41,7 +41,6 @@ namespace Content.Server.RoundEnd
|
||||
/// Countdown to use where there is no station alert countdown to be found.
|
||||
/// </summary>
|
||||
public TimeSpan DefaultCountdownDuration { get; set; } = TimeSpan.FromMinutes(10);
|
||||
public TimeSpan DefaultRestartRoundDuration { get; set; } = TimeSpan.FromMinutes(2);
|
||||
|
||||
private CancellationTokenSource? _countdownTokenSource = null;
|
||||
private CancellationTokenSource? _cooldownTokenSource = null;
|
||||
@@ -211,8 +210,26 @@ namespace Content.Server.RoundEnd
|
||||
_gameTicker.EndRound();
|
||||
_countdownTokenSource?.Cancel();
|
||||
_countdownTokenSource = new();
|
||||
_chatManager.DispatchServerAnnouncement(Loc.GetString("round-end-system-round-restart-eta-announcement", ("minutes", DefaultRestartRoundDuration.Minutes)));
|
||||
Timer.Spawn(DefaultRestartRoundDuration, AfterEndRoundRestart, _countdownTokenSource.Token);
|
||||
|
||||
var countdownTime = TimeSpan.FromSeconds(_cfg.GetCVar(CCVars.RoundRestartTime));
|
||||
int time;
|
||||
string unitsLocString;
|
||||
if (countdownTime.TotalSeconds < 60)
|
||||
{
|
||||
time = countdownTime.Seconds;
|
||||
unitsLocString = "eta-units-seconds";
|
||||
}
|
||||
else
|
||||
{
|
||||
time = countdownTime.Minutes;
|
||||
unitsLocString = "eta-units-minutes";
|
||||
}
|
||||
_chatManager.DispatchServerAnnouncement(
|
||||
Loc.GetString(
|
||||
"round-end-system-round-restart-eta-announcement",
|
||||
("time", time),
|
||||
("units", Loc.GetString(unitsLocString))));
|
||||
Timer.Spawn(countdownTime, AfterEndRoundRestart, _countdownTokenSource.Token);
|
||||
}
|
||||
|
||||
private void AfterEndRoundRestart()
|
||||
|
||||
@@ -312,6 +312,13 @@ namespace Content.Shared.CCVar
|
||||
/// </summary>
|
||||
public static readonly CVarDef<float> ArtifactRoundEndTimer = CVarDef.Create("game.artifact_round_end_timer", 0.5f, CVar.NOTIFY | CVar.REPLICATED);
|
||||
|
||||
/// <summary>
|
||||
/// The time in seconds that the server should wait before restarting the round.
|
||||
/// Defaults to 2 minutes.
|
||||
/// </summary>
|
||||
public static readonly CVarDef<float> RoundRestartTime =
|
||||
CVarDef.Create("game.round_restart_time", 120f, CVar.SERVERONLY);
|
||||
|
||||
/*
|
||||
* Discord
|
||||
*/
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
round-end-system-shuttle-called-announcement = An emergency shuttle has been sent. ETA: {$time} {$units}.
|
||||
round-end-system-shuttle-auto-called-announcement = An automatic crew shift change shuttle has been sent. ETA: {$time} {$units}. Recall the shuttle to extend the shift.
|
||||
round-end-system-shuttle-recalled-announcement = The emergency shuttle has been recalled.
|
||||
round-end-system-round-restart-eta-announcement = Restarting the round in {$minutes} minutes...
|
||||
round-end-system-round-restart-eta-announcement = Restarting the round in {$time} {$units}...
|
||||
|
||||
eta-units-minutes = minutes
|
||||
eta-units-seconds = seconds
|
||||
|
||||
Reference in New Issue
Block a user