Смещение (Displace)

Класс: CC · Полярность: Debuff · Теги: Control, KnockUp Стакинг: — · Снятие: Unremovable (контроль-иммунный полёт)

Принудительное перемещение цели — knockback (от источника), pull (к источнику), teleport (в точку). Особый род контроля: на время полёта цель оглушена, и это окно не режется tenacity (реф — knock-up в LoL).

Механика

Отдельная система DisplacementSystem детерминированно мутирует Position фикс. шагом, держит контроль-иммунный стан в полёте, снимает в конце. Тег KnockUp маркирует такой эффект — EffectSystem исключает его из скейла сопротивлением.

Длительность полёта = дистанция ÷ скорость (решение 2026-07-28). Отдельного параметра длительности нет, чтобы одно свойство не получило двух владельцев. Скорость берётся из общего дефолта (DisplaceSpeedPerSecond), но источник может задать свою — тяжёлый медленный бросок и быстрый пинок на одну дистанцию держат цель в контроле разное время.

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

Удар в стену: урон, остановка, лежание (решение 2026-07-28). Если летящий упирается в край арены:

  1. получает урон толчка повторно (один раз за полёт);
  2. полёт останавливается — скольжение вдоль границы выглядело бы сломанным;
  3. цель лежит оглушённой ещё ~1 с (WallImpactStunSeconds), и только по окончании лежания приходит «конец смещения» — то есть реактивы вроде телепорта Монаха срабатывают после, а не в момент удара о стену.

Развернуть цель в стену выгоднее, чем в пустоту, и это читается без цифр в тултипе. Самосмещение о стену не наказывается: рывок кастующего (source == цель) не станит его самого.

«Ядро» (Монах): при флаге CannonballDamage летящий юнит на пройденном сегменте бьёт только врагов кастующего (QueryUnitsInLine), своих не задевает; дистанция фиксирована. Коридор полёта считается на 25% шире базовой ширины «ядра» (решение 2026-07-28): толчок в плотный строй должен цеплять соседей, а не только тех, кто оказался ровно на линии.

Снятие и контра

Обычным диспелом не снимается (Unremovable); ответ — переждать полёт / иммунитет к смещению (напр. Идеал под «Идеальной формой» неоткидываем).

Комбо

Сигнал UnitDisplaced читают реактивы — напр. «Вихревой заход» Монаха (телепорт-в-спину ×2 на любое смещение). Прочее — матрица.

Потребитель может продлить контроль за конец полёта: «Вихревой заход» вешает на цель полный микро-стан 0.25 с до своего удара, чтобы между толчком и добиванием не было ни одного кадра, в котором цель свободна (решение 2026-07-28). Само «Смещение» такой стан не выдаёт — это свойство реактива, а не полёта.

Баланс-флаги

  • Детерминизм порядка мутаций Position относительно движения/spatial hash — спайк.
  • «Ядро» бьёт только врагов кастующего — без friendly-fire.