using Content.Shared.FixedPoint; using Content.Shared.Fluids.Components; using Robust.Shared.GameStates; namespace Content.Shared.Chemistry.Components; /// /// Stores solution on an anchored entity that has touch and ingestion reactions /// to entities that collide with it. Similar to /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class SmokeComponent : Component { public const string SolutionName = "solutionArea"; /// /// The solution on the entity with touch and ingestion reactions. /// [ViewVariables] public Entity? Solution = null; /// /// The max amount of tiles this smoke cloud can spread to. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public int SpreadAmount; /// /// The max rate at which chemicals are transferred from the smoke to the person inhaling it. /// Calculated as (total volume of chemicals in smoke) / () /// [DataField, ViewVariables(VVAccess.ReadWrite)] public FixedPoint2 TransferRate; /// /// The total lifespan of the smoke. /// [DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] public float Duration = 10; }