2023-02-06 00:03:53 -05:00
|
|
|
using Robust.Shared.Prototypes;
|
|
|
|
|
|
|
|
|
|
namespace Content.Shared.Anomaly.Effects.Components;
|
|
|
|
|
|
|
|
|
|
[RegisterComponent]
|
2023-08-22 18:14:33 -07:00
|
|
|
public sealed partial class EntitySpawnAnomalyComponent : Component
|
2023-02-06 00:03:53 -05:00
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// A list of entities that are random picked to be spawned on each pulse
|
|
|
|
|
/// </summary>
|
2023-10-05 20:53:53 +01:00
|
|
|
[DataField]
|
|
|
|
|
public List<EntProtoId> Spawns = new();
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// A list of entities that are random picked to be spawned when supercritical;
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField]
|
|
|
|
|
public List<EntProtoId> SuperCriticalSpawns = new();
|
2023-02-06 00:03:53 -05:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The maximum number of entities that spawn per pulse
|
|
|
|
|
/// scales with severity.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField("maxSpawnAmount"), ViewVariables(VVAccess.ReadWrite)]
|
2023-02-12 15:17:54 -05:00
|
|
|
public int MaxSpawnAmount = 7;
|
2023-02-06 00:03:53 -05:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The maximum radius the entities will spawn in.
|
|
|
|
|
/// Also governs the maximum reach of flesh tiles
|
|
|
|
|
/// scales with stability
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField("spawnRange"), ViewVariables(VVAccess.ReadWrite)]
|
2023-02-12 15:17:54 -05:00
|
|
|
public float SpawnRange = 5f;
|
2023-02-06 00:03:53 -05:00
|
|
|
|
|
|
|
|
/// <summary>
|
2023-11-06 04:41:42 +02:00
|
|
|
/// Whether or not anomaly spawns entities on Pulse
|
2023-02-06 00:03:53 -05:00
|
|
|
/// </summary>
|
2023-11-06 04:41:42 +02:00
|
|
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
public bool SpawnOnPulse = true;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Whether or not anomaly spawns entities on SuperCritical
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
public bool SpawnOnSuperCritical = true;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Whether or not anomaly spawns entities on StabilityChanged
|
|
|
|
|
/// The idea was to spawn entities either on Pulse/Supercritical OR StabilityChanged
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
public bool SpawnOnStabilityChanged = false;
|
2023-02-06 00:03:53 -05:00
|
|
|
}
|