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); }
/// <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)); } }
/// <summary> /// Устанавливает progressBar с соответсвием прогресса уровня. Показывает уровень игрока. Данные из очков (long) /// </summary> private void SetProgressBarValue(long points) { SetProgressBarValue(PointsUtility.GetLevelPercent(points), PointsUtility.GetLevel(points)); }
/// <summary> /// Устанавливает progressBar с соответсвием прогресса уровня. Показывает уровень игрока. Данные из очков (float) /// </summary> private void SetProgressBarValue(float fPoints) { SetProgressBarValue(PointsUtility.GetLevelPercent(fPoints), PointsUtility.GetLevel(fPoints)); }
/// <summary> /// Устанавливает progressBar с соответсвием прогресса уровня. Показывает уровень игрока. Локальные данные /// </summary> private void SetProgressBarValue() { progressBarFront.fillAmount = PointsUtility.GetLevelPercent(); levelText.text = PointsUtility.GetLevel().ToString(); }