예제 #1
0
    private IEnumerator StartAnimationLevelingUp(long oldPoints)
    {
        for (int i = 1; i <= 3; i++)
        {
            if (listNewStatuses.Contains(statusTexts.Length - i + 1))
            {
                yield return(StartCoroutine(AnimationTextXPos(statusTexts[i - 1])));

                AudioManager.instance.Play("ExpGain1");
                long newPoints = oldPoints + PointsUtility.GetStatusPointsSum(statusTexts.Length - i + 1, playerStatus.GetResultVariable(statusTexts.Length - i + 1));
                yield return(StartCoroutine(AnimationProgressBar(oldPoints, newPoints)));

                oldPoints = newPoints;
                AudioManager.instance.Stop("ExpGain1");
            }
        }

        for (int i = 0; i < 3; i++)
        {
            if (listNewMoney.Contains(i))
            {
                int newMoney = oldMoney + playerStatus.GetMoneyArray()[i];
                yield return(StartCoroutine(AnimationTextXPos(moneyTexts[i])));

                yield return(StartCoroutine(AnimationTextIncreaseValue(moneyText, MONEY_LABEL_PREFIX, oldMoney, newMoney)));

                oldMoney = newMoney;
            }
        }

        OnAnimationEnd();
    }
    /// <summary>
    /// Записываем всё, что игрок получил за прохождение
    /// </summary>
    private void FixPlayerResults(long oldPoints)
    {
        PointsUtility.AddLevelProgress(niceCounter, greatCounter, perfectCounter);
        long newPoints = GlobalVars.instance.GetPoints();

        GServiceManager.instance.AddLevelToLeaderboard(PointsUtility.GetLevel());

        moneyGotFromLevel  = MoneyUtilities.AddMoneyForLevels(PointsUtility.GetLevelDifference(oldPoints, newPoints));
        moneyGotFromScore  = MoneyUtilities.AddMoneyForScore(currentScore);
        moneyGotFromStreak = MoneyUtilities.AddMoneyForPerfectStreak(perfectStreak);
    }
예제 #3
0
    /// <summary>
    /// Анимация заполнения прогресс бара
    /// </summary>
    private IEnumerator AnimationProgressBar(long oldPoints, long newPoints)
    {
        float fOldPoints = oldPoints;
        float fPoints    = newPoints;

        float fPointsDiffer = fPoints - fOldPoints;
        float fPointsToAdd  = fPointsDiffer / (millisecondsPerProgressBarFill / millisecondsPerTickLevelingUp);

        while (fOldPoints < fPoints)
        {
            SetProgressBarValue(fOldPoints);
            fOldPoints += fPointsToAdd;
            if (PointsUtility.GetLevel(fOldPoints) != PointsUtility.GetLevel(fPoints))
            {
                AudioManager.instance.Play("LevelUp1");
            }

            yield return(new WaitForSecondsRealtime(millisecondsPerTickLevelingUp / 1000f));
        }
    }
예제 #4
0
 /// <summary>
 /// Устанавливает progressBar с соответсвием прогресса уровня. Показывает уровень игрока. Данные из очков (long)
 /// </summary>
 private void SetProgressBarValue(long points)
 {
     SetProgressBarValue(PointsUtility.GetLevelPercent(points), PointsUtility.GetLevel(points));
 }
예제 #5
0
 /// <summary>
 /// Устанавливает progressBar с соответсвием прогресса уровня. Показывает уровень игрока. Данные из очков (float)
 /// </summary>
 private void SetProgressBarValue(float fPoints)
 {
     SetProgressBarValue(PointsUtility.GetLevelPercent(fPoints), PointsUtility.GetLevel(fPoints));
 }
예제 #6
0
 /// <summary>
 /// Устанавливает progressBar с соответсвием прогресса уровня. Показывает уровень игрока. Локальные данные
 /// </summary>
 private void SetProgressBarValue()
 {
     progressBarFront.fillAmount = PointsUtility.GetLevelPercent();
     levelText.text = PointsUtility.GetLevel().ToString();
 }