public void SelectNode(ShopTradeNode node) { switch (buysellMode) { case ShopScreenMode.Buy: ShopBuyNode buyNode = (ShopBuyNode)node; if (currentPlayer.GetCurrency(buyNode.GetCurrency(), buyNode.GetCost())) { currentPlayer.Inventory.AddItemToInventory(ItemDatabase.NewItem(buyNode.GetOffer())); crystalCounter.SetCounter(currentPlayer.GetCurrencyCount(buyNode.GetCurrency())); } break; case ShopScreenMode.Sell: ShopSellNode sellNode = (ShopSellNode)node; int index = shopSellNodes.IndexOf(sellNode); InventorySlot slot = currentPlayer.Inventory.FindSlotForItem(sellNode.GetItemForSale()); if (slot != null) { Item sold = slot.GetOneItem(); if (sold != null) { for (int i = sellNode.GetValue(); i > 0; i--) { currentPlayer.Inventory.AddItemToInventory(ItemDatabase.NewItem(sellNode.GetCurrency())); } crystalCounter.SetCounter(currentPlayer.GetCurrencyCount(sellNode.GetCurrency())); currentNPC.npcWares.Add(sold); LoadInventories(); if (index == 0) { GamepadInputManager.instance.gamepadInputs[currentPlayer.mPlayerIndex].GetEventSystem().SetSelectedGameObject(sellButton); } else if (index == shopSellNodes.Count) { GamepadInputManager.instance.gamepadInputs[currentPlayer.mPlayerIndex].GetEventSystem().SetSelectedGameObject(shopSellNodes[index - 1].button.gameObject); } else { GamepadInputManager.instance.gamepadInputs[currentPlayer.mPlayerIndex].GetEventSystem().SetSelectedGameObject(shopSellNodes[index].button.gameObject); } } } break; } }