public bool OnUse(IItemTarget user, IItemTarget t) { if (user is CPet) { var target = user as CPet; if (target.Info.Health == target.Info.MaxHealth) { return(false); } target.Info.Heal(50); return(true); } return(false); }
// If the player chooses to use an item on an interactable, run this. public void UseItemInput(Item itemUsed) { if (itemUsed != null) { // Check through the array of interactables objects. Interact with the closest one. int currentNearestObjectIndex = CheckNearestObjectSlot(); // If not null, and there are nearby interactables... if (currentNearestObjectIndex > -1) { interactedObject = nearbyInteractables [currentNearestObjectIndex]; // Run OnItemUse() function in all of the IItemTarget Monobehaviors attached to the interactedObject IItemTarget[] interactedObjectMonobehaviors = interactedObject.GetComponents <IItemTarget> (); foreach (IItemTarget mb in interactedObjectMonobehaviors) { IItemTarget itemTargetInteractable = (IItemTarget)mb; itemTargetInteractable.OnItemUse(itemUsed); } } } }