Решили: линейка баланса получила норму ЛЕЧЕНИЯ (BaseHps = 110, HealMult: Целитель 1.0,
Поддержка 0.5, остальные 0) и заполненные бюджеты брони (120/60/30/20), а норма DPS лишилась второго
владельца — SyntheticUnits больше не держит свою таблицу и читает ClassBalanceConfig.
Почему: до этого стенд мерил только урон и голое HP. Лечение считалось (HealDone в дуэльной
матрице и энкаунтер-бенче), но сравнить его было не с чем, поэтому основная работа Целителя и
Поддержки не нормировалась вообще — а значит, и не выравнивалась. Норма взята в общей валюте с
уроном: одно вылеченное HP равно одному нанесённому, отсюда HPS-норма Целителя равна DPS-эталону
Брузера. Отвергнуты 55 HPS («полбойца» — вдвое выше факта, но оставляет класс заведомо дешевле
бойца) и 154 HPS («как урон Убийцы» — уводит бои в овертайм, а овертайм у нас уже открытая проблема
BAL-010). Бюджеты брони взяты из докстринга, а не из среднего по живым китам: киты ему и так следуют
(Треант 90+30=120, вихревой монах 25+35=60), то есть отставал именно ассет.
Сказано: «И у нас есть проверка выживаемости в статах? Реальная выживаемость + реальное хп (хп + зашщита)? Есть требования и подсчет для поддержки? Сколько должны хилять? А то будто этого не хватает сильно» (2026-08-01, сессия 73914135). Вердикты по трём развилкам — его же: норма 110 HPS, бюджеты брони по докстрингу, набор маны с ударов трешам не давать.
Грабли: норма DPS имела двух владельцев почти незаметно. SyntheticUnits.TargetDps давал Танку
60, Убийце 144, Дальнику 120, а ClassBalanceConfig — 55 / 154 / 132; по первой таблице собирались
эталонные НАПАРНИКИ в отрядных бенчах, по второй печатался столбец нормы в отчёте. То есть замер
сравнивал кит не с той линейкой, которую показывал. Комментарий в файле стенда при этом прямо
утверждал «в ClassBalanceConfig его нет» — неправда с того дня, как в конфиг завели DpsMult.
Вторая мелочь: run-tests.ps1 -Filter <класс> без -Mode EditMode печатает «Some tests failed», хотя
EditMode-часть зелёная — просто под фильтр не попал ни один PlayMode-тест, и пустой прогон считается
провалом.
Владелец правды: ClassBalanceConfig.cs (GetDpsNorm, GetHealNorm, GetEhpNorm),
ClassBalanceConfig.asset (числа), тест ClassNormOwnershipTests.