using UnityEngine; [RequireComponent(typeof(Interactable))] public class RequiresItemBehavior : InteractionRequirementBase { [Header("Required Item")] public PickupItemData requiredItem; public override bool TryInteract(FollowerController follower) { var heldItem = follower.currentlyHeldItem; if (heldItem == requiredItem) { OnSuccess?.Invoke(); return true; } else { string requiredName = requiredItem != null ? requiredItem.itemName : "required item"; if (heldItem == null) { DebugUIMessage.Show($"You need {requiredName} to interact."); } else { string heldName = heldItem.itemName ?? "an item"; DebugUIMessage.Show($"You need {requiredName}, but you are holding {heldName}."); } OnFailure?.Invoke(); return false; } } }