using UnityEngine; using UnityEngine.Events; public class DifficultyManager : MonoBehaviour { private static DifficultyManager instance; public static DifficultyManager Instance { get { if (instance == null) { instance = FindAnyObjectByType(); if (instance == null) { Debug.LogWarning($"Не найден {typeof(DifficultyManager)}"); } else { instance.currentOpponent = 0; } } return instance; } } public UnityEvent OnVictory = new UnityEvent(); public int currentOpponent = 0; public DifficultyPreset DifficultyPreset => CharactersController.CurrentCharacter.CurrentDifficultyPreset; public DifficultyPreset DummyPreset; public bool dummyBots = false; public void IncreaseDifficulty() { if (currentOpponent + 1 == CharactersController.CharactersAmount)//победили самую большую сложность { OnVictory?.Invoke(); } CharactersController.CurrentCharacter.IncreaseDifficuly();//увеличиваем сложность у того с кем бились currentOpponent = (currentOpponent + 1) % CharactersController.CharactersAmount;//если победили последнего, то возвращаемся на первого } public void DecreaseDifficulty() { CharactersController.CurrentCharacter.DecreaseDifficuly();//уменьшаем сложность у того с кем бились if (currentOpponent != 0) { currentOpponent--; } } public void ResetDifficulty() { currentOpponent = 0; CharactersController.ResetAllCharactersDifficulty(); } public void upgradeFeeshkaDifficulty() { string difficultyMode = SettingsManager.GetString(SettingKey.DIFFICULTY_MODE); //todo: разобраться // if (difficultyMode == "Прохождение") // { // PaymentSystem.ResetPulsesCounter(); // Setting difficultySetting = SettingsManager.Container.TryGetSetting(SettingKeys.DIFFICULTY_MODE); // difficultySetting.StringValue = "Заработок"; // SettingsManager.OnSettingsChanged?.Invoke(); // SettingsManager.SaveContainerToFile(); // GameManager.instance.AdminPanel.GetComponent().RefreshViews(); // print("Сложность повышена"); // } } }