# Dizalia Gacha

Лаунчер читает `manifest.json`, берёт поле `main` и добавляет итоговый путь
`src/DizaliaGacha.js` в конфигурацию загрузки. Точка входа через `Alloy.link`
подключает только функциональные модули оплаты, сервисов и хаба; однострочного
bootstrap-файла нет. Мод не занимает заранее подготовленные пустые строки базы данных.

В главном меню доступен единый «Центр событий», также открываемый клавишей `H`.
На карте его страницы дублируются компактными иконками слева от мини-карты.
Внутри находятся отряд, призыв, задания, магазин и боевой пропуск. Стандартный и оружейный
баннеры всегда активны; из оружейного выпадают исключительно оружие и броня.
Рядом с ними автоматически выбираются один или два ивентовых баннера. Похожие
темы повышают вероятность совместной ротации, но не делают её гарантированной.
При старте каждой новой игры создаётся отдельный случайный seed, поэтому
начальные ивентовые баннеры также выбираются заново. Последний выбранный баннер
сохраняется при переходе в окна дропа, истории и подробностей.

Для резонанса используются «Кристаллы отзвука». У них нет ограничения стака.
Кристаллы выдаются один раз при первом запуске мода, приходят с каждой новой
ротацией и редко выпадают с противников. Недостающие крутки покупаются за
Резониты по курсу 160 к 1. Резониты хранятся числом в сохранении, выдаются за
ежедневные и недельные задачи и доступны в имитационном магазине. Они не являются
предметом базы и не могут попасть на ABS-панель. Первый успешный набор получает
один случайный бонус; акция расходуется один раз на всё сохранение.

Магазин оформлен как витрина из шести карточек. До первой успешной покупки на
каждой карточке показан возможный диапазон общего одноразового бонуса; после его
получения бонусные метки исчезают со всех наборов. Каждому объёму соответствует
отдельная PNG-иллюстрация, загружаемая через API Alloy.

В свободной части витрины находится переход к обмену Резонитов на Кристаллы
отзвука. Количество выбирается игроком, курс берётся из `config.json`, а
полученные кристаллы сохраняются в обычном инвентаре без ограничения стака.

Создаваемые модом персонажи приходят без оружия, получают первый уровень и два
собственных ABS-навыка. Экипировка блокируется только у персонажей с реальным
стартовым снаряжением в базе; пустых персонажей игрок одевает сам. Естественная
регенерация маны задаётся расой: люди получают 1%, Нортум и Деус как боги — 2%,
а эльфы и сангельфы не получают пассивную регенерацию. Значения существующих
персонажей сохраняются из базы игры.

Все параметры для лаунчера находятся в `config.json`. В массивах выбранным
значением считается элемент с индексом 0, как и в остальных конфигурациях Alloy.

Консольные команды Alloy:

- `DizaliaGacha::open` — открыть баннеры;
- `DizaliaGacha::roster` — открыть управление персонажами;
- `DizaliaGacha::crystals N` — выдать N Кристаллов отзвука;
- `DizaliaGacha::resonites N` — выдать N Резонитов;
- `DizaliaGacha::exchange` — открыть отдельную сцену обмена;
- `DizaliaGacha::rotate` — принудительно пересчитать следующую ротацию.
