示例#1
0
        /// <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();
            }
        }