Решили: «залп из N стрел» выражается ПОВТОРОМ нагрузки способности
(AbilityData._payloadRepeats + _payloadRepeatGrowth, счётчик — AbilityRuntime.CastsThisBattle),
а «сразу пять стаков» — порцией у эффекта (EffectData._stacksPerApplication).
Почему: отвергнут очевидный вариант «один удар с множителем ×N». Каждая стрела Арканиста несёт свой стак «Разлада», а стаки — не число, а состояние на цели: множитель урона дал бы то же суммарное число и ни одного лишнего стака. Обратный вариант — выражать пять углей Хранителя тем же повтором нагрузки — тоже отвергнут: в нагрузку входит диспел, и пятикратный повтор означал бы пять очищений вместо одного. Поэтому механизма два, и они про разное: повтор — «сколько раз ударили», порция — «сколько это стаков».
Разгон считается от ПРЕДЫДУЩИХ кастов, а счётчик растёт вместе с ценой каста (не с применением нагрузки): у канала нагрузка приходит много раз за один каст, и считать её срабатывания значило бы разгонять залп периодом канала.
Грабли: повтор оборачивает только форму нагрузки. _selfEffects, призыв и сброс таймера
авто-атаки остались вне цикла сознательно — иначе щит «Стального вихря» умножался бы на число
ударов. Следствие видно в контенте: «Раздуть жар» кладёт на союзника пять углей, а на себя один.
Владелец правды: AbilityData.cs, AbilitySystem.ApplyPayload, EffectSystem.TryAddStack,
тест PayloadRepeatsTests.