Rock and Meat anom rework (try 2) (#24449)
* rework * bruh * all fixed * balance * bb * Update TileAnomalySystem.cs * Update EntityAnomalySystem.cs * spawn on shutdown variant * fix entites, fix DataRecord * fix some review * god forgive me * oh fuck wrong brench * Revert "oh fuck wrong brench" This reverts commit c81f57f7830c8e55fd47982500c57281af40b0dc.
This commit is contained in:
@@ -1,53 +1,25 @@
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared.Anomaly.Effects.Components;
|
||||
|
||||
[RegisterComponent]
|
||||
[RegisterComponent, NetworkedComponent, Access(typeof(SharedEntityAnomalySystem))]
|
||||
public sealed partial class EntitySpawnAnomalyComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// All types of entity spawns with their settings
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public List<EntitySpawnSettingsEntry> Entries = new();
|
||||
}
|
||||
|
||||
[DataRecord]
|
||||
public partial record struct EntitySpawnSettingsEntry()
|
||||
{
|
||||
/// <summary>
|
||||
/// A list of entities that are random picked to be spawned on each pulse
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public List<EntProtoId> Spawns = new();
|
||||
public List<EntProtoId> Spawns { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// A list of entities that are random picked to be spawned when supercritical;
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public List<EntProtoId> SuperCriticalSpawns = new();
|
||||
|
||||
/// <summary>
|
||||
/// The maximum number of entities that spawn per pulse
|
||||
/// scales with severity.
|
||||
/// </summary>
|
||||
[DataField("maxSpawnAmount"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public int MaxSpawnAmount = 7;
|
||||
|
||||
/// <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;
|
||||
|
||||
/// <summary>
|
||||
/// Whether or not anomaly spawns entities on Pulse
|
||||
/// </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;
|
||||
public AnomalySpawnSettings Settings { get; set; } = new();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user