using Content.Shared.FixedPoint; using Content.Shared.Inventory; using Content.Shared.Projectiles; namespace Content.Server.Chemistry.Components; /// /// On colliding with an entity that has a bloodstream will dump its solution onto them. /// [RegisterComponent] public sealed partial class SolutionInjectOnCollideComponent : Component { [ViewVariables(VVAccess.ReadWrite)] [DataField("transferAmount")] public FixedPoint2 TransferAmount = FixedPoint2.New(1); [ViewVariables(VVAccess.ReadWrite)] public float TransferEfficiency { get => _transferEfficiency; set => _transferEfficiency = Math.Clamp(value, 0, 1); } [DataField("transferEfficiency")] private float _transferEfficiency = 1f; /// /// If anything covers any of these slots then the injection fails. /// [DataField("blockSlots"), ViewVariables(VVAccess.ReadWrite)] public SlotFlags BlockSlots = SlotFlags.MASK; }