Решили: двадцати юнитам без визуала выдали временное тело переиспользованием одиннадцати legacy
спрайт-паков: пак подбирается по силуэту (мили-паки мили, посох и лук дальним), различитель внутри
пака — BodyShade. Новых ассетов не создано; правились только _visual, _viewPrefab, _bodyShade
в двадцати SO.
Почему: просьба звучала как «пусть даже один вид с разными тинтами», и это первое, что мы
отвергли: ступеней BodyShade всего четыре, а юнитов двадцать — один пак их не разводит физически.
Вторая отвергнутая — нарисовать/сгенерировать новый арт: временное тело нужно было к ближайшему
прогону боя, а арт персонажей сейчас в пивоте на плоский сторибук и любая генерация ушла бы в мусор.
Пара «пак + ступень» даёт 44 комбинации на 48 юнитов, и этого хватает с запасом.
Побочный выигрыш, о котором не просили: у двенадцати из двадцати _windupShare стоял в нуле, а без
UnitVisual кадров для расчёта замаха нет — свинг падал на телеграф-пол в три тика и удар прилетал
почти мгновенно. С паком замах считается из клипа, как у остальных.
Сказано: «Пусть даже чисто обычный с разными тинтами. Но визуал должен быть у всех-всех, чтобы я смог корректно их тестить в бою» (2026-08-03, сессия af8ef6b9).
Грабли: ступень Tan на красном не работает — это написано в её докстринге, но увидели мы это
только на контактном листе: EarthGolem с Tan оказался неотличим от Druid без ступени, оба
красные грибы. Переведён на Verdant. Отсюда правило для следующего, кто будет раздавать тела:
вердикт даёт лист, а не таблица назначений — Alebardium/Visuals/Export Unit Visual Catalog
рисует ровно игровой цвет тела, потому что берёт его из той же палитры, что бой.
Второе: шесть юнитов, у которых визуал уже был, делят пару «пак + ступень» с соседом
(GoblinJester, GoblinMocker, GoblinShaman неотличимы от GoblinArcher; TrashHerbalist от
LightShepherd; BanditAssassin от GoblinCutthroat; GoblinWolfrider от GoblinGrunt). Это
старше нашей правки и в ней не чинилось: свободных пар осталось пять на шесть коллизий.
Владелец правды: Assets/_Project/ScriptableObjects/{Relics,Enemies}/*.asset (назначения),
UnitColorRoles.BodyShade (что каждая ступень делает с цветом),
ExportUnitVisualCatalog.cs (лист, на котором это проверяется).