2023-04-25 20:23:14 -04:00
|
|
|
|
using Content.Server.StationEvents.Events;
|
2023-05-12 18:37:08 +00:00
|
|
|
|
using Content.Shared.Chemistry.Reagent;
|
|
|
|
|
|
using Robust.Shared.Audio;
|
|
|
|
|
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;
|
2023-04-25 20:23:14 -04:00
|
|
|
|
|
|
|
|
|
|
namespace Content.Server.StationEvents.Components;
|
|
|
|
|
|
|
|
|
|
|
|
[RegisterComponent, Access(typeof(VentClogRule))]
|
2023-08-22 18:14:33 -07:00
|
|
|
|
public sealed partial class VentClogRuleComponent : Component
|
2023-04-25 20:23:14 -04:00
|
|
|
|
{
|
2023-05-12 18:37:08 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Somewhat safe chemicals to put in foam that probably won't instantly kill you.
|
|
|
|
|
|
/// There is a small chance of using any reagent, ignoring this.
|
|
|
|
|
|
/// </summary>
|
2023-10-26 22:52:11 -04:00
|
|
|
|
[DataField(customTypeSerializer: typeof(PrototypeIdListSerializer<ReagentPrototype>))]
|
2023-08-22 18:14:33 -07:00
|
|
|
|
public IReadOnlyList<string> SafeishVentChemicals = new[]
|
2023-04-25 20:23:14 -04:00
|
|
|
|
{
|
2023-05-14 18:35:10 +03:00
|
|
|
|
"Water", "Blood", "Slime", "SpaceDrugs", "SpaceCleaner", "Nutriment", "Sugar", "SpaceLube", "Ephedrine", "Ale", "Beer", "SpaceGlue"
|
2023-04-25 20:23:14 -04:00
|
|
|
|
};
|
|
|
|
|
|
|
2023-05-12 18:37:08 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Sound played when foam is being created.
|
|
|
|
|
|
/// </summary>
|
2023-10-26 22:52:11 -04:00
|
|
|
|
[DataField]
|
2023-05-12 18:37:08 +00:00
|
|
|
|
public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/Effects/extinguish.ogg");
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2023-10-26 22:52:11 -04:00
|
|
|
|
/// The standard reagent quantity to put in the foam, modified by event severity.
|
2023-05-12 18:37:08 +00:00
|
|
|
|
/// </summary>
|
2023-10-26 22:52:11 -04:00
|
|
|
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public int ReagentQuantity = 100;
|
2023-05-12 18:37:08 +00:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2023-10-26 22:52:11 -04:00
|
|
|
|
/// The standard spreading of the foam, not modified by event severity.
|
2023-05-12 18:37:08 +00:00
|
|
|
|
/// </summary>
|
2023-10-26 22:52:11 -04:00
|
|
|
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public int Spread = 16;
|
2023-05-12 18:37:08 +00:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// How long the foam lasts for
|
|
|
|
|
|
/// </summary>
|
2023-10-26 22:52:11 -04:00
|
|
|
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
2023-05-12 18:37:08 +00:00
|
|
|
|
public float Time = 20f;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Reagents that gets the weak numbers used instead of regular ones.
|
|
|
|
|
|
/// </summary>
|
2023-10-26 22:52:11 -04:00
|
|
|
|
[DataField(customTypeSerializer: typeof(PrototypeIdListSerializer<ReagentPrototype>))]
|
2023-05-17 16:10:40 +01:00
|
|
|
|
public IReadOnlyList<string> WeakReagents = new[]
|
|
|
|
|
|
{
|
|
|
|
|
|
"SpaceLube", "SpaceGlue"
|
|
|
|
|
|
};
|
2023-05-12 18:37:08 +00:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Quantity of weak reagents to put in the foam.
|
|
|
|
|
|
/// </summary>
|
2023-10-26 22:52:11 -04:00
|
|
|
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public int WeakReagentQuantity = 50;
|
2023-05-12 18:37:08 +00:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Spread of the foam for weak reagents.
|
|
|
|
|
|
/// </summary>
|
2023-10-26 22:52:11 -04:00
|
|
|
|
[DataField, ViewVariables(VVAccess.ReadWrite)]
|
|
|
|
|
|
public int WeakSpread = 3;
|
2023-04-25 20:23:14 -04:00
|
|
|
|
}
|