Решили: дев-дуэлянт BoneDevDuelist получает BodyShade = Ash — тело перестаёт быть белым везде,
где этот юнит появляется (бой, карточки, дев-стенды), потому что ступень читают все потребители.
Почему: белое тело съедает светлые аддитивные искры (см. запись
«A White Body Eats Its Own Effects»). Отвергнута
покраска самого префаба UnitView_BoneStandart: презентер каждый кадр пишет тинт из данных через
UnitView.SetTint → IUnitBodyVisual.Apply, и цвет, выставленный на префабе, был бы затёрт в первом
же кадре. Ash не выдуман под задачу — он уже описан в BodyShade как «единственная ступень,
заметная на ЛЮБОМ арте», и его уже носят TrainingDummy и LightShepherd.
Грабли: метрика «средняя дельта по максимуму RGB-каналов», которой я мерила читаемость эффекта, показала прирост всего 0.09 → 0.11 — а глазами разница огромная: жёлтые искры на холодно-сером теле читаются, на белом растворяются. Метрика ловит ЯРКОСТЬ и почти не ловит ТОН, поэтому по ней нельзя делать вывод «не помогло». Контактный лист рядом с числом обязателен: число здесь врёт убедительнее, чем картинка.
Владелец правды: ScriptableObjects/DevTools/BoneDevDuelist.asset (_bodyShade),
UnitColorRoles.Shade (ступень → цвет из палитры), Data/Definitions/UnitColorRoles.cs (смысл ступеней).