Danro-Jump/Assets/UI/MainMenu/Templates/MainMenuModals.uxml
Danil Iarosh c1b72854f4 Implement prize QR and service UI polish
Подробные изменения:

- Добавлена система призовых уровней и выдачи призов с QR-контуром Telegram, шаблоном сообщения и генерацией QR без внешних библиотек.

- Доработаны сервисные настройки: действия кнопок, модальные окна, ввод с джойстика/клавиатуры, статистика, настройки призов и маршрутизация QR.

- Переработаны gameplay HUD и overlay-панели на UI Toolkit со спрайтовыми плашками, DEV BUILD-статистикой, экраном продолжения и экраном результата приза.

- Исправлены сценарии смерти, GameOver, продолжения игры, начисления очков за высоту и перехода в главное меню.

- Перенесены UI-шаблоны из Resources в Assets/UI, подключена Addressables-загрузка шаблонов настроек и standalone-стили для MainMenuModals.

- Добавлены EditMode/PlayMode тесты для призов, QR, arcade input, UI-модалок, scene flow, HUD и gameplay-сессии.

- Обновлены сцены, настройки Addressables, service settings database, документация и дорожная карта.

Проверки:

- Targeted EditMode QR/UI/settings: 23/23 passed

- Targeted UI templates/EditMode: 17/17 passed

- MainMenuUxmlTests: 3/3 passed

- Full EditMode: 129/129 passed

- PlayMode: 6/6 passed

- Runtime Addressables template load check: loaded=5

- Unity Console после финального refresh: 0 errors
2026-06-12 16:43:28 +03:00

84 lines
14 KiB
Plaintext
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.

