Работа по указаниям 2026-09-18. В релиз пока не выходит. НОВЫЙ ПИТОМЕЦ "Дух крысы" (necroRatSpirit), Некромантия 3 (60 убийств): модель зомбоволка в масштабе 0.28, урон 5, кроличьи звуки. Сам не нападает никогда, держится справа-сзади в двух блоках, упёршись в препятствие проходит СКВОЗЬ него и блоков не ломает. Укус замедляет, оставляет метку духа (видна на компасе, +25% получаемого урона) и рвёт жилу. Обгрызая труп, лечится. СВОЯ ЗАДАЧА ИИ. Задачи "иди за сущностью" в игре нет вовсе - проверены все 32 типа EAI*. Написана NecroFollowOwnerTask по образцу EAIApproachSpot: сектор "3-6 часов" от хозяина, FindPath с canBreak:false, проход сквозь препятствие через Entity.IsStuck. Вешается в рантайме, минуя Type.GetType. ПРИКАЗ АТАКОВАТЬ. Повторное применение свитка при живом питомце натравливает его на цель под прицелом: EntityPlayerLocal.HitInfo + ItemActionAttack. GetEntityFromHit. Торговцы и игроки отсеяны. Нет цели - "Нет цели для атаки". ЗОМБОЖИВОТНЫЕ ПРИВЕДЕНЫ К ТОМУ ЖЕ ОБРАЗЦУ. Сняты BreakBlock, Territorial, ApproachSpot, Wander, BlockingTargetTask и поедание трупов; цель они больше не выбирают сами. Лестница урона 20/35/45/60 плюс расчленение у Пса, Медведя и Волка. Кровотечение всем, метка и ослабление - только у крысы. УБИЙСТВА ПИТОМЦЕМ ЗАСЧИТЫВАЮТСЯ ВЛАДЕЛЬЦУ, включая добивание кровотечением. Префикс на AwardKillXPServer подменяет убийцу владельцем; для смерти от баффа заведена память укусов, потому что в DamageSource от баффа нет того, кто его наложил. Зомби под Камнем духов это не задело - решение от 17.09 в силе. ГРИФ откачен на летающую ветку EntityVulture и переименован в Могильного стервятника: модель наконец соответствует имени. Держится у игрока сам, через собственный механизм "дома" (setHomeArea), на время погони дом отвязывается. Попытка натянуть птичий префаб на наземный класс провалилась и записана - так делать нельзя. ПРОЧЕЕ: призрачный вид распространён с торговцев на питомцев (у Пса, Медведя и Волка выключен по указанию), у Пса светятся фиолетовые глаза, белая иконка книги снята со всех свитков призыва, "Жуки Властелина" переименованы в "Рой фараона" на всех 13 языках. ПОРОГИ: крыса 60, стервятник 500, пёс 1300, медведь 2000, волк 4000. ИСПРАВЛЕНО ПО ХОДУ ИГРОВЫХ ПРОВЕРОК: питомцы не призывались обычным кликом (AnimWait требовал удержания), отзыв срабатывал не с первого раза (автомат состояний ItemActionSpawnEntity), крыса проваливалась сквозь мир (IsStuck отключает и пол), питомец подбрасывал хозяина (коллайдеры разводились до появления модели). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
88 lines
6.0 KiB
XML
88 lines
6.0 KiB
XML
<config>
|
||
<!-- Метки на карте и компасе для Духа крысы, 2026-09-18.
|
||
|
||
Две штуки, и это РАЗНЫЕ вещи: одна помечает саму крысу (чтобы игрок видел, где его
|
||
питомец), вторая - зомби, которого крыса укусила (метка духа).
|
||
|
||
Форма скопирована с ванильного nav_object_class "zombie" (Data/Config/nav_objects.xml):
|
||
это самый простой из существующих классов - у него НЕТ requirement_type, то есть метка
|
||
показывается безусловно, как только её кому-нибудь повесили. Классы с requirement_type
|
||
(IsPlayer, IsAlly, IsOwner, Tracking и ещё семь) сами решают, кому показываться, и нам
|
||
это только мешало бы: и питомец, и его добыча должны быть видны владельцу всегда.
|
||
|
||
Ванильные animaltracking_* сюда не годятся: они работают через систему отслеживания
|
||
животных (перк следопыта), а не через прямое назначение. -->
|
||
|
||
<append xpath="/nav_object_classes">
|
||
<!-- Сам питомец - ЖЁЛТЫМ, по прямому указанию.
|
||
|
||
СПРАЙТ: "воскрешение" (пробуем, указание 2026-09-18 - "для крысы попробуй иконку
|
||
воскрешения, проверим как смотрится"). Кроличий, стоявший тут сначала, не подошёл по
|
||
смыслу. Призрака, духа или души среди иконок игры НЕТ ВООБЩЕ - просмотрены все 359
|
||
имён вида ui_game_symbol_* из Data/Config и из самой сборки; ближайшее по названию
|
||
было specters_grace (бафф "Призрачная грация", перк Ловкости), но у воскрешения
|
||
смысл к некромантии ближе. Если в игре окажется невнятно, запасные - specters_grace
|
||
и skull (череп, он же значок самой Некромантии), меняется одна строка. -->
|
||
<nav_object_class name="necroRatSpiritPet">
|
||
<map_settings>
|
||
<property name="sprite_name" value="ui_game_symbol_twitch_resurrect"/>
|
||
<property name="min_distance" value="0"/>
|
||
<property name="max_distance" value="-1"/>
|
||
<property name="color" value="255,220,0,255"/>
|
||
<property name="has_pulse" value="false"/>
|
||
</map_settings>
|
||
|
||
<compass_settings>
|
||
<property name="sprite_name" value="ui_game_symbol_twitch_resurrect"/>
|
||
<property name="min_distance" value="0"/>
|
||
<property name="max_distance" value="1024"/>
|
||
<property name="max_scale_distance" value="32"/>
|
||
<property name="color" value="255,220,0,255"/>
|
||
<property name="has_pulse" value="false"/>
|
||
<property name="icon_clamped" value="false"/>
|
||
</compass_settings>
|
||
</nav_object_class>
|
||
</append>
|
||
|
||
<append xpath="/nav_object_classes">
|
||
<!-- Помеченная добыча. Спрайт зомбиный, как у ванильной метки, но цвет НЕ красный:
|
||
красным в игре уже отмечены зомби из Тёмного чутья (буфф necroModKnifeDarkSense
|
||
вешает ванильный nav_object "zombie"), и если бы метка крысы была такой же, две
|
||
разные механики стали бы неотличимы на карте.
|
||
|
||
ЦВЕТ ИСПРАВЛЕН 2026-09-18. Сначала здесь стоял зелёный (150,220,70) - ошибка, и
|
||
пользователь поймал её сразу: "игрок может решить, что цель дружелюбна". Зелёный в
|
||
интерфейсах значит "свой", а это помеченный ВРАГ.
|
||
|
||
Взят гнилостно-коричневый, а не ядовито-зелёный (предложены были оба). Причина
|
||
простая: сама крыса на карте жёлтая (255,220,0), а ядовито-зелёный - это
|
||
жёлто-зелёный, и на значке размером в десяток пикселей эти два цвета слились бы.
|
||
Коричневый не спорит ни с жёлтой крысой, ни с красными зомби Тёмного чутья и
|
||
читается как "гниёт" - ровно то, что метка и делает (см. GeneralDamageResist в
|
||
buffs.xml). Если в игре окажется тускло, ядовито-зелёный - это value="154,185,20",
|
||
одна строка.
|
||
|
||
has_pulse=true намеренно: метка живёт полминуты и должна быть заметна среди прочего,
|
||
это её единственная работа, а коричневый на карте сам по себе неяркий. -->
|
||
<nav_object_class name="necroRatSpiritMark">
|
||
<map_settings>
|
||
<property name="sprite_name" value="ui_game_symbol_zombie"/>
|
||
<property name="min_distance" value="0"/>
|
||
<property name="max_distance" value="-1"/>
|
||
<property name="color" value="165,100,35,255"/>
|
||
<property name="has_pulse" value="true"/>
|
||
</map_settings>
|
||
|
||
<compass_settings>
|
||
<property name="sprite_name" value="ui_game_symbol_zombie"/>
|
||
<property name="min_distance" value="0"/>
|
||
<property name="max_distance" value="1024"/>
|
||
<property name="max_scale_distance" value="32"/>
|
||
<property name="color" value="165,100,35,255"/>
|
||
<property name="has_pulse" value="true"/>
|
||
<property name="icon_clamped" value="false"/>
|
||
</compass_settings>
|
||
</nav_object_class>
|
||
</append>
|
||
</config>
|