using Content.Server.StationEvents.Events; using Content.Shared.Chemistry.Reagent; using Robust.Shared.Audio; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Server.StationEvents.Components; [RegisterComponent, Access(typeof(VentClogRule))] public sealed class VentClogRuleComponent : Component { /// /// 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. /// [DataField("safeishVentChemicals", customTypeSerializer: typeof(PrototypeIdListSerializer))] public readonly IReadOnlyList SafeishVentChemicals = new[] { "Water", "Blood", "Slime", "SpaceDrugs", "SpaceCleaner", "Nutriment", "Sugar", "SpaceLube", "Ephedrine", "Ale", "Beer", "SpaceGlue" }; /// /// Sound played when foam is being created. /// [DataField("sound")] public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/Effects/extinguish.ogg"); /// /// The standard reagent quantity to put in the foam, modfied by event severity. /// [DataField("reagentQuantity"), ViewVariables(VVAccess.ReadWrite)] public int ReagentQuantity = 200; /// /// The standard spreading of the foam, not modfied by event severity. /// [DataField("spread"), ViewVariables(VVAccess.ReadWrite)] public int Spread = 20; /// /// How long the foam lasts for /// [DataField("time"), ViewVariables(VVAccess.ReadWrite)] public float Time = 20f; /// /// Reagents that gets the weak numbers used instead of regular ones. /// [DataField("weakReagents", customTypeSerializer: typeof(PrototypeIdListSerializer))] public IReadOnlyList WeakReagents = new[] { "SpaceLube" }; /// /// Quantity of weak reagents to put in the foam. /// [DataField("weakReagentQuantity"), ViewVariables(VVAccess.ReadWrite)] public int WeakReagentQuantity = 60; /// /// Spread of the foam for weak reagents. /// [DataField("weakSpread"), ViewVariables(VVAccess.ReadWrite)] public int WeakSpread = 2; }