void OnRightClickItemRoom(Framework.States.StateObject state) { BurntimeClassic classic = app as BurntimeClassic; Item item = state as Item; IItemCollection right = (classic.InventoryRoom == null) ? (IItemCollection)classic.PickItems : classic.InventoryRoom.Items; // eat if (item.FoodValue != 0) { int left = group.Eat(leader, item.FoodValue); // remove item only if somebody actually ate if (left < item.FoodValue) { if (item.Type.Empty != null) { item.MakeEmpty(); grid.Update(item); } else { right.Remove(item); grid.Remove(item); } } } // drink else if (item.WaterValue != 0) { int left = group.Drink(leader, item.WaterValue); // remove item only if somebody actually drank if (left < item.WaterValue) { if (item.Type.Empty != null) { item.MakeEmpty(); grid.Update(item); } else { right.Remove(item); grid.Remove(item); } } } else //if (inventory.ActiveCharacter.Class == CharClass.Technician) { construction = classic.Game.Constructions.GetConstruction(inventory.ActiveCharacter, right, item); this.item = item; dialog.SetCharacter(inventory.ActiveCharacter, construction.Dialog); dialog.Show(); } }
/// <summary> /// Remove all items. /// </summary> /// <param name="me">collection to remove items from</param> public static void Clear(this IItemCollection me) { while (me.Count > 0) { me.Remove(me[0]); } }
/// <summary> /// Remove all items contained in both collections. /// </summary> /// <param name="me">collection to remove items from</param> /// <param name="collection">collection with items to remove from me</param> public static void Remove(this IItemCollection me, IItemCollection collection) { for (int i = 0; i < collection.Count; i++) { me.Remove(collection[i]); } }
public void Construct(Construction construction, Character technician, IItemCollection roomItems, Item mainItem, ClassicGame world) { IItemCollection insert = technician.Items; if (!technician.Items.Contains(mainItem)) { insert = roomItems; } for (int i = 0; i < construction.construction.Items.Length; i++) { Item item = technician.Items.Find(world.ItemTypes[construction.construction.Items[i]]); if (item != null) { technician.Items.Remove(item); } else { item = roomItems.Find(world.ItemTypes[construction.construction.Items[i]]); roomItems.Remove(item); } } insert.Add(world.ItemTypes[construction.construction.Result].Generate()); }
public bool Move(IItemCollection ItemList) { while (ItemList.Count != 0) { if (!Add(ItemList[0])) { return(false); } ItemList.Remove(ItemList[0]); } return(true); }