Ejemplo n.º 1
0
        public DougResponse Equip(Command command)
        {
            var user          = _userRepository.GetUser(command.UserId);
            var position      = int.Parse(command.GetArgumentAt(0));
            var inventoryItem = user.InventoryItems.SingleOrDefault(itm => itm.InventoryPosition == position);

            if (inventoryItem == null)
            {
                return(new DougResponse(string.Format(DougMessages.NoItemInSlot, position)));
            }

            if (!inventoryItem.Item.IsEquipable())
            {
                return(new DougResponse(DougMessages.ItemNotEquipAble));
            }

            var equipmentItem = (EquipmentItem)inventoryItem.Item;

            if (!user.CanEquip(equipmentItem))
            {
                return(new DougResponse(DougMessages.LevelRequirementNotMet));
            }

            var unequippedItems = _equipmentRepository.EquipItem(user, equipmentItem);

            _inventoryRepository.AddItems(user, unequippedItems.Select(item => item));
            _inventoryRepository.RemoveItem(user, position);

            return(new DougResponse(string.Format(DougMessages.EquippedItem, inventoryItem.Item.Name)));
        }
Ejemplo n.º 2
0
        public string Equip(User user, int itemPosition)
        {
            var inventoryItem = user.InventoryItems.SingleOrDefault(itm => itm.InventoryPosition == itemPosition);

            if (inventoryItem == null)
            {
                return(string.Format(DougMessages.NoItemInSlot, itemPosition));
            }

            if (!inventoryItem.Item.IsEquipable())
            {
                return(DougMessages.ItemNotEquipAble);
            }

            var equipmentItem = (EquipmentItem)inventoryItem.Item;

            if (!user.CanEquip(equipmentItem))
            {
                return(DougMessages.LevelRequirementNotMet);
            }

            var unequippedItems = _equipmentRepository.EquipItem(user, equipmentItem);

            _inventoryRepository.AddItems(user, unequippedItems.Select(item => item));
            _inventoryRepository.RemoveItem(user, itemPosition);

            return(string.Format(DougMessages.EquippedItem, inventoryItem.Item.GetDisplayName()));
        }