Труп «Жертвы» открывается сам, как ящик: без мешка
Обыск больше не превращает труп в мешок. Труп получает сумку со списком добычи zPackVictim и открывается игровым путём (LockRequestLocal -> LootBagOpened -> окно добычи с игровым таймером обыска). Запрет открывать мёртвых у EntityAlive снят префиксами только для таких трупов. Открытый и не опустошённый труп лежит час, опустошённый убирается сразу. После загрузки труп узнаётся по сохранённой сумке (баффы зомби в сейв не пишутся). LockRequestLocal вызывается из TEPersistence (перегрузка с ReadOnlySpan не компилируется в основном проекте). Класс EntityLootContainerVictim оставлен ради старых сейвов. Описание ножа исправлено на всех языках, README - текущее описание. Проверено в игре на 3.3: открытие, таймер, уборка опустошённых, восстановление после загрузки. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
1c2e3f2cdf
commit
e25544521d
@@ -0,0 +1,19 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user