/// <summary> /// Equip the given item for the given user. This won't check about requirement, this should be done by the /// inventory before calling equip! /// </summary> /// <param name="item">Which item to equip</param> public void Equip(EquipmentItem item) { OnEquiped?.Invoke(item); switch (item.slot) { case EquipmentItem.EquipmentSlot.Head: { _headSlot = item; _headSlot.EquippedBy(_owner); } break; case EquipmentItem.EquipmentSlot.Torso: { _torsoSlot = item; _torsoSlot.EquippedBy(_owner); } break; case EquipmentItem.EquipmentSlot.Legs: { _legsSlot = item; _legsSlot.EquippedBy(_owner); } break; case EquipmentItem.EquipmentSlot.Feet: { _feetSlot = item; _feetSlot.EquippedBy(_owner); } break; case EquipmentItem.EquipmentSlot.Accessory: { _accessorySlot = item; _accessorySlot.EquippedBy(_owner); } break; case EquipmentItem.EquipmentSlot.Weapon: { Weapon = item as WeaponItem; Weapon.EquippedBy(_owner); } break; default: throw new ArgumentOutOfRangeException(); } }