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