- завершен спринт 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
- Добавлен LevelFinish.cs: новый компонент финиша уровня
- выдача маленького приза через PrizeSystemManager (учитывает enableHopper)
- настройки: enablePrizeOnFinish, prizeEnabledSettingKey, prizeDelay, debugMode
- защита от двойной выдачи (_prizeGiven)
- PlayerController: закомментирован старый переход на следующий уровень по тегу 'Finish'
(теперь за это отвечает LevelFinish)
- QRCodeUIController: помечен [Obsolete], QR-коды показываются только при победе
через WinBannerController.ShowWin() -> PrizeSystemManager.GetQRCodes()
- Finish.prefab: добавлен компонент LevelFinish (enablePrizeOnFinish=true, prizeDelay=0)
- Сцена 1-1: переопределён enablePrizeOnFinish=false для финиша промежуточного уровня
- Сцена 1-3: minor update
- MainMenu: правки якорей UI-элементов и активация скрытого объекта