Решили: запас усиленных ударов (огненные сферы гоблина-мага) расходуется в момент взвода заряда, а
не по факту нанесённого удара. FireOrbsComponent из-за этого перестал быть реактивом: вся механика живёт
в его тике.
Почему: взвод идёт ДО удара (иначе усиливать нечего — цифры снимаются на замахе), а событие урона приходит ПОСЛЕ. Расход по событию поэтому всегда отстаёт на один: три сферы давали четыре усиленных удара, и пятый выходил обычным. Считать «сколько раз ударил заряженным» невозможно раньше, чем удар случился, — значит правильный момент один, и это взвод.
Грабли: дефект не выглядел дефектом. Урон каждого удара по отдельности был верным, ускорение работало, сферы возвращались по расписанию — неверен был только их СЧЁТ, а он единственное, чего в бою не видно. Второе, уже в тесте: откат сферы поставила равным интервалу атаки (по секунде), и тест не различал «сфера вернулась» от «сфера не тратилась вовсе» — числа в стенде обязаны быть заведомо разными, иначе зелёный ничего не значит.
Владелец правды: FireOrbsComponent.OnTick (комментарий про момент расхода), тест FireOrbsTests.