Files
BABA_YAGA/Assets/Scripts/Interaction/Item Manager/vEquipment.cs
2026-06-04 10:42:23 +07:00

58 lines
1.7 KiB
C#

using UnityEngine;
namespace Invector.vItemManager
{
/// <summary>
/// Equipments of the Inventory that needs to be instantiated
/// </summary>
[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; }
/// <summary>
/// Equipment is equipped
/// </summary>
public virtual bool IsEquipped { get => isEquipped; set => isEquipped = value; }
/// <summary>
/// Event called when equipment is destroyed
/// </summary>
public virtual void OnDestroy()
{
}
/// <summary>
/// Item representing the equipment
/// </summary>
public virtual vItem referenceItem
{
get => item;
protected set => item = value;
}
/// <summary>
/// Event called when the item is equipped
/// </summary>
/// <param name="item">target item</param>
public virtual void OnEquip(vItem item)
{
IsEquipped = true;
referenceItem = item;
onEquip.Invoke(item);
}
/// <summary>
/// Event called when the item is unquipped
/// </summary>
/// <param name="item">target item</param>
public virtual void OnUnequip(vItem item)
{
IsEquipped = false;
onUnequip.Invoke(item);
}
}
}