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