using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server.Salvage.Magnet; /// /// Added to the station to hold salvage magnet data. /// [RegisterComponent] public sealed partial class SalvageMagnetDataComponent : Component { // May be multiple due to splitting. /// /// Entities currently magnetised. /// [DataField] public List? ActiveEntities; /// /// If the magnet is currently active when does it end. /// [DataField(customTypeSerializer:typeof(TimeOffsetSerializer))] public TimeSpan? EndTime; [DataField(customTypeSerializer:typeof(TimeOffsetSerializer))] public TimeSpan NextOffer; /// /// How long salvage will be active for before despawning. /// [DataField] public TimeSpan ActiveTime = TimeSpan.FromMinutes(6); /// /// Cooldown between offerings after one ends. /// [DataField] public TimeSpan OfferCooldown = TimeSpan.FromMinutes(3); /// /// Seeds currently offered /// [DataField] public List Offered = new(); [DataField] public int OfferCount = 5; [DataField] public int ActiveSeed; /// /// Final countdown announcement. /// [DataField] public bool Announced; }