public void EarnReward(bool restartTimer) { PersistentPrefs.Reward reward = PersistentPrefs.GetInstance().GetRandomReward(); switch (reward.type) { case PersistentPrefs.RewardType.ASPECT: aspectData = SaveManager.GetInstance().LoadPersistentData(SaveManager.ASPECTDATA_PATH).GetData <PlayerAspectData>(); rewardInfoText.text = aspectData.AspectStringFromId(reward.id); rewardIcon.sprite = PersistentPrefs.GetInstance().transparentIcon; rewardText.text = "Aspect unlocked !"; obtainedAspect = Instantiate(PersistentPrefs.GetInstance().GetAspectWithId(reward.id).prefab); obtainedAspect.transform.SetParent(rewardIcon.transform); obtainedAspect.transform.localScale = new Vector3(200, 200, 200); obtainedAspect.transform.localPosition = new Vector3(0, 0, -20); StartCoroutine(FadeInObtainedAspect()); aspectData.UnlockAspect(reward.id); SaveManager.GetInstance().SavePersistentData(aspectData, SaveManager.ASPECTDATA_PATH); GameObject tmp = availableRewards[reward.id]; Debug.Log(availableAspectRewardRefs.Remove(SharedUtilities.GetInstance().GetGameObjectsInChildrenWithTag(tmp, "Preview")[0])); Destroy(tmp); availableRewards.Remove(reward.id); PersistentPrefs.GetInstance().SetUnlockableAspects(); //TODO reward break; case PersistentPrefs.RewardType.GRAVITON: rewardIcon.sprite = PersistentPrefs.GetInstance().gravitonsIcon; rewardInfoText.text = reward.amount.ToString(); rewardText.text = "Gravitons earned !"; currencyData.gravitons += reward.amount; SaveManager.GetInstance().SavePersistentData(currencyData, SaveManager.CURRENCY_PATH); break; case PersistentPrefs.RewardType.GRAVITY_POINT: rewardIcon.sprite = PersistentPrefs.GetInstance().gravityPointsIcon; rewardInfoText.text = reward.amount.ToString(); rewardText.text = "Gravity Points earned !"; currencyData.gravityPoints += reward.amount; SaveManager.GetInstance().SavePersistentData(currencyData, SaveManager.CURRENCY_PATH); break; } rewardPanel.SetActive(true); instantiatedEff?.SetActive(false); if (restartTimer) { servData.lastRewardClaimed = System.DateTime.Now; SaveManager.GetInstance().SavePersistentData(servData, SaveManager.SERVICES_PATH); } }
public void BuyHighlightedProduct() { currencyData.gravitons -= (int)highlightedProduct.price; switch (highlightedProduct.type) { case StoreProduct.ProductType.GRAVITY_POINT: currencyData.gravityPoints += highlightedProduct.amount; iconToast.EnqueueToast(highlightedProduct.amount + " Gravity Points purchased", GPSprite, 1.5f); break; case StoreProduct.ProductType.ASPECT: aspectData.UnlockAspect(highlightedProduct.id); SaveManager.GetInstance().SavePersistentData(aspectData, SaveManager.ASPECTDATA_PATH); GetProductWithID(highlightedProduct.id)?.SetProductState(StoreProduct.ProductState.PURCHASED); toast.ShowToast("Aspect purchased: " + aspectData.AspectStringFromId(highlightedProduct.id), null, 2f); break; case StoreProduct.ProductType.POWER_UP: if (highlightedProduct.id.Equals("GRB4")) { skillsData.gammaRayBurstPoints = 4; SaveManager.GetInstance().SavePersistentData(skillsData, SaveManager.SKILLSDATA_PATH); GetProductWithID("GRB4")?.SetProductState(StoreProduct.ProductState.CONSUMED); iconToast.EnqueueToast("GRB 4 purchased", grbSprite, 2f); } else if (highlightedProduct.id.Equals("MSU")) { skillsData.magneticShieldBundleUnlocked = true; SaveManager.GetInstance().SavePersistentData(skillsData, SaveManager.SKILLSDATA_PATH); GetProductWithID("MSU")?.SetProductState(StoreProduct.ProductState.CONSUMED); iconToast.EnqueueToast("Magnetic shield bundle purchased", shieldSprite, 1.5f); } break; default: currencyData.gravitons += (int)highlightedProduct.price; break; } SaveManager.GetInstance().SavePersistentData(currencyData, SaveManager.CURRENCY_PATH); gravitonsText.text = currencyData.gravitons.ToString(); disclaimerPanel.SetActive(false); highlightedProduct = null; }