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;
}