diff --git a/Content.Server/GameTicking/GameRules/RuleDeathMatch.cs b/Content.Server/GameTicking/GameRules/RuleDeathMatch.cs index 7c59c9dd04..dbcd8442b3 100644 --- a/Content.Server/GameTicking/GameRules/RuleDeathMatch.cs +++ b/Content.Server/GameTicking/GameRules/RuleDeathMatch.cs @@ -7,6 +7,7 @@ using Robust.Server.Interfaces.Player; using Robust.Server.Player; using Robust.Shared.Enums; using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.Configuration; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.IoC; using Timer = Robust.Shared.Timers.Timer; @@ -25,6 +26,7 @@ namespace Content.Server.GameTicking.GameRules [Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly IChatManager _chatManager = default!; [Dependency] private readonly IGameTicker _gameTicker = default!; + [Dependency] private readonly IConfigurationManager _cfg = default!; private CancellationTokenSource _checkTimerCancel; @@ -53,6 +55,9 @@ namespace Content.Server.GameTicking.GameRules { _checkTimerCancel = null; + if (!_cfg.GetCVar("game.enablewin")) + return; + IPlayerSession winner = null; foreach (var playerSession in _playerManager.GetAllPlayers()) { diff --git a/Content.Server/GameTicking/GameRules/RuleSuspicion.cs b/Content.Server/GameTicking/GameRules/RuleSuspicion.cs index 7a870375bd..b67888d6f0 100644 --- a/Content.Server/GameTicking/GameRules/RuleSuspicion.cs +++ b/Content.Server/GameTicking/GameRules/RuleSuspicion.cs @@ -12,6 +12,7 @@ using Robust.Server.Interfaces.Player; using Robust.Shared.Audio; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Interfaces.Configuration; using Robust.Shared.IoC; using Timer = Robust.Shared.Timers.Timer; @@ -28,6 +29,7 @@ namespace Content.Server.GameTicking.GameRules [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IChatManager _chatManager = default!; [Dependency] private readonly IGameTicker _gameTicker = default!; + [Dependency] private readonly IConfigurationManager _cfg = default!; private readonly CancellationTokenSource _checkTimerCancel = new CancellationTokenSource(); @@ -54,6 +56,9 @@ namespace Content.Server.GameTicking.GameRules private void _checkWinConditions() { + if (!_cfg.GetCVar("game.enablewin")) + return; + var traitorsAlive = 0; var innocentsAlive = 0; diff --git a/Content.Server/GameTicking/GameTicker.cs b/Content.Server/GameTicking/GameTicker.cs index 0f3bf337a7..19383c0f37 100644 --- a/Content.Server/GameTicking/GameTicker.cs +++ b/Content.Server/GameTicking/GameTicker.cs @@ -135,6 +135,8 @@ namespace Content.Server.GameTicking _configurationManager.RegisterCVar("game.defaultpreset", "Suspicion", CVar.ARCHIVE); _configurationManager.RegisterCVar("game.fallbackpreset", "Sandbox", CVar.ARCHIVE); + _configurationManager.RegisterCVar("game.enablewin", true, CVar.CHEAT); + PresetSuspicion.RegisterCVars(_configurationManager); _netManager.RegisterNetMessage(nameof(MsgTickerJoinLobby));