Files
crystall-punk-14/Content.Shared/Anomaly/Effects/Components/EntitySpawnAnomalyComponent.cs

54 lines
1.7 KiB
C#
Raw Normal View History

2023-02-06 00:03:53 -05:00
using Robust.Shared.Prototypes;
namespace Content.Shared.Anomaly.Effects.Components;
[RegisterComponent]
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)]
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)]
public float SpawnRange = 5f;
2023-02-06 00:03:53 -05:00
/// <summary>
/// Whether or not anomaly spawns entities on Pulse
2023-02-06 00:03:53 -05:00
/// </summary>
[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
}