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));
}