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))); }
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())); }