Ристалище
Площадка гильдии вне забега: серая арена, на которую можно выставить отряд и столкнуть бойцов между собой. Открывается из двора гильдии и не трогает состояние забега — это не узел карты и не бой кампании, а место, где на бой смотрят, а не проигрывают его.
Прежняя формулировка «из главного меню» устарела вместе с тонким титульником (2026-07-30/4): хаб стал главным экраном, и площадка открывается оттуда. Ристалище и двор — два разных скина одной персист-арены, включён всегда ровно один (2026-07-30/15).
Рабочее имя. В коде —
ProvingGrounds; прежнее имя «тест-зона» (TestZone) снято, потому что путалось с тестами кода. Терминологию см. glossary.
Зачем она есть
Ристалище обслуживает три разные нужды одной и той же площадкой — и это осознанно, потому что все три хотят от неё ровно одного: увидеть бой без обязательств.
| Кто | Зачем приходит |
|---|---|
| Игрок | Рассмотреть бойца и предмет вблизи, понять, как работает набор, столкнуть своих между собой. Без риска для забега — здесь ничего не теряется |
| Разработчик | Водить dev-команды и смотреть поведение боя вживую, не проходя карту |
| Агент | Проверять боевую симуляцию, не заходя в петлю забега |
Третья строка — не удобство, а устранение реальной цены: сейчас любая проверка боя требует пройти карту акта до боевого узла, поэтому проверки боя происходят реже, чем должны.
Что уже есть в игре
Ристалище собирается из механик, которые уже работают, — новых сущностей не заводим:
- Серая арена. Обесцвеченный дубль пола переключается по состоянию площадки; владелец отрисовки — презентер арены.
- Расстановка и старт боя. Та же машина, что в бою забега: отряд ставится вручную, бой запускается кнопкой.
- Интент входа и выхода. Запрос «войти/выйти» идемпотентен, а решение принимает единственный владелец — контроллер расстановки, по своему состоянию (есть отряд, не идёт бой). Слушатели только слушают и сами ничего не переключают.
- Возврат в меню. Выход из забега идёт тем же путём, что кнопка «В меню» в системном меню.
Что достраиваем (базовый минимум)
Ровно то, без чего площадкой нельзя воспользоваться из меню:
- Вход из хаба. Сейчас площадка требует уже стоящий отряд, а вне забега его нет.
- Состав по умолчанию. Отряд для входа вне забега читается из конфиг-ассета (четыре бойца). Это шов под будущий экран сборки: сменится источник данных, не поток.
- Dev-команда. Сворачивает текущее состояние штатным возвратом в меню и следом шлёт тот же интент, что кнопка. Кнопка и команда ведут в одну точку разными дверьми.
Как это работает для игрока (требование 2026-07-27)
Ристалище повторяет боевой ритм забега, а не заводит свой:
- Вход ставит на арену обе команды сразу в фазе расстановки — их видно, их можно переставить.
- Бой начинается кнопкой «Начать» — той же самой, что в узле забега. Сам он не стартует: площадка существует ради того, чтобы сперва посмотреть и поправить.
- Верхние табы живут как в бою: активные — те же, что в боевой расстановке, а карта недоступна (мы вне забега, идти некуда).
- Надписи панели переписаны под площадку: слева «Ристалище» вместо гильдии, акта и вехи; золота и перезапусков нет вовсе. Это величины забега, и показывать их нулями значило бы врать игроку о том, где он находится.
- После боя площадка сама возвращается в расстановку, ставя обе стороны заново и целыми — туда же, куда их поставил игрок. Расклад живёт в пределах захода.
Почему так: единственный источник правды. Любая «своя» кнопка старта или свой набор табов — это второй владелец боевого ритма, и он неизбежно разойдётся с первым. Ровно это уже стоило раунда багов на трёх рассинхронных флагах.
Место как единственный владелец (реализация 2026-07-27)
Расстановка знает, где игрок, и выводит из этого всё остальное. Мест три, и различаются они ровно двумя вещами — откуда берётся состав и какого цвета арена:
| Место | Состав | Арена | Выход |
|---|---|---|---|
| Узел боя | отряд гильдии + враги энкаунтера | боевая | владеет петля акта |
| Построение | свой отряд, уже стоящий на арене | боевая | таб «Карта» / кнопка передышки |
| Ристалище | обе стороны из ProvingGroundsConfig | серая | выход в меню |
Из места выводятся серый цвет арены, источник бойцов и фаза, в которую возвращаемся. Отдельных флагов «мы в тест-зоне» и «мы на площадке» больше нет: это были разные имена одного факта.
Бой места не меняет — он меняет фазу. Поэтому серая зона гасится ровно в одной точке, при смене места, и старт боя её не трогает. Это не мелочь реализации: гашение серой зоны верхний цикл игры читает как «игрок ушёл с площадки», и склейка двух фактов увела бы игрока в главное меню на первом же ударе.
Побочное следствие: в забеге таб «Бой» вне боя ведёт в построение, а не на серый полигон — серый цвет остался признаком одного лишь Ристалища, как и сказано выше.
Состояние на 2026-07-27
Работают вход, обе команды, старт боя кнопкой «Начать», табы с погашенной картой и возврат в расстановку после боя. Кнопка «Ристалище» в главном меню стоит выключенной: состав площадки пока фиксирован ассетом, поэтому вход остаётся за dev-командой
gm_proving_grounds.
Отложено
- Экран сборки состава: выбор бойцов и предметов игроком.
- Настройка противника (сейчас на арене только свои).
- Сохранение расклада между заходами.
Принципиальное
Ристалище — это вход в существующую площадку, а не отдельный «тестовый бой» рядом с ней. Соблазн сделать второй режим есть, но тогда у серой арены, расстановки и старта боя появится второй владелец. Ровно это уже стоило раунда багов на трёх рассинхронных флагах, и лечилось сведением к одному владельцу — см. journal-adr.