Ejemplo n.º 1
0
    public void AddItem(Item item)
    {
        bool itemAlreadyInInventory = false;

        foreach (Item inventoryItem in itemList)
        {
            if (inventoryItem.itemType == item.itemType)
            {
                item.amount           += 1;
                itemAlreadyInInventory = true;
                Debug.Log(item.amount);
                break;
            }
        }
        if (!itemAlreadyInInventory)
        {
            item.icon    = itemIconDB.GetSprite(item.itemType);
            item.filling = itemIconDB.GetFullness(item.itemType);
            item.isdrink = itemIconDB.GetWater(item.itemType);
            itemList.Add(item);
        }
        Debug.Log(item);
        OnItemListChanged?.Invoke(this, EventArgs.Empty);
        SaveList();
    }
Ejemplo n.º 2
0
        // Loop through ShopItemsDB and set up item slots for each entry
        private void SetupShopMenuSlots()
        {
            int        i        = 0;
            ItemSlotUI itemSlot = null;

            foreach (Item.ItemType itemType in shopItemsDB.GetItems())
            {
                if (itemSlotPool.childCount > 0)
                {
                    // Pull from pool
                    itemSlot = itemSlotPool.GetChild(0).GetComponent <ItemSlotUI>();
                    itemSlot.transform.SetParent(shopContent, false);
                }
                else
                {
                    // Instantiate new entries
                    itemSlot = Instantiate(itemSlotPrefab, shopContent);
                }

                // Add listener for buy button
                Button slotButton = itemSlot.GetButton();
                slotButton.onClick.RemoveAllListeners();
                int itemCost = shopItemsDB.GetItemCost(i);
                slotButton.onClick.AddListener(() => BuyItem(itemType, itemCost));

                // Supposed to separate camel case?
                string itemName = Regex.Replace(itemType.ToString(), "(//B[A-Z])", " $1");
                itemSlot.SetupItemEntry(itemIconDB.GetSprite(itemType), itemName, itemCost, true);

                // Position slot in content window
                itemSlot.transform.localPosition = new Vector2(itemSlot.transform.localPosition.x, i * -itemSpacing);
                itemSlot.gameObject.SetActive(true);

                i++;

                //  Resize shop menu
                int contentHeight = i * itemSpacing;
                shopContent.sizeDelta = new Vector2(shopContent.sizeDelta.x, contentHeight);
            }
        }