Универсальный поп-ап получения наград¶
Статус¶
Подтверждено обсуждением: поп-ап принимает объект класса Reward, который является контейнером конкретных наград. Поддерживаются параметры, предметы, оружие и внутриигровые кристаллы; значения могут быть абсолютными и процентными. Сверху находятся сами награды, которые появляются с анимацией.
Остальные детали компоновки, анимации и контракта ниже — предложения. Документ описывает дизайн, а не реализацию.
Источники: параметры танка, предметы, прогрессия, ингредиенты дерева, баттл пассы, квесты, экраны.
Состав и поведение окна¶
Верхнюю часть поп-апа занимает область наград: карточки с иконкой, названием и точным значением. Ниже — короткая подпись о получении или источнике и кнопка «Продолжить». Длинный текст или крупный заголовок не отодвигают награды вниз. Большое количество карточек размещается в прокручиваемой сетке.
Предлагаемое появление на основе EpicAwardPopup проекта WalkingCastles:
- Затемняется фон и появляется основа окна.
- Ниже итоговой области наград находится стопка карточек. Задние карточки меньше и прозрачнее передней.
- Награды по очереди вылетают из стопки по дуге в свои места в верхней сетке. Во время полёта карточка меняет размер и слегка поворачивается; оставшаяся стопка одновременно сдвигается вперёд.
- При приземлении карточка кратко увеличивается и возвращается к конечному размеру. Полёт и приземление сопровождаются отдельными звуками. Новую пушку или предмет можно дополнительно выделить меткой «Новое»; для копии показывается изменение уровня.
- Когда все награды заняли места, вся сетка делает короткую общую пульсацию. После этого игрок видит весь состав и закрывает окно кнопкой «Продолжить» или нажатием на область ввода.
Ориентиры из значений по умолчанию в исходном коде референса: появление окна — 0,22 секунды; полёт карточки — 0,38 секунды; приземление — 0,18 секунды с увеличением до 110%; пауза между наградами — 0,06 секунды; общая пульсация — 0,24 секунды с увеличением до 104,5%. Это значения полей C#, а не проверенные настройки префаба и не утверждённый баланс нашего интерфейса. При уменьшении эффектов предлагается короткое проявление без полёта и вспышек.
Источник референса — локальный проект C:/Projects/WalkingCastles, файл Assets/WalkingCastles.Code/IdleArcade/View/EpicAwardPopup.cs: RevealRewardSequence, FlyRewardToSlot, ApplyRemainingStackTransition, AnimateLanding, AnimateSummaryPulse и OnTap. Поведение изучено по исходному коду; визуально в запущенной игре не проверялось. Верхнее расположение итоговых наград — отдельное требование нашей игры.
Управление в референсе: при нескольких наградах первое нажатие ускоряет анимацию (по умолчанию ×2,75), второе пропускает оставшуюся последовательность и раскрывает итог; на итоговом экране нажатие закрывает окно. При единственной награде нажатие сразу запрашивает пропуск и закрытие. Предлагается сохранить это поведение. Подсказка меняется соответственно: «Нажмите, чтобы ускорить» → «Нажмите ещё раз, чтобы пропустить» → «Продолжить».
В EpicAwardPopup также есть карусель раскрытия случайных наград. Для текущего состава нашей игры она не требуется: случайные пушки и предметы этим описанием не вводятся.
Конкретный список наград¶
| Категория | Содержимое | Отображение и правила |
|---|---|---|
| Характеристики танка | Максимальная прочность; общая броня; броня по пяти типам урона; восстановление; скорость передвижения; шанс уклонения; величина блока; шанс критического урона; усиление критического урона; общая абсолютная и процентная прибавки к урону; абсолютная и процентная прибавки к каждому из пяти типов урона; устойчивость | Иконка параметра, название и точная прибавка с единицами. Перечень параметров берётся из общего дизайна; это не означает, что каждый уже назначен наградой конкретному врагу. |
| Ингредиенты дерева прокачки | Scrap, Alloy, Gear, Powder, Circuit, Crystal, Reactor Cell, Energy Core, Ancient Component, Prototype Core | Иконка ингредиента и количество. Названия рабочие. Закрытые ингредиенты не выпадают. |
| Оружие | Конкретная модель пушки, например K-W2 «Швейная машина» или C-W1 «Травитель» | Первое получение открывает модель. Новые пушки выдаются боссами по существующим назначениям. Поп-ап не создаёт новый источник оружия. |
| Копии оружия | Копии уже открытой модели, например K-W1 «Основа» | Количество копий и повышение уровня. Каждая копия добавляет один уровень; отдельный устанавливаемый экземпляр не появляется. Эволюция остаётся ручной. |
| Предметы оборудования | Двигатель, ПВО и третий слот с рабочим названием «РЭБ»; конкретный подтверждённый пример — «Импульсный двигатель» от A05-B1 | Первое получение конкретной модели, её иконка, название и слот. Остальные модели и эффекты каталога являются предложениями. |
| Копии предметов | Копии конкретной модели оборудования | Повышают общий уровень модели в инвентаре. Получение копии не выполняет ручную эволюцию и не открывает способность автоматически. |
| Внутриигровые кристаллы | Валюта, названная пользователем в обсуждении этого поп-апа | Иконка валюты и количество. Источники, расходы и экономика ещё не определены. Валюта отличается от ингредиента Crystal и должна иметь отдельный идентификатор. |
| Открытие локаций | Одна или несколько новых доступных миссий после третьего босса | Карточка каждой открывшейся локации с подписью «Открыто». Повторная победа не выдаёт повторное открытие. Это результат прогрессии, который можно показывать в том же контейнере. |
Сюжетные находки уже существуют в системе квестов, но получают их через взаимодействие с объектами. Их не назначаем обычной наградой за завершение квеста без отдельного решения. Косметика и трофеи предложены для пассов, но состав наград ещё не утверждён; в основной список пока не включены. Опыт, очки навыков, сундуки и дополнительные валюты этим документом не вводятся.
Устойчивость в общем дизайне помечена как возможное, не утверждённое дополнение. Она приведена в перечне параметров для полноты, но не входит в обязательный состав наград текущей версии.
Абсолютные значения, проценты и процентные пункты¶
Для числовой награды задаются целевой параметр, величина и способ применения. Формат не определяется только символом «%».
- Абсолютная прибавка: «Максимальная прочность +100».
- Прибавка к процентному параметру: «Шанс уклонения +2 п.п.» — например, с 10% до 12%.
- Процентное усиление: «Урон +10%». Для общего и типового процентных бонусов используются существующие формулы урона; поп-ап не заменяет их умножением текущего итогового урона. Для другого относительного изменения база расчёта задаётся явно.
- Количество сущностей: «Scrap ×20», «Кристаллы ×50», «Основа: 1 копия, уровень 12 → 13».
- Открытие: «Алхимические болота — открыто»; числовое значение не требуется.
Числа в примерах иллюстрируют формат и не утверждают баланс. Одинаковые награды можно объединять только при совпадении сущности, способа применения и базы расчёта. Валюту Crystal и ингредиент Crystal не объединять.
Контракт контейнера Reward — предложение¶
Reward содержит список записей наград и необязательную подпись источника. Каждая запись определяет категорию, идентификатор сущности или параметра, количество либо величину и способ применения. Для изменения уровня отображаемые значения до/после берутся из фактического результата начисления.
Иконка и локализованное название определяются по идентификатору. Окно отображает готовый результат; начисление выполняет игровая система. Контейнер может смешивать категории, например оружие и открытие локации.
Боевая добыча начисляется автоматически. Квесты и пассы требуют ручного получения кнопкой «Забрать» или «Забрать всё»; после успешного начисления показывается этот поп-ап. Кнопка «Продолжить», пропуск анимации и повторный показ окна не начисляют награды повторно. Всё полученное сохраняется сразу по правилам прогрессии.
Обычные мелкие награды за врагов показываются без постоянного открытия модального окна. Универсальный поп-ап используется для наград заданий и заметных получений, например нового оружия или предмета. Результат миссии может показывать ту же область наград вместе с действиями своего экрана.
Примеры по существующим назначениям¶
- Первая победа над A01-B2 «Стальным гонцом»: карточка K-W2 «Швейная машина» с меткой «Новое».
- Повторная победа над A01-B1 «Гончим капитаном»: одна копия K-W1 «Основа» и повышение уровня на один.
- Первая победа над A01-B3 «Железным маршалом»: C-W1 «Травитель» и открытие Алхимических болот.
- Первая победа над A05-B1 «Хранителем ткани»: «Импульсный двигатель».
- «Забрать всё» в пассе: один контейнер всех успешно полученных наград; конкретный состав определяется будущим балансом пасса.