Exemple #1
0
    //TODO add in filter for things like:
    // only items on display
    // only containers
    // all items
    public void Init(Action <string> callback = null, DialogCanvasController.InventoryFilters filter = DialogCanvasController.InventoryFilters.AllItems, bool enableTransUi = true, InventoryMode displayMode = InventoryMode.Character)
    {
        this.activeFilter = filter;
        this.activeMode   = displayMode;

        this.toggleGroup.characterButtonTx.text = PF_PlayerData.activeCharacter.characterDetails.CharacterName;

        if (callback != null)
        {
            this.callbackAfterUse = callback;
        }

        this.showTransUi = enableTransUi;
        if (enableTransUi)
        {
            ToggleTransUiOn();
        }
        else
        {
            ToggleTransUiOff();
        }

        //only displaying the main currencies (Gold & Gems) for now
        this.currenciesInUse.Clear();
        this.currenciesInUse.Add(GlobalStrings.GOLD_CURRENCY);
        this.currenciesInUse.Add(GlobalStrings.GEM_CURRENCY);

        if (displayMode == InventoryMode.Player)
        {
            if (PF_PlayerData.inventoryByCategory != null && PF_PlayerData.virtualCurrency != null)
            {
                this.itemsToDisplay = PF_PlayerData.inventoryByCategory;
                this.Currencies.Init(PF_PlayerData.virtualCurrency);
            }
            else
            {
                ResetItemTiles();
                return;
            }
        }
        else
        {
            if (PF_PlayerData.characterInvByCategory != null && PF_PlayerData.characterVirtualCurrency != null)
            {
                this.itemsToDisplay = PF_PlayerData.characterInvByCategory;
                this.Currencies.Init(PF_PlayerData.characterVirtualCurrency);
            }
            else
            {
                ResetItemTiles();
                return;
            }
        }

        //reset
        ResetItemTiles();

        string filterName;

        GlobalStrings.INV_FILTER_DISPLAY_NAMES.TryGetValue(filter, out filterName);
        this.StoreName.text = string.Format(GlobalStrings.INV_WINDOW_TITLE, filterName);

        nextPage.interactable = (pageCount > 1);
        prevPage.interactable = false;

        int count = 0;

        foreach (var kvp in this.itemsToDisplay)
        {
            if (count >= this.itemsPerPage)
            {
                break;
            }

            bool addItem = false;
            if (filter == DialogCanvasController.InventoryFilters.Containers)
            {
                if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString()))
                {
                    addItem = true;
                }
                else
                {
                    continue;
                }
            }
            else if (filter == DialogCanvasController.InventoryFilters.Keys)
            {
                if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString()))
                {
                    addItem = true;
                }
                else
                {
                    continue;
                }
            }
            else if (filter == DialogCanvasController.InventoryFilters.UsableInCombat)
            {
                if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString()))
                {
                    addItem = true;
                }
                else
                {
                    continue;
                }
            }
            else if (filter == DialogCanvasController.InventoryFilters.AllItems)
            {
                addItem = true;
            }

            if (addItem == true)
            {
                this.inventory[count].Init();
                this.inventory[count].SetButton(kvp.Value.icon, kvp.Value);
                count++;
            }
        }
        this.gameObject.SetActive(true);
    }
    public void Init(Action <string> callback = null, DialogCanvasController.InventoryFilters filter = DialogCanvasController.InventoryFilters.AllItems)
    {
        foreach (var slot in itemSlots)
        {
            slot.gameObject.SetActive(false);
        }

        if (selectedItem != null)
        {
            selectedItem.Deselect();
            selectedItem = null;
        }

        this.activeFilter = filter;

        if (callback != null)
        {
            this.callbackAfterUse = callback;
        }

        //only displaying the main currencies (Gold & Gems) for now
        this.currenciesInUse.Clear();
        this.currenciesInUse.Add("NT");

        if (PF_PlayerData.inventoryByCategory != null && PF_PlayerData.virtualCurrency != null)
        {
            this.itemsToDisplay = PF_PlayerData.inventoryByCategory;
            //this.Currencies.Init(PF_PlayerData.virtualCurrency);
        }
        else
        {
            return;
        }

        string filterName;
        // GlobalStrings.INV_FILTER_DISPLAY_NAMES.TryGetValue(filter, out filterName);
        //this.StoreName.text = string.Format(GlobalStrings.INV_WINDOW_TITLE, filterName);
        int count = 0;

        foreach (var kvp in this.itemsToDisplay)
        {
            bool addItem = false;
            if (filter == DialogCanvasController.InventoryFilters.Containers)
            {
                if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString()))
                {
                    addItem = true;
                }
                else
                {
                    continue;
                }
            }
            else if (filter == DialogCanvasController.InventoryFilters.Keys)
            {
                if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString()))
                {
                    addItem = true;
                }
                else
                {
                    continue;
                }
            }
            else if (filter == DialogCanvasController.InventoryFilters.UsableInCombat)
            {
                if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString()))
                {
                    addItem = true;
                }
                else
                {
                    continue;
                }
            }
            else if (filter == DialogCanvasController.InventoryFilters.Material)
            {
                if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString()))
                {
                    addItem = true;
                }
                else
                {
                    continue;
                }
            }
            else if (filter == DialogCanvasController.InventoryFilters.AllItems)
            {
                addItem = true;
            }
            if (addItem == true)
            {
                itemSlots[count].gameObject.SetActive(true);
                itemSlots[count].Init();
                itemSlots[count].SetButton(kvp.Value.icon, kvp.Value);

                count++;
            }
        }
        this.gameObject.SetActive(true);
    }
