using Content.Shared.Destructible.Thresholds; using Content.Shared.EntityTable.EntitySelectors; namespace Content.Server.StationEvents.Components; [RegisterComponent, Access(typeof(BasicStationEventSchedulerSystem))] public sealed partial class BasicStationEventSchedulerComponent : Component { /// /// How long the the scheduler waits to begin starting rules. /// [DataField] public float MinimumTimeUntilFirstEvent = 200; /// /// The minimum and maximum time between rule starts in seconds. /// [DataField] public MinMax MinMaxEventTiming = new(3 * 60, 10 * 60); /// /// How long until the next check for an event runs, is initially set based on MinimumTimeUntilFirstEvent & MinMaxEventTiming. /// [DataField] public float TimeUntilNextEvent; /// /// The gamerules that the scheduler can choose from /// /// Reminder that though we could do all selection via the EntityTableSelector, we also need to consider various restrictions. /// As such, we want to pass a list of acceptable game rules, which are then parsed for restrictions by the . [DataField(required: true)] public EntityTableSelector ScheduledGameRules = default!; }