using System.Collections; using System.Collections.Generic; using System.Text; using TMPro; using UnityEngine; public class DifficultyView : MonoBehaviour { public TextMeshProUGUI label; StringBuilder sb; private void OnEnable() { SettingsManager.OnSettingsChanged.AddListener(RefreshView); SingleWallet.onCoinAdded.AddListener(RefreshView); sb = new StringBuilder(); RefreshView(); } private void OnDisable() { SettingsManager.OnSettingsChanged.RemoveListener(RefreshView); SingleWallet.onCoinAdded.RemoveListener(RefreshView); } private void RefreshView() { sb.Clear(); string difficultyType = SettingsManager.GetString("BaseBotDifficulty", "Обычная"); switch (difficultyType) { case "Обычная": SetNormalDificultyView(); break; case "Повышенная": SetUpgradedDificultyView(); break; case "Фиксированная": SetFixedDificultyView(); break; } } private void RefreshView(int newCount) => RefreshView(); private void SetNormalDificultyView() { sb.AppendLine("-Обычная. "); sb.AppendLine("-После победы над боссом сложность станет повышенной. "); sb.AppendLine($"-Текущая сложность ботов: {SettingsManager.GetString("Difficulty", "?")}."); sb.AppendLine("-Сейчас босс ходит вторым, что повышает шанс игрока на победу."); label.text = sb.ToString(); } private void SetUpgradedDificultyView() { int pulses = PlayerPrefs.GetInt("PulsesCounter", 0); int pulsesToReset = PlayerPrefs.GetInt("PulsesToResetDifficulty", 0); sb.AppendLine("-Повышенная. "); sb.AppendLine($"-Счетчик импульсов: {pulses}/{pulsesToReset}. "); sb.AppendLine($"-Текущая сложность ботов: Сложная."); sb.AppendLine($"-Сложность понизится через: {pulsesToReset - pulses} импульсов. "); sb.AppendLine("-Сейчас босс ходит первым, что понижает шанс игрока на победу."); label.text = sb.ToString(); ///ТУТ НАДО БРАТЬ МАКСИМАЛЬНУЮ НАПРИМЕР ИЗ МЕНЕДЖЕРА СЛОЖНОСТЕЙ } private void SetFixedDificultyView() { sb.AppendLine("-Фиксированная. "); sb.AppendLine($"-Текущая сложность ботов: {SettingsManager.GetString("Difficulty", "?")}."); sb.AppendLine("-Сложность берется из настройки \"Сложность ботов\" и не меняется в зависимости от монет и счетчика импульсов."); sb.AppendLine("-Босс ходит первым."); label.text = sb.ToString(); } }