Пример #1
0
    private void RefreshItemList(Trader trader)
    {
        //first remove all existing griditems in the inventory
        List <GridItem> traderCopy = new List <GridItem>(TraderItemGrid.Items);

        foreach (GridItem item in traderCopy)
        {
            TraderItemGrid.Items.Remove(item);
            GameManager.Inst.UIManager.WindowPanel.InventoryPanel.DestroyItem(item);
        }

        List <GridItemData> items = trader.TraderInventory;

        //now, time to arrange them
        TraderItemGrid.ArrangeGridItems(items);
    }
Пример #2
0
    public void RebuildLoot()
    {
        if (_currentChest == null)
        {
            return;
        }

        //first remove all existing griditems in the backpack
        List <GridItem> chestGridCopy = new List <GridItem>(ChestGrid.Items);

        foreach (GridItem item in chestGridCopy)
        {
            ChestGrid.Items.Remove(item);
            GameManager.Inst.UIManager.WindowPanel.InventoryPanel.DestroyItem(item);
        }

        //fill inventory grid with loot from backpack
        List <GridItemData> chestItems = _currentChest.Items;

        //now, time to arrange them
        ChestGrid.ArrangeGridItems(chestItems);
    }
Пример #3
0
    public void RebuildLoot()
    {
        Character lootTarget = GameManager.Inst.PlayerControl.SelectedPC.MyAI.BlackBoard.InteractTarget;

        if (lootTarget == null)
        {
            return;
        }

        CharacterInventory loot = lootTarget.Inventory;

        //if not looted, generate loot
        if (!lootTarget.IsLooted)
        {
            //first remove all existing griditems in the backpack
            List <GridItem> backpackCopy = new List <GridItem>(BackpackGrid.Items);
            foreach (GridItem item in backpackCopy)
            {
                BackpackGrid.Items.Remove(item);
                GameManager.Inst.UIManager.WindowPanel.InventoryPanel.DestroyItem(item);
            }

            //get a list of loot from item manager, then add them all to the backpack
            List <GridItemData> items = GameManager.Inst.ItemManager.GetNPCLoot(lootTarget);
            //now, time to arrange them
            BackpackGrid.ArrangeGridItems(items);

            lootTarget.IsLooted = true;
        }

        if (lootTarget.CharacterType == CharacterType.Human)
        {
            GameManager.Inst.SoundManager.UI.PlayOneShot(GameManager.Inst.SoundManager.GetClip("OpenLootBody"), 0.1f);
        }
        else
        {
            GameManager.Inst.SoundManager.UI.PlayOneShot(GameManager.Inst.SoundManager.GetClip("OpenLootBodyGore"), 0.4f);
        }

        /*
         *
         * //remove all existing temp slots
         * foreach(TempSlot temp in TempSlots)
         * {
         *      if(temp.Items.Count > 0)
         *      {
         *              GameManager.Inst.UIManager.WindowPanel.InventoryPanel.DestroyItem(temp.Items[0]);
         *              temp.Items.Clear();
         *      }
         * }
         *
         * //fill inventory grid with loot from backpack
         * List<GridItemData> datas = loot.Backpack;
         * foreach(GridItemData data in datas)
         * {
         *      BackpackGrid.AddGridItem(data.Item, data.ColumnPos, data.RowPos, data.Orientation, data.Quantity);
         * }
         *
         * //fill temp slots with loot from bodyslots
         *
         * if(loot.ArmorSlot != null)
         * {
         *      GridItem item = TempSlots[0].LoadGridItem(loot.ArmorSlot.SpriteName, GridItemOrient.Landscape);
         *      item.Item = loot.ArmorSlot;
         *      item.SetQuantity(1);
         *      GameManager.Inst.UIManager.WindowPanel.InventoryPanel.AddItemToTempSlot(item, TempSlots[0]);
         * }
         *
         * if(loot.HeadSlot != null)
         * {
         *      GridItem item = TempSlots[1].LoadGridItem(loot.HeadSlot.SpriteName, GridItemOrient.Landscape);
         *      item.Item = loot.HeadSlot;
         *      item.SetQuantity(1);
         *      GameManager.Inst.UIManager.WindowPanel.InventoryPanel.AddItemToTempSlot(item, TempSlots[1]);
         * }
         *
         *
         * if(loot.RifleSlot != null)
         * {
         *      GridItem item = TempSlots[2].LoadGridItem(loot.RifleSlot.SpriteName, GridItemOrient.Landscape);
         *      item.Item = loot.RifleSlot;
         *      item.SetQuantity(1);
         *      GameManager.Inst.UIManager.WindowPanel.InventoryPanel.AddItemToTempSlot(item, TempSlots[2]);
         * }
         *
         *
         * if(loot.SideArmSlot != null)
         * {
         *      GridItem item = TempSlots[3].LoadGridItem(loot.SideArmSlot.SpriteName, GridItemOrient.Landscape);
         *      item.Item = loot.SideArmSlot;
         *      item.SetQuantity(1);
         *      GameManager.Inst.UIManager.WindowPanel.InventoryPanel.AddItemToTempSlot(item, TempSlots[3]);
         * }
         *
         * if(loot.ThrowSlot != null)
         * {
         *      GridItem item = TempSlots[4].LoadGridItem(loot.ThrowSlot.SpriteName, GridItemOrient.Landscape);
         *      item.Item = loot.ThrowSlot;
         *      item.SetQuantity(1);
         *      GameManager.Inst.UIManager.WindowPanel.InventoryPanel.AddItemToTempSlot(item, TempSlots[4]);
         * }
         *
         * if(loot.ToolSlot != null)
         * {
         *      GridItem item = TempSlots[5].LoadGridItem(loot.ToolSlot.SpriteName, GridItemOrient.Landscape);
         *      item.Item = loot.ToolSlot;
         *      item.SetQuantity(1);
         *      GameManager.Inst.UIManager.WindowPanel.InventoryPanel.AddItemToTempSlot(item, TempSlots[5]);
         * }
         */
    }