<ui:UXML xmlns:ui="UnityEngine.UIElements" editor-extension-mode="False">
<Style src="../MainMenu.uss"/>
<ui:VisualElement name="ModalLayer" class="modal-layer" style="opacity: 1; display: none;">
<ui:VisualElement name="ModalBackdrop" class="modal-backdrop"/>
<ui:VisualElement name="RulesModal" class="modal-window rules-modal fullscreen-modal" style="display: flex; justify-content: space-between;">
<ui:Label text="ПРАВИЛА" name="Header" class="modal-title" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;); -unity-font-style: normal;"/>
<ui:Label text="Прыгай всё выше по платформам и не падай ниже камеры.&#10;&#10;Используй пружины и бонусы, чтобы подняться выше и добраться до суперприза.&#10;&#10;Чем выше забег, тем сложнее этапы и тем ценнее результат." name="Content" class="modal-text" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/BerlinSansFBCyrillic-Regular.ttf?fileID=12800000&amp;guid=a4371daf3f041f94bb8cd180d18cb961&amp;type=3#BerlinSansFBCyrillic-Regular&quot;);"/>
<ui:VisualElement class="modal-actions">
<ui:Button name="RulesModalCloseButton" text="ПОНЯТНО" class="modal-button" style="width: 400px; height: 100px; -unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;); font-size: 28px; -unity-slice-scale: 0.5px;"/>
</ui:VisualElement>
</ui:VisualElement>
<ui:VisualElement name="SettingsModal" class="modal-window settings-modal fullscreen-modal" style="display: flex;">
<ui:Label text="Настройки" class="modal-title settings-title" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
<ui:VisualElement name="SettingsContent" class="settings-content">
<ui:ScrollView name="SettingsList" class="settings-list"/>
<ui:VisualElement name="SettingsDetails" class="settings-details" style="border-top-width: 0; border-top-color: rgb(0, 0, 0);">
<ui:Label name="SettingsGroupTitleLabel" text="Группа" class="settings-current-group" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;); font-size: 48px;"/>
<ui:Label name="SettingsStatusLabel" text="Загрузка сервисных настроек..." class="settings-status" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/BerlinSansFBCyrillic-Regular.ttf?fileID=12800000&amp;guid=a4371daf3f041f94bb8cd180d18cb961&amp;type=3#BerlinSansFBCyrillic-Regular&quot;); font-size: 24px;"/>
</ui:VisualElement>
</ui:VisualElement>
<ui:VisualElement name="ButtonsGroup" class="modal-actions settings-actions" style="position: relative; right: auto; bottom: 2%; top: auto;">
<ui:Button name="SettingsSaveButton" text="СОХРАНИТЬ" class="modal-button settings-save-button" style="-unity-slice-scale: 0.5px; -unity-slice-type: sliced; -unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;); font-size: 28px; height: 100px; width: 400px;"/>
<ui:Button name="SettingsReloadButton" text="ОБНОВИТЬ" class="modal-button settings-secondary-button"/>
<ui:Button name="SettingsResetButton" text="СБРОС" class="modal-button settings-secondary-button"/>
<ui:Button name="SettingsCloseButton" text="ЗАКРЫТЬ" class="modal-button settings-secondary-button"/>
</ui:VisualElement>
</ui:VisualElement>
<ui:VisualElement name="ServiceInfoModal" class="modal-window service-info-modal fullscreen-modal" style="display: none;">
<ui:Label name="ServiceInfoTitle" text="Служебное окно" class="modal-title service-info-title" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
<ui:Label name="ServiceInfoFocus" text="" class="service-info-focus" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/BerlinSansFBCyrillic-Regular.ttf?fileID=12800000&amp;guid=a4371daf3f041f94bb8cd180d18cb961&amp;type=3#BerlinSansFBCyrillic-Regular&quot;);"/>
<ui:Label name="ServiceInfoContent" text="Данные пока недоступны." class="modal-text service-info-content" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/BerlinSansFBCyrillic-Regular.ttf?fileID=12800000&amp;guid=a4371daf3f041f94bb8cd180d18cb961&amp;type=3#BerlinSansFBCyrillic-Regular&quot;);"/>
<ui:VisualElement class="modal-actions service-info-actions">
<ui:Button name="ServiceInfoCloseButton" text="ЗАКРЫТЬ" class="modal-button" style="width: 400px; height: 100px; -unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;); font-size: 28px; -unity-slice-scale: 0.5px;"/>
</ui:VisualElement>
</ui:VisualElement>
<ui:VisualElement name="ServiceTextInputModal" class="modal-window service-text-input-modal fullscreen-modal" style="display: none;">
<ui:Label name="ServiceTextInputTitle" text="Ввод значения" class="modal-title service-text-input-title" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
<ui:Label name="ServiceTextInputSetting" text="" class="service-text-input-setting" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/BerlinSansFBCyrillic-Regular.ttf?fileID=12800000&amp;guid=a4371daf3f041f94bb8cd180d18cb961&amp;type=3#BerlinSansFBCyrillic-Regular&quot;);"/>
<ui:Label name="ServiceTextInputPreview" text="" class="service-text-input-preview" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
<ui:VisualElement name="ServiceTextInputSlots" class="service-text-input-slots"/>
<ui:Label name="ServiceTextInputSymbol" text="" class="service-text-input-symbol" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
<ui:Label name="ServiceTextInputStatus" text="" class="service-text-input-status" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/BerlinSansFBCyrillic-Regular.ttf?fileID=12800000&amp;guid=a4371daf3f041f94bb8cd180d18cb961&amp;type=3#BerlinSansFBCyrillic-Regular&quot;);"/>
<ui:VisualElement class="modal-actions service-text-input-actions">
<ui:Button name="ServiceTextInputConfirmButton" text="OK" class="modal-button service-text-input-action-button" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
<ui:Button name="ServiceTextInputDeleteButton" text="УДАЛИТЬ" class="modal-button service-text-input-action-button" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
<ui:Button name="ServiceTextInputCancelButton" text="ОТМЕНА" class="modal-button service-text-input-action-button" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
</ui:VisualElement>
</ui:VisualElement>
<ui:VisualElement name="PrizeLevelsModal" class="modal-window prize-levels-modal fullscreen-modal" style="display: none;">
<ui:Label name="PrizeLevelsTitle" text="Призы за очки" class="modal-title prize-levels-title" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
<ui:VisualElement class="prize-levels-card">
<ui:ScrollView name="PrizeLevelsList" class="prize-levels-list"/>
<ui:Label name="PrizeLevelsStatus" text="Загрузка призовых уровней..." class="prize-levels-status" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/BerlinSansFBCyrillic-Regular.ttf?fileID=12800000&amp;guid=a4371daf3f041f94bb8cd180d18cb961&amp;type=3#BerlinSansFBCyrillic-Regular&quot;);"/>
</ui:VisualElement>
<ui:VisualElement class="modal-actions prize-levels-actions">
<ui:Button name="PrizeLevelsAddButton" text="ДОБАВИТЬ" class="modal-button prize-levels-add-button" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
<ui:Button name="PrizeLevelsCloseButton" text="ЗАКРЫТЬ" class="modal-button prize-levels-close-button" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
</ui:VisualElement>
</ui:VisualElement>
<ui:VisualElement name="PrizeLevelAddModal" class="modal-window prize-level-add-modal fullscreen-modal" style="display: none;">
<ui:Label name="PrizeLevelAddTitle" text="Добавить приз" class="modal-title prize-level-add-title" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
<ui:VisualElement class="prize-level-add-card">
<ui:Label text="Очки" class="prize-level-add-caption" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/BerlinSansFBCyrillic-Regular.ttf?fileID=12800000&amp;guid=a4371daf3f041f94bb8cd180d18cb961&amp;type=3#BerlinSansFBCyrillic-Regular&quot;);"/>
<ui:VisualElement class="prize-level-add-stepper">
<ui:Button name="PrizeLevelAddScoreMinusButton" text="-" class="modal-button prize-level-step-button"/>
<ui:Label name="PrizeLevelAddScoreValue" text="100" class="prize-level-add-value" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
<ui:Button name="PrizeLevelAddScorePlusButton" text="+" class="modal-button prize-level-step-button"/>
</ui:VisualElement>
<ui:Label text="Тип приза" class="prize-level-add-caption" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/BerlinSansFBCyrillic-Regular.ttf?fileID=12800000&amp;guid=a4371daf3f041f94bb8cd180d18cb961&amp;type=3#BerlinSansFBCyrillic-Regular&quot;);"/>
<ui:VisualElement class="prize-level-add-stepper">
<ui:Button name="PrizeLevelAddKindPreviousButton" text="&lt;" class="modal-button prize-level-step-button"/>
<ui:Label name="PrizeLevelAddKindValue" text="QR-код" class="prize-level-add-value prize-level-add-kind-value" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
<ui:Button name="PrizeLevelAddKindNextButton" text="&gt;" class="modal-button prize-level-step-button"/>
</ui:VisualElement>
<ui:Label name="PrizeLevelAddStatus" text="" class="prize-level-add-status" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/BerlinSansFBCyrillic-Regular.ttf?fileID=12800000&amp;guid=a4371daf3f041f94bb8cd180d18cb961&amp;type=3#BerlinSansFBCyrillic-Regular&quot;);"/>
</ui:VisualElement>
<ui:VisualElement class="modal-actions prize-level-add-actions">
<ui:Button name="PrizeLevelAddSaveButton" text="СОХРАНИТЬ" class="modal-button prize-level-add-save-button" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
<ui:Button name="PrizeLevelAddCancelButton" text="ОТМЕНА" class="modal-button prize-level-add-cancel-button" style="-unity-font-definition: url(&quot;project://database/Assets/Fonts/RifficFree-Bold.ttf?fileID=12800000&amp;guid=63991fec8a53abe4d9a7907ef7f0db77&amp;type=3#RifficFree-Bold&quot;);"/>
</ui:VisualElement>
</ui:VisualElement>
</ui:VisualElement>
</ui:UXML>