/// <summary> /// Updates shown text /// </summary> public IEnumerator UpdateUITexts() { yield return(new WaitForSeconds(Time.deltaTime)); ShopTextController.itemName = selectedItem.name.Replace("Content", ""); ShopTextController.SetUpgradeLevel(selectedUpgradeLevel); ShopTextController.UpdateTexts(); }
/// <summary> When shop item is clicked, sets reference of selectedItem and make it active. </summary> /// <param name="item"></param> public void SelectItem(GameObject shopItem) { selectedUpgradeLevel = 1; ShopTextController.SetUpgradeLevel(selectedUpgradeLevel); foreach (var item in shopItems) { item.SetActive(false); } selectedItem = null; selectedItem = shopItem; StartCoroutine(UpdateUITexts()); selectedItem.SetActive(true); }
/// <summary> /// /// </summary> public void BuyUpgrade(string upgradeStatName) { string fullItemName = ShopTextController.itemName + ShopTextController.GetUpgradeLevel(); int basicValue = 10; int level = PlayerPrefs.GetInt(fullItemName + upgradeStatName + "Lvl", 1); int cost = basicValue * level; int playerMoneys = PlayerPrefs.GetInt("Money", 0); if (playerMoneys < cost) { return; } switch (upgradeStatName) { case "Range": { PlayerPrefs.SetFloat(fullItemName + upgradeStatName, PlayerPrefs.GetFloat(fullItemName + upgradeStatName) + ShopTextController.RangeUpgradeTick); break; } case "FireRate": { PlayerPrefs.SetFloat(fullItemName + upgradeStatName, PlayerPrefs.GetFloat(fullItemName + upgradeStatName) + ShopTextController.FireRateUpgradeTick); break; } case "DamageOverTime": { PlayerPrefs.SetInt(fullItemName + upgradeStatName, PlayerPrefs.GetInt(fullItemName + upgradeStatName) + ShopTextController.DamageOverTimeUpgradeTick); break; } case "SlowPercentage": { PlayerPrefs.SetFloat(fullItemName + upgradeStatName, PlayerPrefs.GetFloat(fullItemName + upgradeStatName) + ShopTextController.SlowPercentageUpgradeTick); break; } case "Damage": { PlayerPrefs.SetInt(fullItemName + upgradeStatName, PlayerPrefs.GetInt(fullItemName + upgradeStatName) + ShopTextController.DamageUpgradeTick); break; } case "Speed": { PlayerPrefs.SetFloat(fullItemName + upgradeStatName, PlayerPrefs.GetFloat(fullItemName + upgradeStatName) + ShopTextController.SpeedUpgradeTick); break; } case "ExplosionRadius": { PlayerPrefs.SetFloat(fullItemName + upgradeStatName, PlayerPrefs.GetFloat(fullItemName + upgradeStatName) + ShopTextController.ExplosionRadiusUpgradeTick); break; } } PlayerPrefs.SetInt(fullItemName + upgradeStatName + "Lvl", level + 1); PlayerPrefs.SetInt("Money", playerMoneys - cost); UpdateMoneyText(); //ShopTextController.UpdateTexts(); StartCoroutine(UpdateUITexts()); }