using System.Text;
using TMPro;
using UnityEngine;
public class DifficultyView : MonoBehaviour
{
public TextMeshProUGUI label;
StringBuilder sb;
private void OnEnable()
{
SettingsManager.OnSettingsChanged.AddListener(RefreshView);
PaymentSystem.onCoinAdded += RefreshView;
sb = new StringBuilder();
RefreshView();
}
private void OnDisable()
{
SettingsManager.OnSettingsChanged.RemoveListener(RefreshView);
PaymentSystem.onCoinAdded -= 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 = PaymentSystem.PulsesCounter;
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();
}
}