VentClogRuleComponent.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using Content.Server.StationEvents.Events;
  2. using Content.Shared.Chemistry.Reagent;
  3. using Robust.Shared.Audio;
  4. using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;
  5. namespace Content.Server.StationEvents.Components;
  6. [RegisterComponent, Access(typeof(VentClogRule))]
  7. public sealed partial class VentClogRuleComponent : Component
  8. {
  9. /// <summary>
  10. /// Somewhat safe chemicals to put in foam that probably won't instantly kill you.
  11. /// There is a small chance of using any reagent, ignoring this.
  12. /// </summary>
  13. [DataField(customTypeSerializer: typeof(PrototypeIdListSerializer<ReagentPrototype>))]
  14. public IReadOnlyList<string> SafeishVentChemicals = new[]
  15. {
  16. "Water", "Blood", "Slime", "SpaceDrugs", "SpaceCleaner", "Nutriment", "Sugar", "SpaceLube", "Ephedrine", "Ale", "Beer", "SpaceGlue"
  17. };
  18. /// <summary>
  19. /// Sound played when foam is being created.
  20. /// </summary>
  21. [DataField]
  22. public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/Effects/extinguish.ogg");
  23. /// <summary>
  24. /// The standard reagent quantity to put in the foam, modified by event severity.
  25. /// </summary>
  26. [DataField, ViewVariables(VVAccess.ReadWrite)]
  27. public int ReagentQuantity = 100;
  28. /// <summary>
  29. /// The standard spreading of the foam, not modified by event severity.
  30. /// </summary>
  31. [DataField, ViewVariables(VVAccess.ReadWrite)]
  32. public int Spread = 16;
  33. /// <summary>
  34. /// How long the foam lasts for
  35. /// </summary>
  36. [DataField, ViewVariables(VVAccess.ReadWrite)]
  37. public float Time = 20f;
  38. /// <summary>
  39. /// Reagents that gets the weak numbers used instead of regular ones.
  40. /// </summary>
  41. [DataField(customTypeSerializer: typeof(PrototypeIdListSerializer<ReagentPrototype>))]
  42. public IReadOnlyList<string> WeakReagents = new[]
  43. {
  44. "SpaceLube", "SpaceGlue"
  45. };
  46. /// <summary>
  47. /// Quantity of weak reagents to put in the foam.
  48. /// </summary>
  49. [DataField, ViewVariables(VVAccess.ReadWrite)]
  50. public int WeakReagentQuantity = 50;
  51. /// <summary>
  52. /// Spread of the foam for weak reagents.
  53. /// </summary>
  54. [DataField, ViewVariables(VVAccess.ReadWrite)]
  55. public int WeakSpread = 3;
  56. }