chip-game/Assets/Scripts/Settings/DifficultyView.cs

75 lines
3.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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("-<color=green>Обычная</color>. ");
sb.AppendLine("-После победы над боссом сложность станет <color=red>повышенной</color>. ");
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("-<color=red>Повышенная</color>. ");
sb.AppendLine($"-Счетчик импульсов: {pulses}/{pulsesToReset}. ");
sb.AppendLine($"-Текущая сложность ботов: Сложная.");
sb.AppendLine($"-Сложность <color=green>понизится</color> через: {pulsesToReset - pulses} импульсов. ");
sb.AppendLine("-Сейчас босс ходит первым, что понижает шанс игрока на победу.");
label.text = sb.ToString();
///ТУТ НАДО БРАТЬ МАКСИМАЛЬНУЮ НАПРИМЕР ИЗ МЕНЕДЖЕРА СЛОЖНОСТЕЙ
}
private void SetFixedDificultyView()
{
sb.AppendLine("-<color=orange>Фиксированная</color>. ");
sb.AppendLine($"-Текущая сложность ботов: {SettingsManager.GetString("Difficulty", "?")}.");
sb.AppendLine("-Сложность берется из настройки <color=lightblue>\"Сложность ботов\" и не меняется в зависимости от монет и счетчика импульсов.");
sb.AppendLine("-Босс ходит первым.");
label.text = sb.ToString();
}
}