Files
wwdpublic/Content.Shared/Chemistry/Components/SmokeComponent.cs
sleepyyapril 4b8b0591d6 v239.0.0 + .NET 9 (#1475)
yeag

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>

(cherry picked from commit 64a389a1158d22fbe7cdbe0a71d223b66dcfd5b6)
2025-01-14 02:18:31 +03:00

41 lines
1.4 KiB
C#

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