Эффекты: что движок умеет, а что нет

Каталог эффектов — Combat - Effects и карточки рядом. Здесь только одно: какой эффект можно выдать контентом сегодня, а какой сначала надо заказать в движок.

Как читать статус

Мерка у эффектов другая, чем у карточек юнитов: не «есть ассет EffectData», а есть ли рантайм-поддержка — компонент в Assets/_Project/Scripts/Combat/Effects/Components/ или система боевого ядра. Ассет без компонента ничего не делает, поэтому считать по ассетам было бы врать.

implЗначит
engineкомпонент/система есть, эффект выдаётся данными
partialчасть примитива есть, часть нет — деталь в impl_note
paperв коде нет ничего; контентом не выдать

Ручная сверка — 2026-07-29 (по списку компонентов и грепу боевого ядра). Сверка неглубокая: она отвечает «есть ли механика вообще», а не «совпадают ли числа с карточкой».

Что движок умеет

TABLE impl AS "Состояние", asset AS "Ассеты EffectData", impl_note AS "Чем поддержано"
FROM "gdd/20-combat/effects"
WHERE impl = "engine" OR impl = "partial"
SORT order ASC

Чего движок не умеет вовсе

TABLE status AS "Статус дока"
FROM "gdd/20-combat/effects"
WHERE impl = "paper"
SORT file.name ASC

На 2026-08-01 это Очарование, Ярость, Сон — в коде нет ни компонента, ни тега. Практическое следствие: любой черновик юнита, стоящий на этих трёх (а такие в открытых вопросах есть), — это заявка в движок, а не готовый к авторингу дизайн. Учитывать при оценке «сколько стоит новый герой».

Кровотечение из этого списка вышло 2026-07-30 и стояло здесь по инерции. В движке оно целиком: effect.bleed (PeriodicDamageComponent, тип урона Bleed, порции без потолка), пассивка-носитель BleedOnHitComponent («мои удары пускают кровь», доля от урона по статам) и тег tag.bleed. Ошибка стоила решения: 2026-08-01 разбойника-убийцу я отложила как «сначала завести кровь в движок» — заводить было нечего.

Частичные:

  • CC-примитивы — стан есть (ControlComponent); обездвиживание, сон и немота отсутствуют. Это упирается в тему «холодная линия» из Meta - Roadmap §Блок 2, где обездвиживание — вторая ступень.

Обновление 2026-07-31 (заход по ростеру врагов, docs/enemies-implementation-progress.md):

  • Ядидентичность яда закрыта: анти-хил заведён шкалой effect.antiheal_weak|medium|strong|absolute (30/50/75/100% поверх HealShieldTakenEff) и уже стоит на отравленном арбалете разбойника. Яд и кровотечение больше не механические близнецы.
  • Слепота (сборник стат-модификаторов) — в движке (BlindComponent), первый носитель Гоблин-шутник. Промах детерминированный, по счётчику атак носителя; глубина — стаки 1-4 порциями.
  • Меткость — по-прежнему paper; пока её нет, у слепоты нет прямой контры из каталога.

Доки-правила (статус не применим)

Property Reference · Combo Rules · Template — это справочники и шаблон, а не эффекты; поля impl у них нет намеренно.