Esempio n. 1
0
    public void Apply()
    {
        binder           = GetComponentInParent <UIDataBinder>();
        experiencePoints = binder.GetExperiencePoints();

        levelIndicator = levelIndicatorObject.GetComponent <LevelIndicator>();
        levelIndicator.ApplyChanges(experiencePoints.level);

        controller.SetFill(experiencePoints.currentProgress);

        switch (controller.FillType)
        {
        case BarFillType.Static:
            binder.SaveExperience();
            controller.SetFill(experiencePoints.currentProgress);
            controller.UpdateIndicator(experiencePoints.level);
            break;

        case BarFillType.Animated:
            if (experiencePoints.nextProgress != experiencePoints.currentProgress)
            {
                StartCoroutine(AnimateBar());
            }
            break;

        default:
            throw new System.Exception("LevelBarController::Apply() called BarFillController::FillType and it returned null.");
        }
    }
Esempio n. 2
0
    public ExperiencePointsData GetExperiencePoints()
    {
        //Calculate new values
        ExperiencePointsData xp = new ExperiencePointsData
        {
            level           = CalculateCurrentLevel(PlayerData.instance.GetPlayerXp()),
            currentProgress = CalculateProgress(PlayerData.instance.GetPlayerXp()),
            nextProgress    = CalculateProgress(PlayerData.instance.GetPlayerXp() +
                                                PlayerData.instance.GetPlayerXpAfterLevel()),
            claimedExperiencePoints = PlayerData.instance.GetPlayerXpAfterLevel()
        };

        return(xp);
    }
Esempio n. 3
0
    public void SaveExperience()
    {
        //Write to file
        PlayerData.instance.SetPlayerLevel(CalculateCurrentLevel(PlayerData.instance.GetPlayerXp()));
        PlayerData.instance.SetPlayerXp(PlayerData.instance.GetPlayerXp() +
                                        PlayerData.instance.GetPlayerXpAfterLevel());
        PlayerData.instance.SetPlayerXpAfterLevel(0);

        PlayerData.instance.SavePlayer();

        ExperiencePointsData write = new ExperiencePointsData
        {
            level           = CalculateCurrentLevel(PlayerData.instance.GetPlayerXp()),
            currentProgress = CalculateProgress(PlayerData.instance.GetPlayerXp()),
            nextProgress    = CalculateProgress(PlayerData.instance.GetPlayerXp() +
                                                PlayerData.instance.GetPlayerXpAfterLevel()),
            claimedExperiencePoints = PlayerData.instance.GetPlayerXpAfterLevel()
        };
    }
Esempio n. 4
0
    private IEnumerator AnimateBar()
    {
        //Wait half seconds
        yield return(new WaitForSeconds(0.5f));

        //Start XP Text Animation
        controller.SetXPText(experiencePoints.claimedExperiencePoints);

        //Set Next Data
        binder.SaveExperience();

        //Update XP Cache
        experiencePoints = binder.GetExperiencePoints();

        //Wait half seconds
        yield return(new WaitForSeconds(0.5f));

        //Call Animation
        StartCoroutine(controller.AnimateFill(experiencePoints.currentProgress));
    }