public int CountItem(int v) { int count = 0; foreach (Inventory inv in Inventory.Where(s => s.ItemInstance.ItemVNum == v)) { count += inv.ItemInstance.Amount; } return(count); }
public Inventory GetFirstSlot(IEnumerable <ItemInstance> slotfree) { List <Guid> inventoryitemids = new List <Guid>(); foreach (ItemInstance itemfree in slotfree) { inventoryitemids.Add(itemfree.Id); } return(Inventory.Where(i => inventoryitemids.Contains(i.ItemInstance.Id)).OrderBy(i => i.Slot).FirstOrDefault()); }
public void RemoveItemAmount(int v, int amount) { Logger.Debug($"v: {v} amount: {amount}", Owner.Session.SessionId); for (int i = 0; i < Inventory.Where(s => s.ItemInstance.ItemVNum == v).OrderBy(s => s.Slot).Count(); i++) { Inventory inv = Inventory.Where(s => s.ItemInstance.ItemVNum == v).OrderBy(s => s.Slot).ElementAt(i); if (inv.ItemInstance.Amount > amount) { inv.ItemInstance.Amount -= (byte)amount; amount = 0; } else { amount -= inv.ItemInstance.Amount; DeleteByInventoryItemId(inv.ItemInstance.ItemInstanceId); } } }
public void RemoveItemAmount(int vnum, int amount) { Logger.Debug($"vnum: {vnum} amount: {amount}", Owner.Session.SessionId); for (int i = 0; i < Inventory.Where(s => s.ItemInstance.ItemVNum == vnum).OrderBy(s => s.Slot).Count(); i++) { Inventory inv = Inventory.Where(s => s.ItemInstance.ItemVNum == vnum).OrderBy(s => s.Slot).ElementAt(i); if (inv.ItemInstance.Amount > amount) { inv.ItemInstance.Amount -= (byte)amount; amount = 0; Owner.Session.SendPacket(Owner.Session.Character.GenerateInventoryAdd(inv.ItemInstance.ItemVNum, inv.ItemInstance.Amount, inv.Type, inv.Slot, inv.ItemInstance.Rare, inv.ItemInstance.Design, inv.ItemInstance.Upgrade, 0)); } else { amount -= inv.ItemInstance.Amount; DeleteByInventoryItemId(inv.ItemInstance.Id); Owner.Session.SendPacket(Owner.Session.Character.GenerateInventoryAdd(-1, 0, inv.Type, inv.Slot, 0, 0, 0, 0)); } } }