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
130 lines
5.2 KiB
C#
130 lines
5.2 KiB
C#
namespace RR.Common.UI
|
||
{
|
||
/// <summary>
|
||
/// Предустановленные алфавиты для TextInputModal
|
||
/// </summary>
|
||
public static class TextInputAlphabets
|
||
{
|
||
/// <summary>
|
||
/// Только цифры (0-9)
|
||
/// </summary>
|
||
public static readonly string[] Numeric = new string[]
|
||
{
|
||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
|
||
};
|
||
|
||
/// <summary>
|
||
/// Цифры и спецсимволы для телефонных номеров
|
||
/// </summary>
|
||
public static readonly string[] PhoneNumber = new string[]
|
||
{
|
||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||
"+", "-", "(", ")", " "
|
||
};
|
||
|
||
/// <summary>
|
||
/// Английские буквы в верхнем регистре
|
||
/// </summary>
|
||
public static readonly string[] UppercaseEnglish = new string[]
|
||
{
|
||
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
|
||
"K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
|
||
"U", "V", "W", "X", "Y", "Z"
|
||
};
|
||
|
||
/// <summary>
|
||
/// Английские буквы в нижнем регистре
|
||
/// </summary>
|
||
public static readonly string[] LowercaseEnglish = new string[]
|
||
{
|
||
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
|
||
"k", "l", "m", "n", "o", "p", "q", "r", "s", "t",
|
||
"u", "v", "w", "x", "y", "z"
|
||
};
|
||
|
||
/// <summary>
|
||
/// Английские буквы (обоих регистров) и цифры
|
||
/// </summary>
|
||
public static readonly string[] Alphanumeric = new string[]
|
||
{
|
||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
|
||
"K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
|
||
"U", "V", "W", "X", "Y", "Z",
|
||
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
|
||
"k", "l", "m", "n", "o", "p", "q", "r", "s", "t",
|
||
"u", "v", "w", "x", "y", "z"
|
||
};
|
||
|
||
/// <summary>
|
||
/// Английские буквы в верхнем регистре, цифры и базовые спецсимволы
|
||
/// </summary>
|
||
public static readonly string[] Standard = new string[]
|
||
{
|
||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
|
||
"K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
|
||
"U", "V", "W", "X", "Y", "Z",
|
||
" ", "-", "_", ".", ",", "!"
|
||
};
|
||
|
||
/// <summary>
|
||
/// Русские буквы в верхнем регистре
|
||
/// </summary>
|
||
public static readonly string[] UppercaseRussian = new string[]
|
||
{
|
||
"А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й",
|
||
"К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф",
|
||
"Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я"
|
||
};
|
||
|
||
/// <summary>
|
||
/// Русские буквы в нижнем регистре
|
||
/// </summary>
|
||
public static readonly string[] LowercaseRussian = new string[]
|
||
{
|
||
"а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й",
|
||
"к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф",
|
||
"х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я"
|
||
};
|
||
|
||
/// <summary>
|
||
/// Русские буквы (верхний регистр), цифры и базовые спецсимволы
|
||
/// </summary>
|
||
public static readonly string[] RussianStandard = new string[]
|
||
{
|
||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||
"А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й",
|
||
"К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф",
|
||
"Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я",
|
||
" ", "-", "_"
|
||
};
|
||
|
||
/// <summary>
|
||
/// Алфавит для коротких названий призов: начинается с пробела, чтобы пустые ячейки не отображались нулями.
|
||
/// </summary>
|
||
public static readonly string[] RussianPrizeText = new string[]
|
||
{
|
||
" ",
|
||
"А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й",
|
||
"К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф",
|
||
"Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я",
|
||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||
"-", "_"
|
||
};
|
||
|
||
/// <summary>
|
||
/// Email-friendly алфавит (английские буквы в нижнем регистре, цифры, @ и точка)
|
||
/// </summary>
|
||
public static readonly string[] Email = new string[]
|
||
{
|
||
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
|
||
"k", "l", "m", "n", "o", "p", "q", "r", "s", "t",
|
||
"u", "v", "w", "x", "y", "z",
|
||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||
"@", ".", "_", "-"
|
||
};
|
||
}
|
||
}
|
||
|