Роадмап геймдизайнерской части: только то, что требует анализа, проработки и обсуждения. Уже принятые решения здесь не живут — они в journal-adr. Технический план реализации — Тех: 01. Roadmap реализации. Это разные документы, не путать.

Порядок работы: разобрать этот список → выбрать приоритетные темы → прорабатывать по одной, результат уносить в журнал решений и канон-доки.


Блок 0 — СТРУКТУРНАЯ РАЗВИЛКА → РЕШЕНО (2026-07-15)

Развилка закрыта. Выбран промежуточный вариант: гильдия — дом и хаб прокачки; забег — ядро и единственный «серьёзный» режим. Между забегами переносятся только «Сосуды» и их летопись подвигов; мощь/уровни — нет (не Darkest Dungeon / XCOM). Прочие активности награждают уникальностью через мету, не конкурируя с забегом. Полные формулировки — journal-adr решения 24–31.

Что ушло из этой развилки в проработку (валюта открытий, темп открытий, дерево прегенов, экран-хаб гильдии) — разобрано 2026-07-27, сессия «развитие гильдии». Канон — Run - Guild Development.


Блок 1 — большие темы, требующие отдельного захода

ТемаЧто надо сделатьЧто блокирует / зачем
Мета-прогрессия между забегамиРАЗОБРАНО 2026-07-27 (журнал, сессия «развитие гильдии»): ростер 8→64, ветераны и гейт вершины, смертность от возвышения, валюта дома vs вехи для контента, книга гильдии, хаб из трёх разделов, наём с запросами. Канон — Run - Guild Development. Форма хаба разобрана 2026-07-30 (сессия «хаб гильдии»): двор, где люди стоят телами — Modes - Guild CourtyardОсталась только балансировка чисел (пороги, цены, лестница гейта) и открытые пункты в конце канон-домов
Опыт и прокачка «Сосуда» в забегеРАЗОБРАНО 2026-07-27 (журнал, сессия «прокачка „Сосуда“ в забеге»): опыт за бои и подвиги, ~2 уровня за акт, витрина из четырёх с рероллом за золото, три рода содержания (статы с минусами · Судьбы-квесты · Обеты), провал квеста сбрасывает прогресс но не слот, Обет нерушим. Канон — Run - Vessel ProgressionОсталась балансировка чисел и награда «Удачливого»
Цели боя (типы битв)Спроектировать конкретные типы: «помочь», «продержаться», «все против всех» и др. Сколько их на старте. Условия победы/провала, наградыТребует шва в движке: условие победы как данные + третья сторона в бою. Решено вводить
Многофазовые сраженияСпроектировать: сколько фаз, окно между фазами (что можно менять), как считается сложность, как встраиваются текст-ивенты между фазами. Заметка Макса (2026-07-29): расстановку между фазами ограничить по времени — 30 секРешено вводить. Требует проработки перед реализацией. Возражение скрайба по таймеру: 30 сек давят на реакцию, а наша доктрина — «скилл в подготовке, не в реакции» (difficulty-skill). В коопе таймер оправдан как анти-AFK, но тогда порядка 90 сек; в соло — пауза без таймера. Требуют этих фаз в первую очередь боссы
Испытания: ревизияПринцип закреплён (Журнал №67–68): испытание = квест игроку (ограничение состава / целевое условие), бой не меняет, видно при заходе в размещение. Осталось: список квестов, баланс наград/провалов, кооп-механизм принятия/рероллаИначе получим «каждая партия одинакова» при любом объёме контента

Блок 2 — механики, требующие решения

ВопросВарианты / что решитьГде живёт
Ориентир сложностиЧисловой показатель силы энкаунтера, намеренно не учитывающий сродства и расстановку (Legion TD 2, Recommended Value): подсказка новичку и скилл-разрыв для ветерана в одной цифреНе обсуждалось
Защита от невезенияРЕШЕНО 2026-07-27/2: страховка = инструменты контроля (рероллы, широкий выбор) + гарантированная явная прогрессия «Сосудов», а НЕ пити-таймеры и скрытые веса. Осталось: нужны ли анти-дубли витрины сверх этогоdifficulty-skill §4.5, vessel-progression
«Шёпот толпы»Разбор поражения репликами зрителей (юмор + лор). Источник реплик, доля «неверных» подсказок, поведение в коопеMeta - Open Forks
Холодная линия как общий слойЗАКРЫТА 2026-07-29 (три захода): «Изморозь» (кап 20, тир 2, цена очистки 5/10/20); ступени 1–9 / 10–19 / 20 открывают эффекты, а сила растёт непрерывно со стаками (замедление 20→60%, рут 0.5→1.5 сек); Раскол только по верхней ступени и прерывает оглушение; там же +20% к дробящему; огонь ускоряет сход ×2; AP скейлит число стаков за удар. Осталось: замер сложения периодического рута от двух источников льда и требование к боевому тултипу — показывать итоговое значение, а не шагEffect - Frost
Механика АрканыЗАКРЫТА 2026-07-29: ось — чужой ресурс (немота тира 2, разгон регена без потолка, отнятие ресурса как ситуативный по замыслу инструмент, пробитие магзащиты стаками). Осталось требование к UI: наличие ресурса у цели должно быть видно до боя, иначе дрейн читается как поломкаCombat - Effects §Аркана

