Ристалище

Площадка гильдии вне забега: серая арена, на которую можно выставить отряд и столкнуть бойцов между собой. Открывается из двора гильдии и не трогает состояние забега — это не узел карты и не бой кампании, а место, где на бой смотрят, а не проигрывают его.

Прежняя формулировка «из главного меню» устарела вместе с тонким титульником (2026-07-30/4): хаб стал главным экраном, и площадка открывается оттуда. Ристалище и двор — два разных скина одной персист-арены, включён всегда ровно один (2026-07-30/15).

Рабочее имя. В коде — ProvingGrounds; прежнее имя «тест-зона» (TestZone) снято, потому что путалось с тестами кода. Терминологию см. glossary.

Зачем она есть

Ристалище обслуживает три разные нужды одной и той же площадкой — и это осознанно, потому что все три хотят от неё ровно одного: увидеть бой без обязательств.

КтоЗачем приходит
ИгрокРассмотреть бойца и предмет вблизи, понять, как работает набор, столкнуть своих между собой. Без риска для забега — здесь ничего не теряется
РазработчикВодить dev-команды и смотреть поведение боя вживую, не проходя карту
АгентПроверять боевую симуляцию, не заходя в петлю забега

Третья строка — не удобство, а устранение реальной цены: сейчас любая проверка боя требует пройти карту акта до боевого узла, поэтому проверки боя происходят реже, чем должны.

Что уже есть в игре

Ристалище собирается из механик, которые уже работают, — новых сущностей не заводим:

  • Серая арена. Обесцвеченный дубль пола переключается по состоянию площадки; владелец отрисовки — презентер арены.
  • Расстановка и старт боя. Та же машина, что в бою забега: отряд ставится вручную, бой запускается кнопкой.
  • Интент входа и выхода. Запрос «войти/выйти» идемпотентен, а решение принимает единственный владелец — контроллер расстановки, по своему состоянию (есть отряд, не идёт бой). Слушатели только слушают и сами ничего не переключают.
  • Возврат в меню. Выход из забега идёт тем же путём, что кнопка «В меню» в системном меню.

Что достраиваем (базовый минимум)

Ровно то, без чего площадкой нельзя воспользоваться из меню:

  1. Вход из хаба. Сейчас площадка требует уже стоящий отряд, а вне забега его нет.
  2. Состав по умолчанию. Отряд для входа вне забега читается из конфиг-ассета (четыре бойца). Это шов под будущий экран сборки: сменится источник данных, не поток.
  3. Dev-команда. Сворачивает текущее состояние штатным возвратом в меню и следом шлёт тот же интент, что кнопка. Кнопка и команда ведут в одну точку разными дверьми.

Как это работает для игрока (требование 2026-07-27)

Ристалище повторяет боевой ритм забега, а не заводит свой:

  1. Вход ставит на арену обе команды сразу в фазе расстановки — их видно, их можно переставить.
  2. Бой начинается кнопкой «Начать» — той же самой, что в узле забега. Сам он не стартует: площадка существует ради того, чтобы сперва посмотреть и поправить.
  3. Верхние табы живут как в бою: активные — те же, что в боевой расстановке, а карта недоступна (мы вне забега, идти некуда).
  4. Надписи панели переписаны под площадку: слева «Ристалище» вместо гильдии, акта и вехи; золота и перезапусков нет вовсе. Это величины забега, и показывать их нулями значило бы врать игроку о том, где он находится.
  5. После боя площадка сама возвращается в расстановку, ставя обе стороны заново и целыми — туда же, куда их поставил игрок. Расклад живёт в пределах захода.

Почему так: единственный источник правды. Любая «своя» кнопка старта или свой набор табов — это второй владелец боевого ритма, и он неизбежно разойдётся с первым. Ровно это уже стоило раунда багов на трёх рассинхронных флагах.

Место как единственный владелец (реализация 2026-07-27)

Расстановка знает, где игрок, и выводит из этого всё остальное. Мест три, и различаются они ровно двумя вещами — откуда берётся состав и какого цвета арена:

МестоСоставАренаВыход
Узел бояотряд гильдии + враги энкаунтерабоеваявладеет петля акта
Построениесвой отряд, уже стоящий на аренебоеваятаб «Карта» / кнопка передышки
Ристалищеобе стороны из ProvingGroundsConfigсераявыход в меню

Из места выводятся серый цвет арены, источник бойцов и фаза, в которую возвращаемся. Отдельных флагов «мы в тест-зоне» и «мы на площадке» больше нет: это были разные имена одного факта.

Бой места не меняет — он меняет фазу. Поэтому серая зона гасится ровно в одной точке, при смене места, и старт боя её не трогает. Это не мелочь реализации: гашение серой зоны верхний цикл игры читает как «игрок ушёл с площадки», и склейка двух фактов увела бы игрока в главное меню на первом же ударе.

Побочное следствие: в забеге таб «Бой» вне боя ведёт в построение, а не на серый полигон — серый цвет остался признаком одного лишь Ристалища, как и сказано выше.

Состояние на 2026-07-27

Работают вход, обе команды, старт боя кнопкой «Начать», табы с погашенной картой и возврат в расстановку после боя. Кнопка «Ристалище» в главном меню стоит выключенной: состав площадки пока фиксирован ассетом, поэтому вход остаётся за dev-командой gm_proving_grounds.

Отложено

  • Экран сборки состава: выбор бойцов и предметов игроком.
  • Настройка противника (сейчас на арене только свои).
  • Сохранение расклада между заходами.

Принципиальное

Ристалище — это вход в существующую площадку, а не отдельный «тестовый бой» рядом с ней. Соблазн сделать второй режим есть, но тогда у серой арены, расстановки и старта боя появится второй владелец. Ровно это уже стоило раунда багов на трёх рассинхронных флагах, и лечилось сведением к одному владельцу — см. journal-adr.