using Content.Shared.Dragon; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Dragon; [RegisterComponent] public sealed partial class DragonRiftComponent : SharedDragonRiftComponent { /// /// Dragon that spawned this rift. /// [DataField("dragon")] public EntityUid? Dragon; /// /// How long the rift has been active. /// [ViewVariables(VVAccess.ReadWrite), DataField("accumulator")] public float Accumulator = 0f; /// /// The maximum amount we can accumulate before becoming impervious. /// [ViewVariables(VVAccess.ReadWrite), DataField("maxAccumuluator")] public float MaxAccumulator = 300f; /// /// Accumulation of the spawn timer. /// [ViewVariables(VVAccess.ReadWrite), DataField("spawnAccumulator")] public float SpawnAccumulator = 30f; /// /// How long it takes for a new spawn to be added. /// [ViewVariables(VVAccess.ReadWrite), DataField("spawnCooldown")] public float SpawnCooldown = 30f; [ViewVariables(VVAccess.ReadWrite), DataField("spawn", customTypeSerializer: typeof(PrototypeIdSerializer))] public string SpawnPrototype = "MobCarpDragon"; //Begin DeltaV - Elite spawns on dragon rifts [DataField] public bool SpawnElites = true; [DataField("spawnElite")] public EntProtoId? SpawnElitePrototype = "MobSharkminnowDragon"; /// /// Every N-th spawn is the elite where N is Elite frequency /// [DataField] public int SpawnEliteFrequency = 5; /// /// Accumulation of elite spawns /// Starts at the same value as Frequency to guarantee the first spawn to be elite /// [DataField] public int SpawnEliteAccumulator = 5; //End DeltaV - Elite spawns on dragon rifts }