Блок 2.5 — темы к обсуждению (накидано Максом 2026-07-15)

Сырой бэклог тем. Каждую предстоит проработать отдельно; часть зависит от развилки в Блоке 0.

ТемаСутьСвязи / вопросы
Последствия (Закалка/травмы)Числа, ступени, обратимость, ощущение. Рамка задана (Журнал 29): строго механика в границах забега, снятие за деньги ИЛИ через N событий, в конце испаряются, героями не запоминаютсяДизайн есть в injuries-mettle; остался баланс
Капитан: как влияетРАЗОБРАНО 2026-07-29: Капитан = пул своих фич (одна стартовая из трёх, дальше по одной в начале каждого акта — реф благословения Neow в STS) + Экипаж (стартовый набор). Прокачка внутри забега, платится вехами; мета даёт только ширину пула. Отобрано восемнадцать фич по четырём архетипам (Торговец · Маг · Мистик · Полководец), десять идей отклонено с причинами. Канон — Vision - Guildmaster & Captain. Термины приняты 2026-07-29: ось умений — Command/«Приказ» (нумерованный, «Приказ #3 — Покупка Дирижабля»), ось состава — Crew/«Экипаж»; персона остаётся Captain, различают Капитанов прозвища (Captain <Имя>, the <Epithet>)Осталось: сколько Капитанов на старте и какие архетипы, размер пула у каждого (скрайб: 6–8, чтобы выбор жил до последнего акта), сколько экипажей на Капитана, сами прозвища
Треш-мементоСколько на старте, ограничения, как выдаютсяСвязь с испытаниями (треш = дешёвый способ закрыть условие) и с дефицитом
НаёмникиДо 6 наёмников, путешествуют с гильдией, ещё более слабые треш-болванки. Для массовки, пафоса, синергий, нарратива. Опциональны, зарыты в мету. Уточнение 2026-07-29 (Макс): наёмники нужны и для «закрытия небольших зон» в отряде — то есть как затычки ролей, не только массовкаРиск: массовка размывает принцип «дефицит 4 «Сосудов» = глубина». Рекомендация скрайба: брать их не как свободную массу, а как часть Экипажа Капитана (Vision - Guildmaster & Captain) — тогда их число и состав задаёт дизайн старта, а не кошелёк игрока, и дефицит остаётся
Командиры — стартовые наборыРАЗНЕСЕНО 2026-07-29: пять набросков стали каталогом Экипажей в Vision - Guildmaster & Captain; термин «Командир» решено не вводить — это Капитаны. Экипажам ещё не назначены Приказы; набросок «Капитан (баффер-воин)» переименован в «Ветеран», чтобы не занимать канон-терминсм. строку «Капитан: как влияет» выше
Построения (формации)Расставил юнитов по правилам → небольшие плюшки. Расстановка становится менее удобной, но даёт нарративный кайф «мы — гильдия!» + усиление статов / крутые изменения AIПерекликается с формациями из ресерча (Dwarves: пассивки за состав+позицию). Ложится на подпорки расстановки (Блок 2). Тонкий баланс: плюшка не должна ломать оптимальную расстановку
Движущаяся мета«Отсчёт времени» гильдии: со временем меняются модификаторы забегов, мета. Опционально, за участие — небольшие бонусы. Форма от Макса (2026-07-29): модификаторы забега как в Age of Wonders, меняющие условия боя кардинально (больше ближников, больше целителей, всегда дождь) + баны как та же движущаяся мета; включённый модификатор даёт +30% меты, но выключить его до конца забега нельзяНаправление принято решениями 2026-07-15/72 (мета) и /18 (баны) — переоткрывать не надо, вопрос только «когда и в какой форме». Форма опознана: это Pact of Punishment из Hades — opt-in модификаторы с ранками, растящие награду; признанная лучшая практика против фиксированных пресетов сложности. Две оговорки скрайба: (1) «включил — не выключить» обязательно, иначе эксплойт «включаю на мусорных боях, вырубаю перед боссом»; (2) это не четвёртая ось сложности — модификаторы должны сесть на три уже существующие (Vision - Difficulty & Skill). Первый конкретный модификатор — The Lovers (Макс, 2026-07-29): в бой выходят двое вместо четырёх, но заметно усиленные. Переехал сюда из фич командира: это правило всего забега, а не свойство Капитана. Оговорка: он обнуляет половину позиционики (слоты контакта, фланги, удержание линии) и делает половину ростера ненужной — то есть годится как opt-in модификатор с повышенной наградой, но не как что-то, во что можно вкачаться посреди акта
Окно «Отряд» (2026-07-29)Отдельный экран отряда; инвентарь переименовать — в нём стало слишком много всегоUI-задача, но с дизайн-следствием: сейчас «инвентарь» держит и предметы, и Знамёна, и мементо. Стыкуется с реворком UI-архитектуры
Простая диалоговая система (2026-07-29)Текст с репликами персонажей и выбором. Нужна не «вообще», а конкретно: боссам (три сценария) и текстовым ивентамУ Разбойничьего Гнезда диалог влияет на исход (минута молчания → враг отступает, награда ниже) — значит система нужна не декоративная, а с таймером и последствиями. Плюс кооп-вопрос: чьё решение в диалоге считается
Названия энкаунтеров и голос разработчика (2026-07-29)У каждого боя, даже обычного, есть название. Сначала показывается настоящим идентификатором (ENC_0x1A4 / enc.goblin.03), после 5 побед над этим энкаунтером открывается «название от разработчика». В демо — после 1 победы, с комментарием Макса «в полной версии открывается не так быстро, но пусть вы увидите, что тут будет». Нераскрытое имя — это строка на «системно-нарративном языке»: отдельная локаль наравне с EN и RU, «наш личный язык» (Макс). Направление и ключевые правила приняты, детали подачи — потомНе новая система: это «Из мастерской» (ниже, 2026-07-27/24), перенесённая с карточек на бои — тот же автор, тот же механизм открытия. Принято: идентификатор вместо глифов-мусора · 5 побед — это долго намеренно, не для первого-второго забега · голос разработчика — личность, которой разрешено быть разной (саркастичной о действиях игрока, творящей о мире), при узнаваемом флёре. Системный язык как локаль снимает проблему «missing key»: sys-значение настоящее, проверка полноты ключей работает как обычно. proposed скрайба: код локали x-sys (приватная зона BCP 47) · включаемость целиком как открываемая тайна · шов в UI — Unity Localization берёт активную локаль, поэтому одна строка на sys требует явного запроса таблицы · открытое имя пусть намекает на состав («Трое и костёр»), тогда это награда знанием, а не косметика, и с Приказом «Картограф» не пересекается. Попадает в мета-нарратив: путь «сначала код, потом автор за кодом» — та же тема, что Система и консоль
Счётчики поведения игрока для голоса разработчика (2026-07-29)Чтобы автор мог подколоть за сейвскам, игра должна его заметить. Сейвскам здесь — это: игрок выходит из боя посреди него, увидев проигрыш, откатывается и пробует снова (уточнение Макса). Значит счётчик — «незавершённый бой + повторный вход в тот же узел»Шов кладём заранее. Сейв версионируется через [SaveSchema], и если счётчиков не заложить сейчас, потом это миграция схемы ради шутки. ТЗ — сейв-система
Компендиум контентаВнутриигровой кодекс всего контента: мементо, предметы, эффекты, враги, трейты — их комбинации, условия открытия, лор. Что показываем, что скрыто до открытия, как связано с ачивками/метой. + 2026-07-27/24: у каждой сущности есть закрытая врезка «Из мастерской» (геймдев-кухня), открываемая вехой по нейНе сейчас, но нужен потом. Связан с мета-прогрессией (открытия) и с летописью/лором. Большой UI + данные. Живёт у игрока (главное меню), не в доме — 2026-07-27/22
Зоны/биомы карты актаКарта акта делится на цветные зоны-«карманы»: у зоны свой пул врагов (ложится на фракции), уклон наград, визуальный телеграф наперёд и опц. модификатор-твист. Ценность именно нам: питает лоадаут-петлю (готовишь состав против известной угрозы) + даёт кооп-выбор маршрута («идём через зону X или Y?»). Реф: мод Spire Biomes для STS. Никси предлагает (proposed): зона = регион из нескольких узлов, а НЕ свойство одного узла; MVP = 4–5 фракционных зон на готовом материале (тема состава + цвет + уклон наград), богатые «theme park»-зоны с новыми мобами/механиками — поздний инкрементЗависит от структуры карты акта (длина, развилки — не определена, см. ниже «Карта и забег» → B1). Не путать с наземными зонами эффектов В БОЮ (Блок 3, «кросс-юнитные комбо + зоны» — то боевая механика). Стыкуется с типами узлов-ивентов (Блок 2.6) и уклоном наград. Реф: Spire Biomes (Steam Workshop)

Блок 2.55 — боссы: чего они требуют от движка

Три босса фракций оформлены 2026-07-29 (Enemies - Bosses). Карточки — теория, и это не «нужен ассет»: они держатся на механиках, которых нет. Сводный реестр, чтобы цена была видна одним взглядом:

Каркас Стадий принят 2026-07-29: стадия — отдельный обычный бой, стадии связаны только сюжетно (формулировка Макса). Ядро симуляции не трогается; нужен лишь контейнер узла — последовательность боёв, текст между ними, условие выбора следующего. Канон — Enemies - Bosses. Реестр ниже пересчитан по коду, а не по догадке:

ШовКому нуженСостояние
Многостадийный бойконтейнер узла (цепочка боёв + текст + ветвление)всем трёмшов внутри боя вычеркнут 2026-07-29: многостадийность живёт над боем. Остаётся оркестрация узла, которая нужна карте и так
Таймер фазы расстановкивсем трёмпринят 2026-07-29, реализации нет. Только на узлах со стадиями; истечение = входим с унаследованной расстановкой. Требует кооп-правила «чей клик последний»
Зона размещения с квотой («по два „Сосуда“ в каждой»)Гоблинская Банда, стадия 1дешёвый, решение Макса 2026-07-29: зоны есть, нужны квота и валидация до боя. Переиспользуется уникальными построениями и Приказом «Авангард»
Зона размещения кольцомГоблинская Банда, стадия 2вердикт Макса: нужно настоящее кольцо. Тех-долг формы зон берётся сознательно
Третья сторона в боюГоблинская Бандане нужна боссам (снято 2026-07-29): големы — обычные враги команды босса. Справочно, если понадобится позже: Teamint с MaxTeams = 8, не хватает матрицы враждебности вместо Team != мой, условия победы по цели (CombatSimulation.cs:903) и починки Team == 0 ? left : right (FleeSteering.cs:98)
Подкрепление посреди боя (враг входит через X сек)Разбойничье Гнездоне обсуждалось; враги сейчас все на арене со старта
Исход боя как данные (кто именно погиб → ветка сценария)Разбойничье Гнездоне обсуждалось; сейчас исход — «победа/поражение»
Профиль команды игрока (главный тип урона, связки) для баффов врагаДезертировавшая Армиядешёвый: не боевой шов, а функция от ростера до первого тика. И при этом самый ценный — единственный способ бить по подготовке, а не по бою
Перенос состояния между стадиямиДезертировавшая Армиявычеркнут 2026-07-29: «босс усилился» — это другая запись врага во второй стадии, то есть данные, а не машинерия «бой помнит прошлый бой»
Вывод юнита из боя живым (телепорт Командира)Дезертировавшая Армиядешёвый: путь DeathSystem, только без смерти
Диалог с таймером (минута молчания меняет исход)Разбойничье Гнездо«простая диалоговая система» — идея Макса, дизайна нет
Барьеры — СтенаГоблинская Бандаспроектировано (barriers), заход после позиционики
Форма зон размещения кроме прямоугольника (круг) + правило «не ближе X к своим»Гоблинская Бандатех-долг формы зон + новая валидация
Триггер по порогам HP (неуязвимость на каждой трети)Дезертировавшая Армияобразец есть: PassiveThresholdPct * MaxHP в BulwarkComponent.cs:103 — компонент по образцу
Связка «стадия → атмосфера» (свет, цвет, музыка)Дезертировавшая Армияслои есть, дирижёра нет

Вывод для планирования — ИСПРАВЛЕН 2026-07-29 после сверки с кодом. Прежняя формулировка («дешевле всех Гоблинская Банда, дороже всех Дезертировавшая Армия») была перевёрнута. Реально:

  • Гоблинская Банда сильно подешевела после разбора 2026-07-29: разделение отряда решается зонами с квотой, третья сторона не нужна вовсе, кучность наказывается молнией вместо валидации. Осталась кольцевая зона (тех-долг формы) плюс барьеры-Стены в стадии 3.
  • Дешевле и ценнее всех Дезертировавшая Армия. Профиль команды считается до тика, вывод юнита живым — существующий путь без смерти, порог HP имеет образец, перенос состояния закрыт каркасом. Осталась только атмосфера, а она полировка.

Боссы всё равно остаются приёмкой нескольких систем, а не контент-заходом — но порядок входа меняется: первой имеет смысл делать Армию, а не Банду.


Блок 2.6 — контент к созданию (не механики, а наполнение)

Задачи на авторинг конкретного контента. Требуют, чтобы соответствующие системы были готовы.

ЧтоОбъёмЗависит от
Улучшения мементоМодель принята (6 = T1×3 + T2×3, 2026-07-17/1), но расписаны только 3 карточки из 21. Нужен контент-заход: по 6 улучшений на мементо, с тестом комбинируемостиМетодичка готова (relic-upgrades); это дизайн, не редактура
Первые предметы~9 спроектировано (items-banners): 3 руны, 2 зелья, Плащ Фей, 3 статаДизайн есть (GDD-16); нужны ItemData-ассеты + движковые эффекты (Инвиз/Маскировка, руны-зачарование)
Знамёна (Party-скоуп)СНЯТО 2026-08-21/2 — механика убрана целиком, дизайн четырёх Знамён в LegacyВместо них — обычный Party Item: действует весь забег, копится без лимита слотов
Типы ивентов на картеопределить, что дают Тренировка / Турнирное / Риск-ивентДизайн узлов (сейчас не определён)
Текстовые ивенты4-8 собственныхTextEventData + EventEffect готовы; loc-ключи обязательны
Одноразовые предметы-«усилители» (2026-07-29)Новый тип: редкий предмет, используемый один раз за бойДизайн-дом — Content - Items & Banners; требует нового скоупа расходуемости и вопроса «кто и когда решает применить», ведь бой автономен
Уник-награда за сложный бой (2026-07-29)Отсылка на гоблин-боблина (уникальный наёмник) или сумка хранения (+2 слота под мементо) — выбор игрока за сложный уникальный файтПриятная развилка «нарратив против ёмкости»; сумка при этом трогает дефицит (ёмкость коллекции не смягчать — риск Legionbound), так что её размер — балансный вопрос, а не косметика
Визуал узлов карты (2026-07-29)Магазин: 3–6 левитирующих предметов, которые игроки крутят в 3D как карточки, и кручение синхронизировано между игроками. Кемп: костёр с VFX пламени и дыма. Сундук: красивое открытие с эффектамиДом — Vision - Visual Direction. Кооп-деталь про синхронное кручение — не косметика: это дешёвый со-присутственный момент, а их у нас мало (бой автономен)

Блок 3 — отложено, но записано (чтобы не потерять)

ИдеяОткудаСтатус
Manual Action Charges — 1-3 заряда приказа за весь бой, из паузы, видимый счётчикHadean Tactics (хвалят, жалоб на душноту нет)Макс: «звучит круто, но пока нет». Единственная форма микро, пережившая разбор. Вернуться, если бой окажется слишком пассивным
Обучение AI по реплею — плюс/минус на моменте боя, поведение корректируется дальшеTeamfight Manager 2Влияние на бой без слайдеров. Кандидат для массового игрока (AI-профили — для энтузиастов)
Роли игроков (Тактик / Поддержка / Разведчик)Ранний набросокНужны ли вообще (Meta - Open Forks)
Эффекты: кросс-юнитные комбо + зоныeffects §На будущееЯдро эффектов и сродства закрыты (Журнал 32–53). Отложено: комбо между разными юнитами/чужими статусами (проводимость чужого льда, детонация чужих поджогов) и наземные зоны (форма/стойкость/комбо TBD). Числа/капы/длительности — баланс Фазы 4+
Подпорки позиционирования — точки интереса на арене, разброс скоростей и AoE как рычаг расстановкиБлок 2 (2026-07-15)Приняты в план, отложены надолго (Журнал №71). Иначе свободная расстановка рискует выродиться в «танк вперёд»
Движущаяся мета — межактовые сдвиги правил (школы/сродства/глобальные моды)Teamfight Manager; Блок 2Принята в план, отложена надолго (Журнал №72). Лекарство от «мета устаканилась»
Воскрешение-ритуал при перезапуске — вместо «нажал retry» простой кооп-QTE (кликер за X сек, всей командой), чтобы поражение ощущалось как командное усилие «поднять павших», а не клик кнопкиИдея Макса (2026-07-15); завязано на пул перезапусков (Журнал №65)Кооп-момент (у нас их мало — бой автономен). Оговорки перед реализацией: (1) не на каждый ретрай — иначе рутина/налог (частая отладка билда), привязать к значимым воскрешениям / сделать коротким+скипаемым; (2) церемония, не гейт исхода — кликер всегда воскрешает (если пул есть), не «успел/не успел», иначе моторный скилл решает исход вопреки доктрине «скилл в подготовке, не реакции» (difficulty-skill); (3) соло-вариант или скип. Кооп → не раньше Фазы 6

Блок 4 — риски, которые надо не допустить

РискОткудаКак проявится у нас
AI тупит на глазахGGM (главная жалоба ветеранов), TFM2Ошибка AI = кража победы, а не своя ошибка. Чинить нечем. Приоритет качества AI выше баланса
Расстановка не читаетсяTime Walker: «лучник всё равно прёт в центр»Весь слой подготовки обесценивается за один бой
Автопилот на входеDwarves: первый час непроигрываемСтавки должны быть с первого боя
OP-комбо обесценивают бойHadean: связка убивает босса за 2 ходаРасстановка и профили перестают значить что-либо
Мусор в пулеThe Last FlameМёртвое мементо отравляет драфт 1-из-3

Инвентаризация: все открытые вопросы по документации (2026-07-15)

Сведено из всей GDD/tech-документации и handoff. Блоки 1-4 выше — приоритетное; ниже — полный список, чтобы ничего не потерять. Пункты не дублируют блоки 1-4, где пересекаются — ссылаюсь.

Бой

  • Число ретраев зашито константой (=2)решено 2026-07-15/65: пул 2 перезапуска на АКТ, не на бой; поражение при пустом пуле = конец забега. Реализационный долг (в коде счётчик на каждый бой) — тех-часть. Ничья = поражение остаётся под ревью.
  • Криты / уровни юнитов в бою — отложено; криты, если будут, детерминированные. GDD-8 §На будущее.
  • Анти-хил (grievous wounds) — множитель −% к лечению как каунтер хил-комбо. Дизайн есть (входит в идентичность Яда, реш. №39; есть и как чистый дебафф — effects); ждёт реализации в движке. GDD-8/15.
  • Реген ресурса по времени и способы восстановлениязакрыто 2026-07-27 (вечер) и добито 2026-07-28 (вечер, 2): гейт каста один — ресурсный, кулдаун у ресурсных активок нулевой, запас маны равен стоимости активки (полная шкала = ровно один каст), ману тратит ровно одна способность кита. Таблица темпа по всему ростеру — Combat - Stats §Восстановление ресурса.
  • Полный список EffectTagзакрыт (вердикт Макса 2026-07-30). Владельцев два и оба живые: enum EffectTag.cs (докстринг на каждый тег — кто ставит и кто читает) и вики-справочник состояний Effects - State Tags. Новый тег добавляется вместе с носителем, а «финализировать список» заранее было требованием без адресата.
  • Мульти-резолв контакта авто-атаки (_attackHitFrames)пункт был написан про поле, которого в коде нет. Механизм закрыт и работает иначе (уточнение Макса 2026-07-30): кадр контакта — это маркер-как-данные, AnimationEvent с functionName == "Marker", который читается в рантайме (ClipMarkers), а не колбэчит: Animator.fireEvents = false, тайминг остаётся целиком в симуляции (AttackTiming, замах от UnitVisual.AttackHitFrame). Единственное, что действительно не сделано — несколько контактов за один свинг: ClipMarkers.FirstMarkerTime берёт первый маркер, остальные игнорирует. Это требование, а не гипотеза (Макс, 2026-07-30): «может быть несколько ударов в одной анимации, и это надо учитывать». Допущение «свинг = один контакт» зашито в пяти звеньях пайплайна и тянет за собой правку DPS-коридоров — реестр звеньев и четыре развилки к решению: Тех: Техдолг §3.9.

Мементо и юниты

  • Берсерк (The Draugr)закрыт 2026-07-29: слот наполнен «Морозным драугром» из заметок Макса (брузер-контроль на холоде, дробящий двуручник, канал-добивание). Архетип «Берсерк» из ростера уходит — без Ярости он был просто брузером с большим уроном. Канон — The Draugr (Frostbound).
  • Прилив (The Tide) — луч по линии + пометка Макса «сплит на двух персонажей». handoff.
  • Бард (The Cadence) — 2 активки при правиле «Обычная = 1 активка» + юнит без автоатаки; конфликт. handoff.
  • Долг Ф1: 3 мементо отклоняются от карточек ГДД (споры не лечат, воспламенение без стаков, поджог плоский, шипы без роста радиуса) — привести к ГДД. handoff.
  • Судьбы «Сосудов» — список, условия открытия, баланс (Фаза 4+). GDD-5.
  • Взаимодействие Судьбы «Нестабильный» и Проклятых мементо с травмами (не складывать двойным счётом). GDD-9.
  • Травмы/Закалка — числа, пороги, ступени, обратимость, детерминированные vs RNG триггеры, визуализация. GDD-9.
  • Божественные мементо — источник (ивенты) не построен, RunEffects пусто. GDD-5, TECH-13.
  • Стартовые наборы и уникальные механики Капитанов — контент-дизайн. guildmaster.

Мета-прогрессия и экономика

  • Рарность: split KitPower + DropRarityсверено с HEAD 2026-07-30: split в коде есть. ContentEnums.cs держит обе оси ортогонально (KitPower = Common/Cursed/Divine, DropRarity = Trash/Common/Unique с ramp 10/20/100% за бой/элиту/босса), цены по KitPower — в GameConfig. Ramp наград ничем не заблокирован; противоречие №4 в journal-adr снято.
  • Точные ×2/×3 у элиты и босса — TBD. GDD-12.
  • Кооп-механизм принятия/реролла/отклонения испытания (голосование? хост?) — TBD. GDD-12.
  • Кривая копий на уровень (3/6/9 vs мягче) и источник/частота копий — TBD. GDD-12.
  • Тюнинг-риск испытаний — полоса «настоящий выбор, не lose-lose» на всех возвышениях. GDD-12.
  • Механика модификаторов забега (Ascension/pact)RunModifierData черновик. TECH-13.
  • GoldBounty у врагов — черновое поле, не проставлено. TECH-13.

Карта и забег

  • Когда игрок узнаёт испытание (A / B)решено 2026-07-15/68: вариант B, раскрывается при заходе в стадию размещения.
  • Скрытие состава врага — перепроверитьрешено 2026-07-15/22 + /66: на узле только сложность, Вид в тултипе, состав скрыт. Контр-аргумент Legion TD 2 остаётся записанным в open-forks §D1, но развилка закрыта.
  • B1: генерация карты из сида vs пролог-templateзакрыто (вердикт Макса 2026-07-30): генерация из сида. Код развилку уже прошёл — MapGenerator.Generate(IRngService, MapGenConfig) строит граф акта детерминированно, ширина колонок и типы узлов катятся из того же IRngService. Пролог по шаблону не вводим. Пункт числился блокером карты акта, пока карта работала.
  • Содержание узлов Тренировка / Турнирное / Риск-ивент — контент-дизайн. TECH-7, GDD-7.
  • Точный повтор боя с тем же сидом (Shift+R) — обсуждается. GDD-11, TECH-11.
  • Магазин во второй половине актарешено 2026-07-26/4: магазин живёт на этажах 2–6 и 9–12, обязательным узлом не назначается; сундук — только якорь на 8 и «?». Таблица спавна — events-minigames §Что где спавнится.

Кооп

Кластер заведён 2026-07-30: Coop - Overview и четыре дока при нём (presence, arbiters, Coop - Minigames & Roles, sync-model). Развилки коопа перечислены там же в §Открытые развилки кластера и здесь не дублируются.

  • Роли игроков (Тактик/Поддержка/Разведчик) — нужны ли вообще; «Арканист» снят вместе с заклинаниями ГД. Развилка переехала в Coop - Minigames & Roles §Роли и семи-кооп (2026-07-30), там же вердикт скрайба «жёсткие роли — нет» и альтернатива (Обеты Гильдмастера).
  • Поведение ГД при выходе игрока-владельцавопрос отпал: конструкт из вырезанных заклинаний Гильдмастера (управление ГД передавалось одному игроку). Ввода в бою нет, передавать нечего — см. legacy.
  • Mid-battle реконнект — снапшот состояния vs переигровка лога команд. TECH-7 §10. Дизайн-требование к нему уже есть: отстающий догоняет, а не тормозит группу (sync-model §Класс 1).

Контент / данные

  • Нейминг Party-предметов («Знамя»? «Талисман»?)пересмотрено 2026-08-21/2: имя Party Item, отдельного слова у скоупа больше нет (прежнее решение «Знамя» от 2026-07-15 снято вместе с механикой).
  • Капабилити-как-эффект — рефактор при первом не-юнитовом источнике. TECH-13.
  • Формат id в старых доках (relic_flame_swordrelic.flame_sword)миграция выполнена (сверено 2026-07-30): во всём vault старый формат остался ровно в одном месте — в этой самой строке.
  • Структура RunState в деталях (поля, версионирование сейва)закрыто ТЗ сейвов (Тех: Сейв-система): иерархия профиль → гильдия → забег, конверт с schemaVersion, две шкалы версий, SlotOwnerLastOwnerKey как сессионная величина.
  • Контент-теги мементо vs EffectTag — разграничить при авторинге. GDD-0.3.
  • Миграция карточек врагов на Вид/Подвидвыполнено 2026-07-26 (журнал 2026-07-24 §Оси врага): поля, тела карточек, доки видов и папка factions/species/.
  • VfxCatalog — по образцу AudioCatalog, когда дойдём до VFX. TECH-13.

Прочее (AI, UI, скоуп)

  • AI-движок: канон-док не написан — большой сырой пласт в черновике (Score min/max, заготовки, шаринг, Classic/Extra, компендиум, сравнение до 4 профилей, test-arena). GDD-0.3.
  • AI-пресеты архетипов (D2) — один пресет на Мементо, нужны 2-3; дизайн Макса. handoff.
  • Экраны наград/ивентов собраны кодом, не UXMLпереезд выполнен (сверено по коду 2026-07-30): RewardScreen.uxml, EventScreen.uxml, ShopScreen.uxml, OutcomeScreen.uxml лежат в Assets/_Project/UI/Screens/. Пункт числил нарушением HARD-правила то, чего уже нет.
  • Процедурный лор — открытые вопросы: размер пула, флавор vs механика, портреты, имена «Сосудов». GDD-10.
  • UI-ребиндинг и геймпад — не заложены. GDD-11, TECH-11.
  • Форма зон расстановки (пока прямоугольники) и анти-оверлап при drop. TECH-10.
  • Подсветка Extended-зон при drag. TECH-10.
  • Скоуп фестиваля — подтвердить компактный срез vs полный акт. TECH impl-01.
  • UI-технология (всё на UITK vs гибрид), дизайн-системазакрыто (вердикт Макса 2026-07-30): гибрид. Экраны на UI Toolkit с MVVM, боевой HUD — uGUI (Image.Filled и родня); дизайн-система токенов существует и обязательна (Тех: Правила кода, скилл uitk). Развилка была закрыта практикой задолго до этой строки. Открытым остаётся только Figma-пайплайн — нужен ли он вообще при готовой системе токенов.
  • Steam Workshop / UGC — заложено швами, не реализовано. GDD-0.3, TECH-13.

2026-07-15 — Таймер боя и правило затягивания

Бой ведёт счётчик прошедшего времени (реализовано). Правило анти-затягивания решено, но отложено: 90 сек нормального темпа → ×2 ускорение → ещё +60 сек → ничья (для игроков = поражение). Числа — ориентир. Причина: сначала игровая петля и UI, само правило — отдельным заходом. Детали в combat-system «Таймер боя».

Долги кода, связанные с дизайном

  • AffinityTable — снятьСНЯТА 2026-07-26. Таблицы нет, множителя в DamagePipeline нет, сродство на число урона не влияет. Взамен стоит guard-тест Affinity_NeverScalesDamage_ByCreatureType, который валится, если матрица вернётся. Попутно снят мёртвый прокси RuntimeUnit.CreatureType (жил только ради таблицы; UnitData.CreatureType — контентное поле — остался).
  • GuildmasterData._spells ещё в кодеСНЯТО 2026-07-26 вместе со свойством Spells. Поле не читал никто, ассетов Гильдмастеров в проекте нет.
  • Локализация текст-ивентов прямыми строкамиуже закрыто в коде: TextEventData отдаёт TitleKey / BodyKey по конвенции {id}.title / {id}.body (сверено 2026-07-26).
  • «Команда игроков» как константапроверено и закрыто 2026-07-26. Аудио было чистым (AudioPresenter спрашивал ILocalPlayer.Team), а вот CombatPresenter держал собственное сериализованное поле _localViewerTeam — второго владельца того же факта. Поле снято, презентер получает ILocalPlayer через DI; «свой/чужой» решается одним методом IsAllyOfViewer, от него же теперь идут подпись болванчика и его тинт (раньше сравнивали с константой 0).

Важно: handoff датирован раньше нескольких коммитов. Пункты про рарность, хвост E3 (AlliesInRadius) и teams-not-player-won, возможно, уже закрыты в git — сверять с актуальным HEAD, не брать из handoff вслепую.

Спроектировано, но не реализовано в коде (крупное)

Петля забега: карта акта (B1), главное меню (C1), магазин, пролог (B2), экран исхода боя, ramp редкости. Бой/контент: 6 мементо + уник, 9 из 13 врагов, AI-пресеты, ~8 предметов + баннеры. Механики: позиционика (слоты, фланги, агро танка), барьеры — Стена и Купол (дизайн + план, заход после позиционики), уникальные цели боя + союзные NPC, многофазовые бои, Судьбы, травмы/закалка, досье, мини-игры, испытания. Инфра: ES3 + Steam Cloud, арена через Addressables, вся сеть/кооп (Фаза 6).