Beispiel #1
0
    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);
        }
    }
Beispiel #2
0
    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;
    }
Beispiel #3
0
    private void Start()
    {
        InitializeData();

        AudioManager.GetInstance().NotifyAudioSettings(settingsData);
        AudioManager.GetInstance().currentMusic = AudioManager.GetInstance().PlaySound(AudioManager.MENU_SONG);
        PersistentPrefs.GetInstance().SetUnlockableAspects();

        timedReward_c = DailyReward_C();
        StartCoroutine(timedReward_c);

        List <PersistentPrefs.Reward> rewards = PersistentPrefs.GetInstance().GetAllRewards();

        foreach (PersistentPrefs.Reward r in rewards)
        {
            GameObject obj = Instantiate(rewardPrefab);
            obj.transform.SetParent(availableRewardsParent);
            obj.transform.localScale = new Vector3(1, 1, 1);
            switch (r.type)
            {
            case PersistentPrefs.RewardType.GRAVITY_POINT:
                obj.GetComponentInChildren <Text>().text        = r.amount.ToString();
                obj.GetComponentsInChildren <Image>()[1].sprite = PersistentPrefs.GetInstance().gravityPointsIcon;
                break;

            case PersistentPrefs.RewardType.GRAVITON:
                obj.GetComponentInChildren <Text>().text        = r.amount.ToString();
                obj.GetComponentsInChildren <Image>()[1].sprite = PersistentPrefs.GetInstance().gravitonsIcon;
                break;

            case PersistentPrefs.RewardType.ASPECT:
                GameObject aspectRef = SharedUtilities.GetInstance().GetGameObjectsInChildrenWithTag(obj, "Preview")[0];
                aspectRef.SetActive(true);
                obj.GetComponentInChildren <Text>().text         = aspectData.AspectStringFromId(r.id);
                aspectRef.GetComponent <MeshRenderer>().material = PersistentPrefs.GetInstance().GetAspectWithId(r.id).UI_material;
                availableAspectRewardRefs.Add(aspectRef);
                break;
            }
            availableRewards.Add(r.id, obj);
        }
    }