/// <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); } }
/// <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(); } }