using Content.Shared.FixedPoint; using Robust.Shared.GameStates; using Robust.Shared.Audio; namespace Content.Shared.Chemistry.Components; /// /// Component that allows an entity instantly transfer liquids by interacting with objects that have solutions. /// [RegisterComponent, NetworkedComponent] [AutoGenerateComponentState] public sealed partial class HyposprayComponent : Component { /// /// Solution that will be used by hypospray for injections. /// [DataField] public string SolutionName = "hypospray"; /// /// Amount of the units that will be transfered. /// [AutoNetworkedField] [DataField] public FixedPoint2 TransferAmount = FixedPoint2.New(5); /// /// The delay to draw reagents using the hypospray. /// If set, RefillTime should probably have the same value. /// [DataField] public float DrawTime = 0f; /// /// Sound that will be played when injecting. /// [DataField] public SoundSpecifier InjectSound = new SoundPathSpecifier("/Audio/Items/hypospray.ogg"); /// /// Decides whether you can inject everything or just mobs. /// [AutoNetworkedField] [DataField(required: true)] public bool OnlyAffectsMobs = false; /// /// If this can draw from containers in mob-only mode. /// [AutoNetworkedField] [DataField] public bool CanContainerDraw = true; /// /// Whether or not the hypospray is able to draw from containers or if it's a single use /// device that can only inject. /// [DataField] public bool InjectOnly = false; }