using Content.Shared.Damage.Components; using Content.Shared.FixedPoint; using Robust.Shared.Prototypes; namespace Content.Shared.EntityConditions.Conditions; /// /// Returns true if this entity can take damage and if its total damage is within a specified minimum and maximum. /// /// public sealed partial class TotalDamageEntityConditionSystem : EntityConditionSystem { protected override void Condition(Entity entity, ref EntityConditionEvent args) { var total = entity.Comp.TotalDamage; args.Result = total >= args.Condition.Min && total <= args.Condition.Max; } } /// public sealed partial class TotalDamageCondition : EntityConditionBase { [DataField] public FixedPoint2 Max = FixedPoint2.MaxValue; [DataField] public FixedPoint2 Min = FixedPoint2.Zero; public override string EntityConditionGuidebookText(IPrototypeManager prototype) => Loc.GetString("entity-condition-guidebook-total-damage", ("max", Max == FixedPoint2.MaxValue ? int.MaxValue : Max.Float()), ("min", Min.Float())); }