示例#1
0
    // Odebere předmět z obchodu a hráči peníze a přidá předmět hráčovi do inventáře
    public void BuyItem(int itemID)
    {
        InventorySlot inventorySlot = _secondaryShopInventoryContainer.GetSlotByItemID(itemID);

        if (_playerInventoryContainer.Coins < inventorySlot.ItemObject.price)
        {
            return;
        }

        if (inventorySlot.ItemObject.type == ItemType.Consumable)
        {
            // infinite stock, do nothing
        }
        else if (_secondaryShopInventoryContainer.RemoveItem(inventorySlot.ItemObject.itemID))
        {
            _slotHolder.transform.GetChild(inventorySlot.SlotHolderChildPosition).gameObject.SetActive(false);

            if (_secondaryShopInventoryContainer.Slots.Count > 0)
            {
                DisplayInfo(_secondaryShopInventoryContainer.Slots[0].ItemObject.itemID);
            }
        }

        _playerInventoryContainer.AddItem(inventorySlot.ItemObject, 1);

        RemoveCoinsFromPlayer(inventorySlot.ItemObject.price);
    }
示例#2
0
    // Spotřebuje předmět ve slotu
    private void ConsumeItemInSlot(InventorySlot inventorySlot)
    {
        bool consumed = false;

        if (inventorySlot.ItemObject.type == ItemType.Consumable) // ADD more categories
        {
            ConsumableObject consumable = (ConsumableObject)inventorySlot.ItemObject;

            consumed = _player.RestoreHealth(consumable.healthRegen);
        }

        if (consumed)
        {
            GameObject slot = _slotHolder.transform.GetChild(inventorySlot.SlotHolderChildPosition).gameObject;

            if (_playerInventoryContainer.RemoveItem(inventorySlot.ItemObject.itemID))
            {
                slot.SetActive(false);

                if (_playerInventoryContainer.Slots.Count > 0)
                {
                    DisplayInfo(_playerInventoryContainer.Slots[0].ItemObject.itemID);
                }
            }
            else
            {
                if (inventorySlot.Amount > 1)
                {
                    slot.GetComponentInChildren <TextMeshProUGUI>().enabled = true;
                    slot.GetComponentInChildren <TextMeshProUGUI>().text    = inventorySlot.Amount.ToString();
                }
                else
                {
                    slot.GetComponentInChildren <TextMeshProUGUI>().enabled = false;
                }
            }
        }
    }