using Content.Shared.Maps; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Shared.Anomaly.Effects.Components; [RegisterComponent] public sealed partial class EntitySpawnAnomalyComponent : Component { /// /// A list of entities that are random picked to be spawned on each pulse /// [DataField("spawns", required: true, customTypeSerializer: typeof(PrototypeIdListSerializer)), ViewVariables(VVAccess.ReadWrite)] public List Spawns = new(); /// /// The maximum number of entities that spawn per pulse /// scales with severity. /// [DataField("maxSpawnAmount"), ViewVariables(VVAccess.ReadWrite)] public int MaxSpawnAmount = 7; /// /// The maximum radius the entities will spawn in. /// Also governs the maximum reach of flesh tiles /// scales with stability /// [DataField("spawnRange"), ViewVariables(VVAccess.ReadWrite)] public float SpawnRange = 5f; /// /// The tile that is spawned by the anomaly's effect /// [DataField("floorTileId", customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)] public string FloorTileId = "FloorFlesh"; /// /// The entity spawned when the anomaly goes supercritical /// [DataField("superCriticalSpawn", customTypeSerializer: typeof(PrototypeIdSerializer)), ViewVariables(VVAccess.ReadWrite)] public string SupercriticalSpawn = "FleshKudzu"; }