using Robust.Shared.Prototypes; namespace Content.Shared.Anomaly.Effects.Components; [RegisterComponent, Access(typeof(SharedEntityAnomalySystem))] public sealed partial class EntitySpawnAnomalyComponent : Component { /// /// All types of entity spawns with their settings /// [DataField] public List Entries = new(); } [DataDefinition, Serializable] public partial record struct EntitySpawnSettingsEntry() { /// /// A list of entities that are random picked to be spawned on each pulse /// [DataField] public List Spawns { get; set; } = new(); /// /// The minimum number of entities that spawn per pulse /// [DataField] public int MinAmount { get; set; } = 0; /// /// The maximum number of entities that spawn per pulse /// scales with severity. /// [DataField] public int MaxAmount { get; set; } = 1; /// /// The distance from the anomaly in which the entities will not appear /// [DataField] public float MinRange { get; set; } = 0f; /// /// The maximum radius the entities will spawn in. /// [DataField] public float MaxRange { get; set; } = 1f; /// /// Whether or not anomaly spawns entities on Pulse /// [DataField] public bool SpawnOnPulse { get; set; } = false; /// /// Whether or not anomaly spawns entities on SuperCritical /// [DataField] public bool SpawnOnSuperCritical { get; set; } = false; /// /// Whether or not anomaly spawns entities on StabilityChanged /// [DataField] public bool SpawnOnStabilityChanged { get; set; } = false; /// /// Whether or not anomaly spawns entities on SeverityChanged /// [DataField] public bool SpawnOnSeverityChanged { get; set; } = false; }