* add first anomaly core * meme * 5 min to 10 min fix yml * fix * Update doc * no static price
43 lines
1.4 KiB
C#
43 lines
1.4 KiB
C#
using Content.Server.Anomaly.Effects;
|
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
|
|
|
namespace Content.Server.Anomaly.Components;
|
|
|
|
/// <summary>
|
|
/// This component exists for a limited time, and after it expires it modifies the entity, greatly reducing its value and changing its visuals
|
|
/// </summary>
|
|
[RegisterComponent, Access(typeof(AnomalyCoreSystem))]
|
|
public sealed partial class AnomalyCoreComponent : Component
|
|
{
|
|
|
|
/// <summary>
|
|
/// Amount of time required for the core to decompose into an inert core
|
|
/// </summary>
|
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
|
public double TimeToDecay = 600;
|
|
|
|
/// <summary>
|
|
/// The moment of core decay. It is set during entity initialization.
|
|
/// </summary>
|
|
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), ViewVariables(VVAccess.ReadWrite)]
|
|
public TimeSpan DecayMoment;
|
|
|
|
/// <summary>
|
|
/// The starting value of the entity.
|
|
/// </summary>
|
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
|
public double StartPrice = 10000;
|
|
|
|
/// <summary>
|
|
/// The value of the object sought during decaying
|
|
/// </summary>
|
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
|
public double EndPrice = 200;
|
|
|
|
/// <summary>
|
|
/// Has the core decayed?
|
|
/// </summary>
|
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
|
public bool IsDecayed;
|
|
}
|