using Content.Shared.Radio; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Set; namespace Content.Server.GameTicking.Rules.Configurations; /// /// Solar Flare event specific configuration /// public sealed class SolarFlareEventRuleConfiguration : StationEventRuleConfiguration { /// /// In seconds, most early moment event can end /// [DataField("minEndAfter")] public int MinEndAfter; /// /// In seconds, most late moment event can end /// [DataField("maxEndAfter")] public int MaxEndAfter; /// /// If true, only headsets affected, but e.g. handheld radio will still work /// [DataField("onlyJamHeadsets")] public bool OnlyJamHeadsets; /// /// Channels that will be disabled for a duration of event /// [DataField("affectedChannels", customTypeSerializer: typeof(PrototypeIdHashSetSerializer))] public readonly HashSet AffectedChannels = new(); /// /// Chance light bulb breaks per second during event /// [DataField("lightBreakChancePerSecond")] public float LightBreakChancePerSecond; /// /// Chance door toggles per second during event /// [DataField("doorToggleChancePerSecond")] public float DoorToggleChancePerSecond; }