示例#1
0
 void OnRightClickItem(Framework.States.StateObject State)
 {
     if (RightClickItemEvent != null)
     {
         RightClickItemEvent.Execute(State);
     }
 }
示例#2
0
 void OnLeftClickItem(Framework.States.StateObject State)
 {
     if (LeftClickItemEvent != null)
     {
         LeftClickItemEvent.Execute(State);
     }
 }
示例#3
0
        void OnLeftClickItemGrid(Framework.States.StateObject state)
        {
            // return item to group
            inventory.Grid.Add(state as Item);
            inventory.ActiveCharacter.Items.Add(state as Item);

            grid.Remove(state as Item);
            //UpdateText();
        }
示例#4
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();
            }
        }
示例#5
0
        void OnClickTemporarySpace(Framework.States.StateObject state)
        {
            if (inventory.Grid.MaxCount - inventory.Grid.Count <= 0)
            {
                return;
            }

            Item item = state as Item;

            inventory.ActiveCharacter.Items.Add(item);
            inventory.OnSelectPage();
            temporarySpace.Remove(item);
        }
示例#6
0
        void OnLeftClickItemTrader(Framework.States.StateObject State)
        {
            if (exchangeTop.Grid.Contains(State as Item))
            {
                exchangeTop.Grid.Remove(State as Item);
            }
            else
            {
                exchangeTop.Grid.Add(State as Item);
            }

            exchangeTop.ExchangeResult = CheckTrade();
        }
示例#7
0
        void OnLeftClickItemInventory(Framework.States.StateObject state)
        {
            if (!grid.Add(state as Item))
            {
                return;
            }

            eatLastAmount = -1;

            // remove item from group
            inventory.Grid.Remove(state as Item);
            inventory.ActiveCharacter.Items.Remove(state as Item);

            UpdateText();
        }
示例#8
0
        void OnRightClickItemInventory(Framework.States.StateObject state)
        {
            if (temporarySpace.MaxCount - temporarySpace.Count <= 0)
            {
                return;
            }

            Item item = state as Item;

            if (exchangeBottom.Grid.Contains(item))
            {
                return;
            }
            inventory.ActiveCharacter.Items.Remove(item);
            inventory.OnSelectPage();
            temporarySpace.Add(item);
        }
示例#9
0
        void OnLeftClickItemInventory(Framework.States.StateObject state)
        {
            if ((state as Item).HealValue == 0)
            {
                return;
            }

            if (!grid.Add(state as Item))
            {
                return;
            }

            // remove item from group
            inventory.Grid.Remove(state as Item);
            inventory.ActiveCharacter.Items.Remove(state as Item);

            //UpdateText();
        }
示例#10
0
        void OnLeftClickItemInventory(Framework.States.StateObject state)
        {
            BurntimeClassic classic = app as BurntimeClassic;

            if (classic.InventoryRoom != null)
            {
                if (classic.InventoryRoom.IsWaterSource && classic.InventoryRoom.Items.Count == 8)
                {
                    return;
                }
                if (!classic.InventoryRoom.IsWaterSource && classic.InventoryRoom.Items.Count == 32)
                {
                    return;
                }

                Item item = (Item)state;

                classic.InventoryRoom.Items.Add(item);
                inventory.ActiveCharacter.Items.Remove(item);

                // fill up empty bottles
                if (classic.InventoryRoom.IsWaterSource)
                {
                    classic.Game.World.ActiveLocationObj.Source.RefillItem(item);
                }

                grid.Add(item);
                inventory.Grid.Remove(item);
            }
            else if (classic.PickItems != null)
            {
                classic.PickItems.Add(state as Item);
                inventory.ActiveCharacter.Items.Remove(state as Item);

                grid.Add(state as Item);
                inventory.Grid.Remove(state as Item);
            }
        }
示例#11
0
        void OnLeftClickItemRoom(Framework.States.StateObject state)
        {
            BurntimeClassic classic = app as BurntimeClassic;

            if (inventory.ActiveCharacter.Items.Count == 6)
            {
                return;
            }

            if (classic.InventoryRoom != null)
            {
                inventory.ActiveCharacter.Items.Add(state as Item);
                classic.InventoryRoom.Items.Remove(state as Item);

                inventory.Grid.Add(state as Item);
                grid.Remove(state as Item);
            }
            else if (classic.PickItems != null)
            {
                inventory.ActiveCharacter.Items.Add(state as Item);

                classic.PickItems.Remove(state as Item);

                inventory.Grid.Add(state as Item);
                grid.Remove(state as Item);
            }

            inventory.Grid.Selection.Clear();
            if (inventory.ActiveCharacter.Weapon != null)
            {
                inventory.Grid.Selection.Add(inventory.ActiveCharacter.Weapon);
            }
            if (inventory.ActiveCharacter.Protection != null)
            {
                inventory.Grid.Selection.Add(inventory.ActiveCharacter.Protection);
            }
        }
示例#12
0
        void OnRightClickItemInventory(Framework.States.StateObject state)
        {
            BurntimeClassic classic = app as BurntimeClassic;

            Item item = state as Item;

            // 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();
                        inventory.Grid.Update(item);
                    }
                    else
                    {
                        inventory.ActiveCharacter.Items.Remove(item);
                        inventory.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();
                        inventory.Grid.Update(item);
                    }
                    else
                    {
                        inventory.ActiveCharacter.Items.Remove(item);
                        inventory.Grid.Remove(item);
                    }
                }
            }
            else if (item.Type.Full != null)
            {
                // fill up empty bottles
                if (classic.InventoryRoom != null && classic.InventoryRoom.IsWaterSource)
                {
                    if (item.Type.Full != null && item.Type.Full.WaterValue != 0)
                    {
                        if (classic.Game.World.ActiveLocationObj.Source.Reserve >= item.Type.Full.WaterValue)
                        {
                            classic.Game.World.ActiveLocationObj.Source.Reserve -= item.Type.Full.WaterValue;
                            item.MakeFull();

                            // refresh item
                            inventory.Grid.Remove(item);
                            inventory.Grid.Add(item);
                        }
                    }
                }
            }
            else if (item.IsSelectable)
            {
                inventory.ActiveCharacter.SelectItem(item);
                inventory.Grid.Selection.Clear();
                if (inventory.ActiveCharacter.Weapon != null)
                {
                    inventory.Grid.Selection.Add(inventory.ActiveCharacter.Weapon);
                }
                if (inventory.ActiveCharacter.Protection != null)
                {
                    inventory.Grid.Selection.Add(inventory.ActiveCharacter.Protection);
                }
            }
            else //if (inventory.ActiveCharacter.Class == CharClass.Technician)
            {
                IItemCollection right = (classic.InventoryRoom == null) ? (IItemCollection)classic.PickItems : classic.InventoryRoom.Items;
                construction = classic.Game.Constructions.GetConstruction(inventory.ActiveCharacter, right, item);
                this.item    = item;
                dialog.SetCharacter(inventory.ActiveCharacter, construction.Dialog);
                dialog.Show();
            }
        }
示例#13
0
 void OnRightClickItemTrader(Framework.States.StateObject State)
 {
 }