using Content.Server.AI.Utility.Curves; using Content.Server.AI.WorldState; using Content.Server.AI.WorldState.States; using Content.Server.GameObjects; namespace Content.Server.AI.Utility.Considerations.Hands { /// /// Returns 1 if in our hands else 0 /// public sealed class TargetInOurHandsCon : Consideration { public TargetInOurHandsCon(IResponseCurve curve) : base(curve) {} public override float GetScore(Blackboard context) { var owner = context.GetState().GetValue(); var target = context.GetState().GetValue(); if (target == null || !target.HasComponent() || !owner.TryGetComponent(out HandsComponent handsComponent)) { return 0.0f; } return handsComponent.IsHolding(target) ? 1.0f : 0.0f; } } }