Решили: площадь заряженного удара — поле ЗАРЯДА (EmpowerNextAttackComponent._splashRadius), а не
кита. Центр площади — цель, соседям достаётся та же цифра урона, но не on-hit эффекты и не
расщепление по школам.
Почему: AutoAttackShape в UnitData описывает обычный удар носителя, поэтому кит с одиночной
атакой и редким размашистым взмахом им не выражается вовсе — а именно такие двое и заказаны: огненные
сферы гоблина-мага (×2 урона по площади, пока сфера есть) и третий удар земляного голема в цикле
1-2-3. Заряд уже носит множитель, пробитие, отброс и бонусные наложения; площадь — того же рода
свойство «этого одного удара», и другой дом ей завёл бы второго владельца формы. On-hit соседям не
отдаём намеренно: он оплачен ударом по ЦЕЛИ, иначе яд с клинка размазывался бы по всем задетым бесплатно.
Расщепление снято под конкретную жертву и на соседей не переносится.
Грабли: тест на это писался дважды. Первая версия читала HP после прогона — но цель и её сосед живые
враги, они бьют в ответ, и «сколько у него осталось» отвечает на другой вопрос, чем «что сделал этот
удар». Считать надо по OnDamageDealt и только от носителя, обрывая прогон на первом его ударе: иначе в
счёт попадает и следующая, уже НЕ заряженная атака. Та же природа, что у предыдущей ошибки этого дня
(замер по финальному кадру) — сравнивать надо событие, а не состояние.
Владелец правды: RuntimeUnit.EmpowerSplashRadius (remarks про «заряд, а не кит»),
AutoAttackSystem.SplashIfEmpowered, тест EmpoweredHitSplashTests.