using Content.Shared.EntityTable.EntitySelectors; namespace Content.Server.StationEvents.Components; [RegisterComponent, Access(typeof(RampingStationEventSchedulerSystem))] public sealed partial class RampingStationEventSchedulerComponent : Component { /// /// Average ending chaos modifier for the ramping event scheduler. Higher means faster. /// Max chaos chosen for a round will deviate from this /// [DataField] public float AverageChaos = 12f; /// /// Average time (in minutes) for when the ramping event scheduler should stop increasing the chaos modifier. /// Close to how long you expect a round to last, so you'll probably have to tweak this on downstreams. /// [DataField] public float AverageEndTime = 90f; [DataField] public float EndTime; [DataField] public float MaxChaos; [DataField] public float StartingChaos; [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!; }