using UnityEngine;
namespace Invector.vItemManager
{
///
/// Equipments of the Inventory that needs to be instantiated
///
[vClassHeader("Equipment", openClose = false, helpBoxText = "Use this component if you also use the ItemManager in your Character")]
public partial class vEquipment : vMonoBehaviour
{
public OnHandleItemEvent onEquip, onUnequip;
[SerializeField, vReadOnly] protected vItem item;
[SerializeField, vReadOnly] protected bool isEquipped;
public EquipPoint equipPoint { get; set; }
///
/// Equipment is equipped
///
public virtual bool IsEquipped { get => isEquipped; set => isEquipped = value; }
///
/// Event called when equipment is destroyed
///
public virtual void OnDestroy()
{
}
///
/// Item representing the equipment
///
public virtual vItem referenceItem
{
get => item;
protected set => item = value;
}
///
/// Event called when the item is equipped
///
/// target item
public virtual void OnEquip(vItem item)
{
IsEquipped = true;
referenceItem = item;
onEquip.Invoke(item);
}
///
/// Event called when the item is unquipped
///
/// target item
public virtual void OnUnequip(vItem item)
{
IsEquipped = false;
onUnequip.Invoke(item);
}
}
}