Esempio n. 1
0
        /// <summary>
        /// Сравнивание статусов персонажа и носилок
        /// </summary>
        /// <param name="stretcher">носилки</param>
        protected void CompareStatuses(Stretcher stretcher)
        {
            // Если цветовые статусы не совпадают и используются обычные носилки
            if (_status != stretcher.Status && stretcher.IsSuper == false)
            {
                // Уменьшаем прочность носилок (с учетом уровня носилок)
                stretcher.ChangeStrength(_weight * (-1) + (int)Mathf.Pow(stretcher.StretcherLevel, 2));
                // Проверяем прочность
                stretcher.CheckStrength();

                // Немного увеличиваем счет уровня
                _levelManager.ChangeScore(_weight / 10);
            }
            else
            {
                // Увеличиваем счет уровня с бонусом
                _levelManager.ChangeScore(_weight / 2 + 15);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Отображение результата уровня
        /// </summary>
        public void ShowResult()
        {
            // Отключаем фоновую музыку
            _ = StartCoroutine(_backgroundMusic.ChangeVolume(-0.1f, x => x > 0));

            // Отображаем необходимые элементы меню
            _menuItems[(int)MenuItems.Blackout].SetActive(true);
            _menuItems[(int)MenuItems.Characters].SetActive(true);
            _menuItems[(int)MenuItems.Menu].SetActive(true);
            _menuItems[(int)MenuItems.Results].SetActive(true);

            // Обновляем общее количество пойманных персонажей
            PlayerPrefs.SetInt("victims", PlayerPrefs.GetInt("victims") + _levelManager.SavedVictims);

            if (LevelManager.GameMode == LevelManager.GameModes.Victory)
            {
                // Удваиваем набранные очки
                _levelManager.ChangeScore(_levelManager.Score);

                // Отображаем панель победы
                _menuItems[(int)MenuItems.Victory].SetActive(true);

                // Устанавливаем звук и воспроизводим
                _audioResults.clip = _audioClips[(int)AudioClips.Victory];
                _playingResults.PlaySound();

                var progress = PlayerPrefs.GetInt("progress");
                // Если прогресс викторины не превышает номер уровня
                if (progress <= LevelSelection.LevelNumber)
                {
                    // Увеличиваем прогресс
                    PlayerPrefs.SetInt("progress", progress + 1);
                }

                // Увеличиваем общий и текущий счет
                PlayerPrefs.SetInt("total-score", PlayerPrefs.GetInt("total-score") + _levelManager.Score);
                PlayerPrefs.SetInt("current-score", PlayerPrefs.GetInt("current-score") + _levelManager.Score);

                AchievementPerLevel();

                // Отображаем счетчик очков
                _ = StartCoroutine(ScoreCounter());
            }
            else
            {
                // Отображаем панель проигрыша
                _menuItems[(int)MenuItems.Lose].SetActive(true);

                // Устанавливаем звук и воспроизводим
                _audioResults.clip = _audioClips[(int)AudioClips.Lose];
                _playingResults.PlaySound();
            }
        }