diff --git a/HarmonySrc/BloodTide.cs b/HarmonySrc/BloodTide.cs index 3a03ec4..8ca0e20 100644 --- a/HarmonySrc/BloodTide.cs +++ b/HarmonySrc/BloodTide.cs @@ -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 ? ", в руке пересоздан" : "")); diff --git a/NecromancerHarmony.dll b/NecromancerHarmony.dll index 1df9fd4..ff023db 100644 Binary files a/NecromancerHarmony.dll and b/NecromancerHarmony.dll differ diff --git a/NecromancerHarmony.pdb b/NecromancerHarmony.pdb index 8f8d700..7863f6f 100644 Binary files a/NecromancerHarmony.pdb and b/NecromancerHarmony.pdb differ