示例#1
0
    private void SetupShopDetails(Item.HackerRunner hackerOrRunner, bool isInstall = false)
    {
        switch (shopMenu.GetOpenShopTab())
        {
        case "buy":
            GameObject      activeBuyButton            = runnerShopContextBuyBtn;
            TextMeshProUGUI currentBuyPriceAmountField = runnerShopPriceAmountField;
            TextMeshProUGUI currentBuyPriceLabel       = runnerShopPriceLabel;
            if (hackerOrRunner == Item.HackerRunner.Runner)
            {
                runnerShopContextBuyBtn.SetActive(true);
                runnerShopContextSellBtn.SetActive(false);
                runnerShopContextUpgradeBtn.SetActive(false);
                runnerShopPriceAmountField.text = item.GetItemPrice().ToString();
                activeBuyButton            = runnerShopContextBuyBtn;
                currentBuyPriceAmountField = runnerShopPriceAmountField;
                currentBuyPriceLabel       = runnerShopPriceLabel;
            }
            else if (hackerOrRunner == Item.HackerRunner.Hacker && !isInstall)
            {
                hackerModShopContextBuyBtn.SetActive(true);
                hackerModShopContextSellBtn.SetActive(false);
                hackerModShopContextUpgradeBtn.SetActive(false);
                hackerModShopPriceAmountField.text = item.GetItemPrice().ToString();
                activeBuyButton            = hackerModShopContextBuyBtn;
                currentBuyPriceAmountField = hackerModShopPriceAmountField;
                currentBuyPriceLabel       = hackerModPriceLabel;
            }
            else if (hackerOrRunner == Item.HackerRunner.Hacker && isInstall)
            {
                hackerInstallShopContextBuyBtn.SetActive(true);
                hackerInstallShopContextSellBtn.SetActive(false);
                hackerInstallShopContextUpgradeBtn.SetActive(false);
                hackerInstallShopPriceAmountField.text = item.GetItemPrice().ToString();
                activeBuyButton            = hackerInstallShopContextBuyBtn;
                currentBuyPriceAmountField = hackerInstallShopPriceAmountField;
                currentBuyPriceLabel       = hackerInstallPriceLabel;
            }

            PlayerData playerData1 = FindObjectOfType <PlayerData>();
            if (item.GetItemPrice() > playerData1.GetCreditsAmount())
            {
                // If the item is unaffordable, disable the buy button but show the price fields
                activeBuyButton.GetComponent <Button>().interactable = false;
                currentBuyPriceAmountField.gameObject.SetActive(true);
                currentBuyPriceLabel.gameObject.SetActive(true);
            }
            break;

        case "sell":
            break;

        case "upgrade":
            GameObject      activeUpgradeButton            = runnerShopContextUpgradeBtn;
            TextMeshProUGUI currentUpgradePriceAmountField = runnerShopPriceAmountField;
            TextMeshProUGUI currentUpgradePriceLabel       = runnerShopPriceLabel;
            if (hackerOrRunner == Item.HackerRunner.Runner)
            {
                runnerShopContextBuyBtn.SetActive(false);
                runnerShopContextSellBtn.SetActive(false);
                runnerShopContextUpgradeBtn.SetActive(true);
                runnerShopPriceAmountField.text = shopMenu.GetPrice(item).ToString();
                activeUpgradeButton             = runnerShopContextUpgradeBtn;
                currentUpgradePriceAmountField  = runnerShopPriceAmountField;
                currentUpgradePriceLabel        = runnerShopPriceLabel;
            }
            else if (hackerOrRunner == Item.HackerRunner.Hacker && !isInstall)
            {
                hackerModShopContextBuyBtn.SetActive(false);
                hackerModShopContextSellBtn.SetActive(false);
                hackerModShopContextUpgradeBtn.SetActive(true);
                hackerModShopPriceAmountField.text = shopMenu.GetPrice(item).ToString();
                activeUpgradeButton            = hackerModShopContextUpgradeBtn;
                currentUpgradePriceAmountField = hackerModShopPriceAmountField;
                currentUpgradePriceLabel       = hackerModPriceLabel;
            }
            else if (hackerOrRunner == Item.HackerRunner.Hacker && isInstall)
            {
                hackerInstallShopContextBuyBtn.SetActive(false);
                hackerInstallShopContextSellBtn.SetActive(false);
                hackerInstallShopContextUpgradeBtn.SetActive(true);
                hackerInstallShopPriceAmountField.text = shopMenu.GetPrice(item).ToString();
                activeUpgradeButton            = hackerInstallShopContextUpgradeBtn;
                currentUpgradePriceAmountField = hackerInstallShopPriceAmountField;
                currentUpgradePriceLabel       = hackerInstallPriceLabel;
            }

            PlayerData playerData = FindObjectOfType <PlayerData>();
            if (item.GetCurrentItemLevel() >= item.GetItemMaxLevel())
            {
                // If the item is max level: Disable the button and hide the price fields
                activeUpgradeButton.GetComponent <Button>().interactable = false;
                currentUpgradePriceAmountField.gameObject.SetActive(false);
                currentUpgradePriceLabel.gameObject.SetActive(false);
            }
            else if (shopMenu.GetPrice(item) > playerData.GetCreditsAmount())
            {
                // If the item just is unaffordable, disable the button but display the price
                activeUpgradeButton.GetComponent <Button>().interactable = false;
                currentUpgradePriceAmountField.gameObject.SetActive(true);
                currentUpgradePriceLabel.gameObject.SetActive(true);
            }
            else
            {
                // if the item is affordable and not max level, enable the button and show the price
                activeUpgradeButton.GetComponent <Button>().interactable = true;
                currentUpgradePriceAmountField.gameObject.SetActive(true);
                currentUpgradePriceLabel.gameObject.SetActive(true);
            }
            break;
        }
    }