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;
}