Матрица взаимодействий
Определение
Таблица из 11 025 записей — 105 × 105, — где для каждой направленной пары «атакующая роль → целевая роль» заранее задан исход: Промах, Удачная Атака или Обратное действие.
Зачем существует
Чтобы исход боя был решением дизайнера, а не следствием формулы. В обычной мафии «кто кого» выводится из силы ролей. В МинСити каждая из 11 025 пар выставлена вручную — поэтому Кому берёт почти любой убийца, а Смерть карает почти каждого.
Это позволяет держать точечные исключения, которые формулой не выражаются: Фабиан косит Легенд и мажет по смертным, Изверг охотится на мифы, Дельта не берёт никого.
Описание
Матрица не вычисляется на лету. Движок грузит её в память один раз и делает чистый лукап по паре слагов:
resolve(атакующий, цель) → (исход, очки)
Никаких проверок фракции, силы или типа роли внутри нет. Вся логика «кто кого» лежит в данных, а не в коде.
Ориентация осей строгая: строка — кто нападает, столбец — на кого. Пара «А → Б» и пара «Б → А» — две разные записи с разными исходами.
Распределение на 18 июля 2026:
| Исход | Записей | Доля |
|---|---|---|
| Промах | 5901 | 53,5% |
| Удачная Атака | 4864 | 44,1% |
| Обратное действие | 260 | 2,4% |
Матрица меняется — 18 июля переразмечены 146 ячеек, Смерть, Тень и Будда получили контрудар. Числа выше — срез на эту дату.
Связи
Матрица→ возвращает →TERM-0207Промах ·TERM-0208Удачная Атака ·TERM-0209Обратное действиеМатрица→ используется →TERM-0010Кровавая ЖатваРоль→ занимает → строку и столбец матрицы
Частые заблуждения
«Если X сильнее Y, X победит». Понятия «сильнее» в игре нет. Есть ячейка. Её смотрят, а не выводят рассуждением.
«Матрица решает, кто умрёт». Матрица решает, попало ли действие. Что именно случится при попадании, зависит от того, что за действие. Подробнее — TERM-0208.
Источники
resolver.py · мастер-книга, лист Interactions · RoleInteraction в БД · GT §5
Промах
Определение
Исход 0. Действие атакующего не применилось к цели, действие цели не применилось к атакующему. Ночь прошла впустую для обоих.
Зачем существует
Промах — основа устойчивости в МинСити. Именно им защищены Легенды от рядовых убийц и город от слабых атак. Без промаха каждая ночь была бы резнёй.
Это самый частый исход: 5901 запись из 11 025, больше половины матрицы.
Описание
Промах не означает, что роль сработала плохо. Он означает, что на этой конкретной цели её действие не работает.
Крайние случаи показывают это лучше всего:
| Роль | Промахов из 105 | Что это значит |
|---|---|---|
| Дельта | 104 | Убийство условное — по матрице не проходит почти никогда |
| Сапер | 104 | Убивает спец-логикой, не матрицей |
| Фабиан | 87 | Палач Легенд: мажет по всем 86 смертным |
| Комиссар | 81 | Бьёт узкий профиль — 23 цели |
| Шериф | 80 | То же: закон работает избирательно |
Фабиан — чистая иллюстрация: 87 промахов у него не слабость, а инверсия. Он не создан бить смертных.
Связи
Промах→ возвращается →TERM-0206Матрица взаимодействийПромах→ не создаёт →Эффект
Частые заблуждения
«Промах — это неудача роли». Нет. Роль отработала правильно; просто цель ей не по зубам. Шериф, мажущий по Легенде, не ошибся — он физически не может её взять.
«Много промахов = слабая роль». У Фабиана 87 промахов и он один из сильнейших: всё, что ему нужно, — девятнадцать Легенд.
Смежные статьи
TERM-0208 Удачная Атака · TERM-0209 Обратное действие · TERM-0206 Матрица
Источники
resolver.py:16 · мастер-книга, лист Canon · GT §5.1
Удачная Атака
Определение
Исход 1. Атакующий успешно применил своё действие на цель.
Зачем существует
Это утверждение «действие достигло цели» — и только оно. Матрица не знает, что за действие она пропускает: убийство, проверку или защиту. Она отвечает на один вопрос — попало ли.
Такое разделение позволяет одной таблицей обслуживать все 105 ролей: и убийц, и разведчиков, и лекарей.
Описание
Удачная Атака не равна смерти. Это главное, что нужно понять про матрицу.
Что произойдёт при попадании, определяет вид действия атакующего:
| Роль | HIT из 105 | Вид действия | Что значит попадание |
|---|---|---|---|
| Сосед | 101 | разведка | Успешно проследил |
| Маньяк | 99 | убийство | Цель мертва |
| Мелвин | 89 | защита | Цель прикрыта |
| Понтий | 87 | разведка | Узнал группу цели |
| Комиссар | 23 | убийство · арест в тюрьме | Убил или посадил — зависит от сценария |
У Соседа больше попаданий, чем у Маньяка, — но он никого не убивает. Он просто хорошо подглядывает.
Комиссар — второй показательный случай: одна и та же Удачная Атака означает смерть в базовой игре и арест в тюремном сценарии. Матрица в обоих случаях говорит одно и то же.
Связи
Удачная Атака→ возвращается →TERM-0206Матрица взаимодействийУдачная Атака→ создаёт →Эффект, зависящий от вида действия атакующего
Частые заблуждения
«HIT — значит убил». Только если атакующий — убийца. У разведчика это успешная слежка, у защитника — установленный щит.
«У кого больше HIT, тот опаснее». У Соседа 101 попадание и ноль трупов.
Смежные статьи
TERM-0207 Промах · TERM-0209 Обратное действие · TERM-0206 Матрица
Источники
resolver.py:17 · night.py:1452 — «matrix outcome решает, ПОПАЛА ли атака; семантика [зависит от действия]» · GT §5.1
Обратное действие
Определение
Исход 2. Эффект роли-цели применяется к атакующему. Удар возвращается тому, кто его нанёс.
Зачем существует
Чтобы у безоружных ролей была защита, которую нельзя просчитать по силе. Обратное действие превращает нападение из расчёта в риск: ты не знаешь, на кого замахнулся, пока не замахнулся.
Это самый редкий исход — 260 записей из 11 025, чуть больше двух процентов. Редкость и делает его опасным: его не ждут.
Описание
Единого эффекта не существует. Что именно произойдёт, определяет цель, а не атакующий:
| Напал на | И получил |
|---|---|
| Смерть | Погиб. Контрудар |
| Тень | Она забрала твою роль и играет её до конца |
| Будда | Лишился возможности атаковать |
| Солнечный Зайчик | Поменялся с ней ролями — сам стал Зайчиком |
| Сахарок | Отдал ей все свои монеты. Оба живы |
| СуперАдам | Атака отражена, ты не преуспел |
Четыре роли собирают три четверти всех обратных действий:
| Носитель | Записей |
|---|---|
| Солнечный Зайчик | 64 |
| Тень | 45 |
| Смерть | 44 |
| Будда | 41 |
Ещё 21 у Налетчика, 20 у Сахарка. Остальные 25 носителей имеют по одной записи — точечный контрудар против конкретного обидчика.
Реактивная четвёрка — не стена, а капкан. Из 36 убийц города 27–29 гибнут, напав на Смерть, Тень или Будду. Их почти невозможно «взять» — зато очень легко на них погибнуть.
Так было не всегда: до 18 июля 2026 эти трое просто промахивались по нападавшему. Переразметка матрицы дала им контрудар, и расклад ночи изменился — Маньяк, например, перестал ходить на них вовсе.
Связи
Обратное действие→ возвращается →TERM-0206Матрица взаимодействийОбратное действие→ определяется → ролью-целью, не атакующимОбратное действие→ может создать → смерть атакующего · обмен ролями · потерю монет · блокировку атак
Частые заблуждения
«Обратное действие — это когда тебя убивают в ответ». Только на Смерти. На Сахарке потеряешь деньги, на Зайчике — роль, на Будде — возможность бить.
«Раз редкий — можно не учитывать». Два процента матрицы держат в страхе всю ночную фазу. Четыре роли, на которые нельзя нападать, меняют поведение всех тридцати шести убийц.
Смежные статьи
TERM-0207 Промах · TERM-0208 Удачная Атака · TERM-0206 Матрица
Источники
resolver.py:18 · матрица (260 записей) · GT §5.2 · переразметка 2026-07-18