Exemple #3
0
    //TODO add in filter for things like:
    // only items on display
    // only containers
    // all items
    public void Init(Action <string> callback = null, DialogCanvasController.InventoryFilters filter = DialogCanvasController.InventoryFilters.AllItems)
    {
        activeFilter = filter;

        if (callback != null)
        {
            _callbackAfterUse = callback;
        }

        // only displaying the main currencies (Gold & Gems) for now
        currenciesInUse.Clear();
        currenciesInUse.Add(GlobalStrings.GOLD_CURRENCY);
        currenciesInUse.Add(GlobalStrings.GEM_CURRENCY);

        if (PF_PlayerData.inventoryByCategory != null && PF_PlayerData.virtualCurrency != null)
        {
            _itemsToDisplay = PF_PlayerData.inventoryByCategory;
            Currencies.Init(PF_PlayerData.virtualCurrency);
        }
        else
        {
            ResetItemTiles();
            return;
        }

        //reset
        ResetItemTiles();

        string filterName;

        GlobalStrings.INV_FILTER_DISPLAY_NAMES.TryGetValue(filter, out filterName);
        StoreName.text = string.Format(GlobalStrings.INV_WINDOW_TITLE, filterName);

        nextPage.interactable = (_pageCount > 1);
        prevPage.interactable = false;

        int count = 0;

        foreach (var kvp in _itemsToDisplay)
        {
            if (count >= _itemsPerPage)
            {
                break;
            }

            bool addItem = false;
            if (filter == DialogCanvasController.InventoryFilters.Containers)
            {
                if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString()))
                {
                    addItem = true;
                }
                else
                {
                    continue;
                }
            }
            else if (filter == DialogCanvasController.InventoryFilters.Keys)
            {
                if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString()))
                {
                    addItem = true;
                }
                else
                {
                    continue;
                }
            }
            else if (filter == DialogCanvasController.InventoryFilters.UsableInCombat)
            {
                if (string.Equals(kvp.Value.catalogRef.ItemClass, filter.ToString()))
                {
                    addItem = true;
                }
                else
                {
                    continue;
                }
            }
            else if (filter == DialogCanvasController.InventoryFilters.AllItems)
            {
                addItem = true;
            }

            if (addItem)
            {
                inventory[count].Init();
                inventory[count].SetButton(kvp.Value.icon, kvp.Value);
                count++;
            }
        }
        gameObject.SetActive(true);
    }