private void UpdateStatsBasedOnUnlockedUpgrades() { List <UpgradeScriptableObject> applicableUpgrades = GlobalPlayerProgress.getUnlockedUpgradesForSpecificTower(towerData); foreach (var upgrade in applicableUpgrades) { foreach (UpgradeScriptableObject.StatEffect effect in upgrade.upgradeEffects) { switch (effect.affects) { case UpgradeScriptableObject.UpgradeEffect.Damage: damage = GlobalPlayerProgress.CalculateValueAfterUpgrade(damage, effect); break; case UpgradeScriptableObject.UpgradeEffect.Cost: break; case UpgradeScriptableObject.UpgradeEffect.Range: range = GlobalPlayerProgress.CalculateValueAfterUpgrade(range, effect); break; case UpgradeScriptableObject.UpgradeEffect.FiringRate: firingRate = GlobalPlayerProgress.CalculateValueAfterUpgrade(firingRate, effect); break; } } } }
// Start is called before the first frame update void Start() { _upgradesPanel = GameObject.Find("GlobalUpgrades"); _upgradesPanelPlayerWallet = GameObject.Find("PlayerWallet"); //Load all upgrades into the Global Player Progress class PlayerProgress playerProgress = new PlayerProgress(); playerProgress = playerProgress.loadProgress(); Debug.Log("Finished loading"); GlobalPlayerProgress.UpdateUpgradePanel(playerProgress); GlobalPlayerProgress.UpdatePlayerWallet(playerProgress, _upgradesPanelPlayerWallet); _upgradesPanel.SetActive(false); unlockedLevels = GlobalPlayerProgress.GetUnlockedLevels(playerProgress); if (unlockedLevels.Count == 0) { unlockedLevels.Add(0); } foreach (int levelId in unlockedLevels) { GameObject levelBtn = GameObject.Find("Level_" + levelId + "_Btn"); levelBtn.GetComponent <Button>().onClick.AddListener(() => showPanelForLevel(levelId)); Addressables.LoadAssetAsync <Sprite>("Assets/Emerald Treasure/images/ui_seekbar_tick.png").Completed += delegate(AsyncOperationHandle <Sprite> handle) { levelBtn.GetComponent <Image>().sprite = handle.Result; }; } }
private void UnlockUpgradeIfNotUnlocked() { if (!GlobalPlayerProgress.UnlockedUpgrades.Contains(upgrade)) { bool canPurchase = isUpgradePurchasable(); if (canPurchase) { foreach (KeyValuePair <StringLiterals.singularItemDrops, int> drops in upgrade.costs) { GlobalPlayerProgress.playerDrops[drops.Key] -= drops.Value; } upgrade.isUnlocked = true; gameObject.GetComponent <Image>().sprite = upgrade.UpgradeIcon; GlobalPlayerProgress.UnlockedUpgrades.Add(upgrade); PlayerProgress currentPlayerProgress = new PlayerProgress(); currentPlayerProgress.saveProgress(); GlobalPlayerProgress.UpdatePlayerWallet(currentPlayerProgress, GameObject.Find("PlayerWallet")); } } }