using Content.Shared.Chemistry.Components; using Content.Shared.Explosion.EntitySystems; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; namespace Content.Shared.Explosion.Components.OnTrigger; /// /// Creates a smoke cloud when triggered, with an optional solution to include in it. /// No sound is played incase a grenade is stealthy, use if you want a sound. /// [RegisterComponent, NetworkedComponent, Access(typeof(SharedSmokeOnTriggerSystem))] public sealed partial class SmokeOnTriggerComponent : Component { /// /// How long the smoke stays for, after it has spread. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public float Duration = 10; /// /// How much the smoke will spread. /// [DataField(required: true), ViewVariables(VVAccess.ReadWrite)] public int SpreadAmount; /// /// Smoke entity to spawn. /// Defaults to smoke but you can use foam if you want. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public ProtoId SmokePrototype = "Smoke"; /// /// Solution to add to each smoke cloud. /// /// /// When using repeating trigger this essentially gets multiplied so dont do anything crazy like omnizine or lexorin. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public Solution Solution = new(); }