public void AttemptEquip(OnItemAttemptEquipEventData e)
    {
        EquipmentCollection equipment = e.Equipper.GetComponentInChildren <EquipmentCollection>();

        //only equip item if there is no item currently in slot
        if (EquipableTo.ContainsSlot(e.EquipmentSlot) &&
            !equipment.IsItemInSlot(e.EquipmentSlot) &&
            !equipment.IsEquipped(e.Item)
            )
        {
            e.Item.Emitter.Emit(
                new OnItemEquipEventData(
                    e.Equipper,
                    e.Item,
                    e.EquipmentSlot
                    )
                );
        }
    }
 public void Emit(OnItemAttemptEquipEventData e)
 {
     Handler.OnItemAttemptEquipEvent.Invoke(e);
 }