Решили: свечение части при касте подключено к событиям каста в CombatPresenter СРЕЗОМ — роль всегда Weapon. Подготовка (AbilityCastStarted) заряжает свечение за cast-time, выпуск (AbilityCast) даёт всполох ТОЛЬКО если подготовки не было (мгновенный приём); обрыв (AbilityCastInterrupted) гасит. Цвет — VfxColor юнита × CastGlowBloomIntensity.

Почему: событие каста несёт только casterId (+ seconds у Started) — ни природы навыка (направленный удар против длительного баффа), ни части-источника там нет. Полное различение (бафф → контур, удар → оружие, пинок → нога) требует, чтобы шов sim→показ понёс ability-данные — это стык с combat-sim и поле роли/природы в AbilityData, отдельный заход и дизайн по каждому навыку. Из двух путей (срез сейчас против расширить событие) Макс выбрал срез: видимое SAO-свечение оружия в игре сразу, тонкое различение — когда событие обогатится. Граница честная, не тихий дефолт.

Грабли: выпуск после подготовки нельзя запускать всполохом заново — свечение моргнёт с нуля на самом важном кадре. Поэтому кастеры в фазе заряда помечаются в _glowCharging, и AbilityCast по ним свечение не трогает: заряд уже дошёл до пика и сам идёт в спад. Набор чистится на HandleBattleReset — иначе заряд прошлого боя пометил бы id, переиспользованный в новом.

Владелец правды: CombatPresenter.cs (HandleAbilityCast*, _glowCharging, GlowColorFor), UnitView.PlayCastGlow. Замысел «часть-источник, не только оружие» — gdd реш. 2026-07-31/60.