using Content.Shared.Nutrition.Components; using Content.Shared.Nutrition.EntitySystems; using Robust.Shared.Prototypes; namespace Content.Shared.EntityConditions.Conditions.Body; /// /// Returns true if this entity's hunger is within a specified minimum and maximum. /// /// public sealed partial class TotalHungerEntityConditionSystem : EntityConditionSystem { [Dependency] private readonly HungerSystem _hunger = default!; protected override void Condition(Entity entity, ref EntityConditionEvent args) { var total = _hunger.GetHunger(entity.Comp); args.Result = total >= args.Condition.Min && total <= args.Condition.Max; } } /// public sealed partial class HungerCondition : EntityConditionBase { [DataField] public float Min; [DataField] public float Max = float.PositiveInfinity; public override string EntityConditionGuidebookText(IPrototypeManager prototype) => Loc.GetString("reagent-effect-condition-guidebook-total-hunger", ("max", float.IsPositiveInfinity(Max) ? int.MaxValue : Max), ("min", Min)); }