using Content.Server.Singularity.EntitySystems; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server.Singularity.Components; /// /// Attracts the singularity. /// [RegisterComponent] [Access(typeof(SingularityAttractorSystem))] public sealed partial class SingularityAttractorComponent : Component { /// /// The range at which singularities will be unable to go away from the attractor. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public float BaseRange = 25f; /// /// The amount of time that should elapse between pulses of this attractor. /// [DataField, ViewVariables(VVAccess.ReadOnly)] public TimeSpan TargetPulsePeriod = TimeSpan.FromSeconds(2); /// /// The last time this attractor pulsed. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] public TimeSpan LastPulseTime = default!; }