Одержимость питомцев: роли медведя, волка, собаки и крысы; ноша стервятника; череп при обыске

- Могильная крыса: своя модель без волчьей шерсти; стоит на земле (центр капсулы);
  E - осмотр контейнеров без права взять (окно игры, рюкзак скрыт, отказ «инвентарь
  заполнен», контейнер не разрушается); ПКМ - проход сквозь постройки, полупрозрачная.
- Стервятник: курица в когтях - слепок с обвисшими крыльями и шеей, без хитбокса.
- Зомбособака: нюх - все существа рядом на компасе и карте.
- Медведь: толстая шкура (вдвое меньше урона), рёв-провокация, удар лапой по блокам.
- Лютоволк: бросок на цель с опрокидыванием, след крови раненых, сумка на 3 ячейки
  (лут, выгрузка у тела, выпадает мешком при гибели и отзыве; отдельный файл сейва).
- Череп (останки): 2% при обычном обыске красного трупа вместо браслета.
- Прицел книги не рисуется в одержимости; подсказки вселения на 13 языках.
- Замер EntityLeakProbe: удалённые, но живые в памяти сущности - в лог.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
AlexCube
2026-10-09 00:58:40 +03:00
co-authored by Claude Opus 5.5
parent beab1640b0
commit 31aa99860c
25 changed files with 2461 additions and 210 deletions
+9 -8
View File
@@ -22,11 +22,16 @@ namespace NecromancerTome
/// (removedNavObjectPool) и раздаёт заново. Если модель исчезла раньше нашего Hide, игра сама сняла
/// метку, и пул мог уже отдать этот же объект другому (метка чутья, транспорт). Поэтому снимаем, только
/// если объект ещё в NavObjectList и следит за НАШЕЙ моделью; иначе просто забываем ссылку.
/// Класс necroSnakeSpirit (nav_objects.xml) - только карта, фиолетовый; значок - OverrideSpriteName.
/// Классы (nav_objects.xml), только карта: necroSnakeSpirit - фиолетовая змея, necroPossessed - зелёный
/// значок одержимого. Значок задан в классе: OverrideSpriteName игра берёт, только если у класса
/// use_override_icon (NavObject.GetSpriteName) - без него у одержимого была змея (тест 08.10).
/// hiddenOnCompass не ставим: карта красит такие метки серым (XUiC_MapArea.updateNavObjects), а на
/// компас эти классы и так не попадают - compass_settings у них нет.
/// </summary>
public static class NecroMapMarker
{
public const string NavClass = "necroSnakeSpirit";
public const string SnakeClass = "necroSnakeSpirit";
public const string PossessedClass = "necroPossessed";
/// <summary>Метка и модель, за которой она следит.</summary>
public class Marker
@@ -35,13 +40,13 @@ namespace NecromancerTome
public Transform Tracked;
}
public static Marker Show(EntityAlive _e, string _sprite)
public static Marker Show(EntityAlive _e, string _navClass)
{
if (_e == null || _e.transform == null || NavObjectManager.Instance == null)
{
return null;
}
NavObject nav = NavObjectManager.Instance.RegisterNavObject(NavClass, _e.transform, _sprite, true);
NavObject nav = NavObjectManager.Instance.RegisterNavObject(_navClass, _e.transform);
Debug.Log("[NecromancerTome] NecroMapMarker: метка на карте для " + _e.EntityName + " (" + _e.entityId + ") - " + nav);
return new Marker { Nav = nav, Tracked = _e.transform };
}
@@ -56,9 +61,5 @@ namespace NecromancerTome
}
_m = null;
}
/// <summary>Значок одержимого (зомби или питомца) - значок дебаффа «Почти смерть» (buffNearDeathTrauma,
/// вешается игроку после гибели), указание 06.10.</summary>
public const string PossessedSprite = "ui_game_symbol_near_death_trauma";
}
}