55 lines
1.6 KiB
C#
55 lines
1.6 KiB
C#
using System;
|
||
using RR.Common.Managers;
|
||
using RR.Game2D.Core.Managers;
|
||
using TMPro;
|
||
using UnityEngine;
|
||
|
||
public class UICreditsTextController : MonoBehaviour
|
||
{
|
||
// UI elements
|
||
[SerializeField] private TextMeshProUGUI livesIncreaseText;
|
||
[SerializeField] private TextMeshProUGUI livesText;
|
||
|
||
// Strings to display
|
||
[SerializeField] private string livesIncreaseString = "{0}";
|
||
[SerializeField] private string livesString = "У вас будет {0}";
|
||
|
||
private GameManager _gameManager;
|
||
private SettingsManager _settingsManager;
|
||
|
||
private void Start()
|
||
{
|
||
_gameManager = GameManager.Instance;
|
||
|
||
if (_gameManager == null) return;
|
||
|
||
_settingsManager = _gameManager.Settings;
|
||
|
||
if (_settingsManager == null) _settingsManager = SettingsManager.Instance;
|
||
|
||
UpdateLivesText(_gameManager.MaxLives);
|
||
UpdateLivesIncreaseText();
|
||
|
||
_gameManager.MaxLivesChanged += (UpdateLivesText);
|
||
_gameManager.Settings.OnSettingsLoaded += UpdateLivesIncreaseText;
|
||
_gameManager.Settings.OnSettingsSaved += UpdateLivesIncreaseText;
|
||
}
|
||
|
||
private void OnDestroy()
|
||
{
|
||
if (_gameManager == null) _gameManager = GameManager.Instance;
|
||
|
||
if (_gameManager != null) _gameManager.MaxLivesChanged -= UpdateLivesText;
|
||
}
|
||
|
||
private void UpdateLivesIncreaseText()
|
||
{
|
||
livesIncreaseText.text = string.Format(livesIncreaseString, _settingsManager.GetCurrentGameSettings().livesIncreasedByCredits);
|
||
}
|
||
|
||
private void UpdateLivesText(int newLives)
|
||
{
|
||
livesText.text = string.Format(livesString, newLives);
|
||
}
|
||
}
|