internal void OnVendorRowClicked(VendorItemRow vendorItemRow) { if (selectedRow) { selectedRow.HideSelection(); } selectedRow = vendorItemRow; selectedRow.ShowSelection(); btnBuy.interactable = CanBuySelectedItem(); btnSell.interactable = CanSellSelectedItem(); }
internal void Show(int npcId, string npcName, string shopName, int[] itemId, int[] itemPrice, int[] itemStock) { vendorActive = true; // ensure we update the can buy / can sell states // by clearing out previous state. But keep the last ID so we can re-select it. var previousSelection = ClearSelection(); if (!itemManager) { itemManager = FindObjectOfType <ItemManager>(); } targetNpcId = npcId; if (!string.IsNullOrEmpty(shopName)) { lblShopName.text = shopName; } gameObject.SetActive(true); while (itemRows.Count < itemId.Length) { var itemRow = Instantiate(vendorItemRowPrefab, itemsPanel).GetComponent <VendorItemRow>(); itemRows.Add(itemRow); } for (var i = 0; i < itemRows.Count; ++i) { var active = i < itemId.Length; itemRows[i].gameObject.SetActive(active); if (active) { var item = itemManager.GetItemById(itemId[i]); itemRows[i].SetData(item, itemPrice[i], itemStock[i]); if (previousSelection == itemRows[i].Item.Id) { selectedRow = itemRows[i]; selectedRow.ShowSelection(); } } } btnBuy.interactable = CanBuySelectedItem(); btnSell.interactable = CanSellSelectedItem(); }