using Content.Shared.Chemistry.Components; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; namespace Content.Shared.Trigger.Components.Effects; /// /// 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. /// If TargetUser is true the smoke is spawned at their location. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class SmokeOnTriggerComponent : BaseXOnTriggerComponent { /// /// How long the smoke stays for, after it has spread (in seconds). /// [DataField, AutoNetworkedField] public TimeSpan Duration = TimeSpan.FromSeconds(10); /// /// How much the smoke will spread. /// [DataField(required: true), AutoNetworkedField] public int SpreadAmount; /// /// Smoke entity to spawn. /// Defaults to smoke but you can use foam if you want. /// [DataField, AutoNetworkedField] public EntProtoId 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, AutoNetworkedField] public Solution Solution = new(); }