Обыск больше не превращает труп в мешок. Труп получает сумку со списком добычи zPackVictim и открывается игровым путём (LockRequestLocal -> LootBagOpened -> окно добычи с игровым таймером обыска). Запрет открывать мёртвых у EntityAlive снят префиксами только для таких трупов. Открытый и не опустошённый труп лежит час, опустошённый убирается сразу. После загрузки труп узнаётся по сохранённой сумке (баффы зомби в сейв не пишутся). LockRequestLocal вызывается из TEPersistence (перегрузка с ReadOnlySpan не компилируется в основном проекте). Класс EntityLootContainerVictim оставлен ради старых сейвов. Описание ножа исправлено на всех языках, README - текущее описание. Проверено в игре на 3.3: открытие, таймер, уборка опустошённых, восстановление после загрузки. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
20 lines
939 B
C#
20 lines
939 B
C#
namespace NecromancerTome
|
||
{
|
||
/// <summary>
|
||
/// Та же причина, что у PyramidWardWriteHelper: среди перегрузок LockManager.LockRequestLocal
|
||
/// есть вариант с ReadOnlySpan<ILockTarget>, и основной проект (netstandard2.1) не может
|
||
/// разобрать набор перегрузок целиком - CS7069 «ReadOnlySpan<> требует определения в
|
||
/// mscorlib». Отсюда вызов собирается.
|
||
///
|
||
/// Зовётся из HarmonySrc/CorpseLootPatch.cs: открытие трупа «Жертвы» тем же запросом, которым
|
||
/// игра открывает мешок (EntityItem.OnEntityActivated, команда "search").
|
||
/// </summary>
|
||
public static class LockRequestHelper
|
||
{
|
||
public static void RequestLocal(ILockTarget _target)
|
||
{
|
||
LockManager.Instance.LockRequestLocal(_target, 0);
|
||
}
|
||
}
|
||
}
|