Прилив: пересоздание ножа без NRE в Hand.Unequip (копия с другим Seed вместо ItemValue.None); DLL с меловой доской

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
AlexCube
2026-10-10 14:05:40 +03:00
co-authored by Claude Opus 5.5
parent 3780a69d93
commit 7d87903302
3 changed files with 5 additions and 1 deletions
+5 -1
View File
@@ -114,7 +114,11 @@ namespace NecromancerTome
{
// NeedsRebuild - «собранный» предмет не совпадает с тем, что в слоте: сбрасываем собранный, и
// повторный выбор того же слота снимает нож и собирает его заново (Hand.SelectHoldingMode).
held.physicalItemValue = ItemValue.None.Clone();
// Не ItemValue.None (тест 10.10: NRE в Hand.Unequip - он читает класс предмета у собранного): копия того же
// ножа с другим Seed - класс прежний, а EqualsExceptUseTimesAndMeta (по нему NeedsRebuild) уже не совпадёт.
ItemValue pv = (held.physicalItemValue ?? held.itemValue).Clone();
pv.Seed = (ushort)(pv.Seed + 1);
held.physicalItemValue = pv;
inv.SetHoldingItemIdx(inv.holdingItemIdx);
}
Debug.Log("[NecromancerTome] BloodTide: нож - хват " + knife.HoldType.Value + (held != null && held.item == knife ? ", в руке пересоздан" : ""));
Binary file not shown.
Binary file not shown.