using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Reagent; using Content.Shared.FixedPoint; using Robust.Shared.GameObjects; using Robust.Shared.Serialization.Manager.Attributes; namespace Content.Server.Chemistry.ReagentEffectConditions { /// /// Used for implementing reagent effects that require a certain amount of reagent before it should be applied. /// For instance, overdoses. /// public class ReagentThreshold : ReagentEffectCondition { [DataField("min")] public FixedPoint2 Min = FixedPoint2.Zero; [DataField("max")] public FixedPoint2 Max = FixedPoint2.MaxValue; public override bool Condition(ReagentEffectArgs args) { if (args.Source != null) { var quant = args.Source.GetReagentQuantity(args.Reagent.ID); return quant >= Min && quant <= Max; } return false; } } }