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); }
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); }
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]); * } */ }