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