GasProducerAnomalyComponent.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using Content.Shared.Atmos;
  2. namespace Content.Server.Anomaly.Components;
  3. /// <summary>
  4. /// This component is used for handling gas producing anomalies. Will always spawn one on the tile with the anomaly, and in a random radius around it.
  5. /// </summary>
  6. [RegisterComponent]
  7. public sealed partial class GasProducerAnomalyComponent : Component
  8. {
  9. /// <summary>
  10. /// Should this gas be released when an anomaly reaches max severity?
  11. /// </summary>
  12. [DataField("releaseOnMaxSeverity")]
  13. public bool ReleaseOnMaxSeverity = false;
  14. /// <summary>
  15. /// Should this gas be released over time?
  16. /// </summary>
  17. [DataField("releasePassively")]
  18. public bool ReleasePassively = false; // In case there are any future anomalies that release gas passively
  19. /// <summary>
  20. /// The gas to release
  21. /// </summary>
  22. [DataField("releasedGas", required: true)]
  23. public Gas ReleasedGas = Gas.WaterVapor; // There is no entry for none, and Gas cannot be null
  24. /// <summary>
  25. /// The amount of gas released when the anomaly reaches max severity
  26. /// </summary>
  27. [DataField("criticalMoleAmount")]
  28. public float SuperCriticalMoleAmount = 150f;
  29. /// <summary>
  30. /// The amount of gas released passively
  31. /// </summary>
  32. [DataField("passiveMoleAmount")]
  33. public float PassiveMoleAmount = 1f;
  34. /// <summary>
  35. /// The radius of random gas spawns.
  36. /// </summary>
  37. [DataField("spawnRadius", required: true)]
  38. public float spawnRadius = 3;
  39. /// <summary>
  40. /// The number of tiles which will be modified.
  41. /// </summary>
  42. [DataField("tileCount")]
  43. public int tileCount = 1;
  44. /// <summary>
  45. /// The the amount the tempurature should be modified by (negative for decreasing temp)
  46. /// </summary>
  47. [DataField("tempChange")]
  48. public float tempChange = 0;
  49. }