using System.Threading; namespace Content.Server.GameTicking.Rules.Components; /// /// Gamerule that ends the round after a period of inactivity. /// [RegisterComponent, Access(typeof(InactivityTimeRestartRuleSystem))] public sealed class InactivityRuleComponent : Component { /// /// How long the round must be inactive to restart /// [DataField("inactivityMaxTime", required: true)] public TimeSpan InactivityMaxTime = TimeSpan.FromMinutes(10); /// /// The delay between announcing round end and the lobby. /// [DataField("roundEndDelay", required: true)] public TimeSpan RoundEndDelay = TimeSpan.FromSeconds(10); public CancellationTokenSource TimerCancel = new(); }