Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
- завершен спринт 24 марта - 2 апреля с опережением плана и закрытием задач раньше срока - расширена и стабилизирована система призов: добавлены и доработаны QR-tier конфиги, новые типы и модели данных, сохранение `qrCodes` в `prizes.json`, fallback-логика и синхронизация через `PrizeSystemManager`, `PrizeDatabase` и `LevelPrizeConfig` - переработан flow настройки QR-призов: добавлены `QRCodeSettingsModal` и связанный UI-код, разнесены короткий текст приза и полный текст сообщения, добавлены шаблоны форматирования, корректная подстановка текста в QR и в UI-модалках, а также сохранение конфигурации между запусками - доработан flow суперприза и текстовых настроек: добавлены fallback-правила показа, корректная обработка пустых строк и строк из одних пробелов, обновлены binders и показ текста в меню - реализована и обновлена отдельная настройка витрины: добавлена `PrizeStandSettingsModal`, обновлена навигация строк, логика выбора ячейки и порогов очков, циклический выбор ячеек, ускорение изменения значений и исправления для keyboard/gamepad UX - доработана игровая модалка витрины `PrizeStandModal`: добавлен вывод очков игрока, форматируемый текст счета, улучшено отображение ячеек и связанная логика выбора приза - исправлен подсчет очков и интеграция с prize flow: `ScoreSystem` переведен на событийное обновление текущего счета, добавлены `CurrentScore`, `CurrentScoreChanged` и корректный display score, витрина и связанные UI-элементы теперь получают актуальные очки, а не нулевые или несвоевременные preview-значения - переработаны модальные окна и навигация UI: улучшены `Modal`, `ModalManager`, `UIRowPointer`, `RulesModal`, `QRCodeModal`, `PrizeStandModal`, `LevelPrizeSettingsModal` и др., чтобы фокус, указатель и submit работали консистентно без мыши - обновлен win/prize UI: доработаны `WinBannerController`, `GameEndUIController`, `MainMenu`, `QRCodeUIController`, `TopPanelTextController` и настройки UI, улучшены тексты баннеров, отображение призов и итогового счета - обновлены сцены и ассеты под новый flow: `MainMenu`, `Level UI`, prefab'ы строк настроек и кнопок, глобальные префабы, шрифты TMP, иконки, recovery-данные и ресурсы UI - добавлены вспомогательные UI-компоненты и служебные скрипты: `ButtonTextFocusColor`, `SelectableDescriptionTarget`, `QRTier` и другие изменения, поддерживающие новый конфигурируемый prize UI
66 lines
1.9 KiB
C#
66 lines
1.9 KiB
C#
using UnityEngine;
|
|
using TMPro;
|
|
|
|
using RR.Game2D.Core.Managers;
|
|
|
|
namespace RR.Common.UI
|
|
{
|
|
public class TopPanelTextController : MonoBehaviour
|
|
{
|
|
[SerializeField] private int livesCount;
|
|
[SerializeField] private int coinsCount;
|
|
[SerializeField] private string levelNumber;
|
|
[SerializeField] private TextMeshProUGUI livesText;
|
|
[SerializeField] private TextMeshProUGUI coinsText;
|
|
[SerializeField] private TextMeshProUGUI levelText;
|
|
|
|
private void OnEnable()
|
|
{
|
|
if (GameManager.Instance != null)
|
|
{
|
|
GameManager.Instance.CoinsChanged += OnCoinsChanged;
|
|
GameManager.Instance.LivesChanged += OnLivesChanged;
|
|
}
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
if (GameManager.Instance != null)
|
|
{
|
|
GameManager.Instance.CoinsChanged -= OnCoinsChanged;
|
|
GameManager.Instance.LivesChanged -= OnLivesChanged;
|
|
}
|
|
}
|
|
|
|
void Start()
|
|
{
|
|
livesCount = GameManager.Instance.Lives;
|
|
coinsCount = GameManager.Instance.Coins;
|
|
levelNumber = $"{GameManager.Instance.World}-{GameManager.Instance.Stage}";
|
|
|
|
livesText.text = livesCount.ToString();
|
|
coinsText.text = FormatCoins(coinsCount);
|
|
levelText.text = levelNumber;
|
|
}
|
|
|
|
private void OnCoinsChanged(int newCoins)
|
|
{
|
|
if (coinsCount != newCoins)
|
|
{
|
|
coinsCount = newCoins;
|
|
coinsText.text = FormatCoins(coinsCount);
|
|
}
|
|
}
|
|
|
|
private void OnLivesChanged(int newLives)
|
|
{
|
|
livesText.text = newLives.ToString();
|
|
}
|
|
|
|
private static string FormatCoins(int totalCoins)
|
|
{
|
|
return (totalCoins % 100).ToString();
|
|
}
|
|
}
|
|
}
|