using Content.Shared.Ghost.Components; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server.Ghost.Components; /// /// Causes an entity to react to ghost player using the "Boo!" action by causing this light to flicker. /// /// [RegisterComponent, AutoGenerateComponentPause, Access(typeof(GhostSystem))] public sealed partial class SpookyPoweredLightComponent : Component { /// /// The length of time the light should spend blinking. /// [DataField] public TimeSpan GhostBlinkingTime = TimeSpan.FromSeconds(10); /// /// The delay between when this light can start to blink. /// [DataField] public TimeSpan GhostBlinkingCooldown = TimeSpan.FromSeconds(60); /// /// The next time a ghost can cause this light to blink. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField] public TimeSpan NextGhostBlink; /// /// The intensity of this response to a . /// [DataField] public GhostBooIntensity Intensity = GhostBooIntensity.Normal; }