Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
 /// <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]);
     }
 }
Esempio n. 3
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]);
     }
 }
Esempio n. 4
0
        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());
        }
Esempio n. 5
0
        public bool Move(IItemCollection ItemList)
        {
            while (ItemList.Count != 0)
            {
                if (!Add(ItemList[0]))
                {
                    return(false);
                }
                ItemList.Remove(ItemList[0]);
            }

            return(true);
        }