using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; using UnityEngine.UI; public class RocketUpgradePanel : MonoBehaviour { public TMP_Text txtEnergyGain; public TMP_Text txtSpeed; public TMP_Text txtBoostConsumption; public TMP_Text txtLevel; public TMP_Text txtCostGold; public TMP_Text txtCostMetal; public Button btn_upgrade; RocketLevel CurrentLevel,NextLevel; SkinShopItemData selectedRocket; public bool Affordable => DBmanager.Metal >= NextLevel.metalCost && DBmanager.Coins >= NextLevel.goldCost; void Awake(){ btn_upgrade.onClick.AddListener(OnUpgrade); } public void Show(RocketLevel currentLevel, RocketLevel nextLevel, SkinShopItemData rocketData){ CurrentLevel = currentLevel; NextLevel = nextLevel; selectedRocket = rocketData; txtLevel.text = "Level " +currentLevel.Level; txtEnergyGain.text = $"{currentLevel.moonMultiplier} Per moon"; txtSpeed.text = $"{currentLevel.speedMultiplier*100}%"; txtBoostConsumption.text = $"{currentLevel.boostConsumption*100}%"; if(nextLevel != null){ txtLevel.text += $" -> Level {nextLevel.Level}"; txtEnergyGain.text += $" -> {nextLevel.moonMultiplier}"; txtSpeed.text += $" -> {nextLevel.speedMultiplier*100}%"; txtBoostConsumption.text += $" -> {nextLevel.boostConsumption*100}%"; } btn_upgrade.interactable = Affordable; txtCostGold.text = nextLevel.goldCost.ToString(); txtCostMetal.text = nextLevel.metalCost.ToString(); txtCostGold.transform.parent.gameObject.SetActive(nextLevel.goldCost > 0); txtCostMetal.transform.parent.gameObject.SetActive(nextLevel.metalCost > 0); gameObject.SetActive(true); } void OnUpgrade(){ if(!Affordable){ MessageDialog.instance.ShowMessage("Error","Not enough resources to upgrade."); return; } DBmanager.UpgradeRocket(selectedRocket.name, NextLevel); SkinShopManager.instance.Populate(); MessageDialog.instance.ShowMessage("Success","Rocket Upgraded Successfully!"); AudioManager.instnace.ChestOpen(); Hide(); } public void Hide(){ gameObject.SetActive(false); } }