diff --git a/HarmonySrc/BoneSteedFuelPatch.cs b/HarmonySrc/BoneSteedFuelPatch.cs index 51468aa..4902bb6 100644 --- a/HarmonySrc/BoneSteedFuelPatch.cs +++ b/HarmonySrc/BoneSteedFuelPatch.cs @@ -202,7 +202,22 @@ namespace NecromancerTome public static void Finalizer(Vehicle __instance) { Loading = false; - if (BoneSteed.Is(__instance.entity)) + if (!BoneSteed.Is(__instance.entity)) + return; + // Слота покраски у скакуна нет (01.10: в нём сам собой появлялся коричневый краситель, + // вынимался и появлялся снова). Ваниль в SetItemValue заводит его заново, если пусто, + // поэтому снимаем каждый раз после неё. Что там лежало - в лог, для поиска источника. + ItemValue iv = __instance.itemValue; + if (iv.CosmeticModCount > 0) + { + for (int i = 0; i < iv.CosmeticModCount; i++) + { + ItemValue c = iv.GetCosmeticMod(i); + if (c != null && !c.IsEmpty()) + Debug.Log("[NecromancerTome] BoneSteed: в слоте покраски было '" + c.ItemClass?.Name + "' - снято"); + } + iv.ResizeCosmeticMods(0); + } Debug.Log("[NecromancerTome] BoneSteed: ячеек " + __instance.itemValue.ModificationCount + ", топливо " + BoneSteedFuel.FuelOf(__instance).ToString("0.#") + "/" + BoneSteedFuel.MaxFuel + ", здоровье " + __instance.entity.Health + "/" + __instance.GetMaxHealth() + diff --git a/NecromancerHarmony.dll b/NecromancerHarmony.dll index 2e03b6a..4086c35 100644 Binary files a/NecromancerHarmony.dll and b/NecromancerHarmony.dll differ diff --git a/NecromancerHarmony.pdb b/NecromancerHarmony.pdb index 1c4ad74..7f72f7d 100644 Binary files a/NecromancerHarmony.pdb and b/NecromancerHarmony.pdb differ