/// <summary> /// Add Consume in inventory extension method /// </summary> protected bool AddConsInInvExtension(int id, int quantity) { bool createNew = false; XmlStorageItem xmlStorage = new XmlStorageItem(); List <int> freeSlotsIndex = GetAllFreeIndexInInventory(); ItemConsume tempItemConsume = GetItemConsumeById(id, false); //else add from xml storage item if (tempItemConsume == null) { if (freeSlotsIndex.Count == 0) { return(false); } tempItemConsume = xmlStorage.GetItemConsumeById(id); if (tempItemConsume == null) { return(false); } createNew = true; } int maxInStack = xmlStorage.GetConsumeMaxInStackById(id); return(AddConsInInvExtension(tempItemConsume, quantity, maxInStack, createNew, freeSlotsIndex)); }
/// <summary> /// Add consume item to inventory in free slot./ /// Returns: True - successfully | False - fail /// </summary> /// <param name="itemConsume">Consume item</param> /// <returns>True - successfully | False - fail</returns> public bool AddItemToInventory(ItemConsume itemConsume) { ItemConsume tempItemConsume = new ItemConsume(); List <int> freeSlotsIndex = GetAllFreeIndexInInventory(); XmlStorageItem xmlStorage = new XmlStorageItem(); int maxInStack = xmlStorage.GetConsumeMaxInStackById(itemConsume.id); foreach (ItemConsume itemConsumeInInv in itemsConsumeInInv) { if (itemConsumeInInv.id == itemConsume.id) { tempItemConsume = itemConsumeInInv; break; } } if (tempItemConsume.IsEmpty()) { if (freeSlotsIndex.Count == 0) { return(false); } return(AddConsInInvExtension(itemConsume, 0, maxInStack, true, freeSlotsIndex)); } else { return(AddConsInInvExtension(tempItemConsume, itemConsume.quantity, maxInStack, false, freeSlotsIndex)); } }