Порт на игру 3.4: замок ячеек, бросок на пустое место окна, проверка версии (#79)

- 3.4 убрала XUiC_ContainerStandardControls.ToggleLockMode: замок при обыске
  крысой/волком и у сумки волка запрещается в сеттере UserLockMode.
- 3.4 кладёт предмет, брошенный на пустое место окна, прямо в ящик/мешок/
  рюкзак (dropItemToGrid) мимо запертых ячеек - при обыске отказ.
- GameVersionGuard: мод собран под 3.4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
AlexCube
2026-10-24 13:57:50 +03:00
co-authored by Claude Opus 5.5
parent 945b03dfea
commit a747f5aa8d
5 changed files with 63 additions and 5 deletions
+18 -1
View File
@@ -690,7 +690,6 @@ namespace NecromancerTome
yield return AccessTools.Method(typeof(XUiC_ContainerStandardControls), nameof(XUiC_ContainerStandardControls.MoveFillAndSmart));
yield return AccessTools.Method(typeof(XUiC_ContainerStandardControls), nameof(XUiC_ContainerStandardControls.MoveFillStacks));
yield return AccessTools.Method(typeof(XUiC_ContainerStandardControls), nameof(XUiC_ContainerStandardControls.MoveSmart));
yield return AccessTools.Method(typeof(XUiC_ContainerStandardControls), nameof(XUiC_ContainerStandardControls.ToggleLockMode));
}
public static bool Prefix(XUiC_ContainerStandardControls __instance)
@@ -699,6 +698,24 @@ namespace NecromancerTome
}
}
/// <summary>Замок ячеек у сумки волка не включается (в 3.4 вместо ToggleLockMode - свойство UserLockMode).</summary>
[HarmonyPatch(typeof(XUiC_ContainerStandardControls), nameof(XUiC_ContainerStandardControls.UserLockMode), MethodType.Setter)]
public static class Patch_ContainerStandardControls_UserLockMode_WolfBag
{
public static bool Prefix(XUiC_ContainerStandardControls __instance, bool value)
{
if (!value || !WolfBagControls.Blocked(__instance))
{
return true;
}
if (__instance.btnToggleLockMode != null)
{
__instance.btnToggleLockMode.IsSelected = false;
}
return false;
}
}
/// <summary>Кнопка замка видна по привязке {hasslotlocks} - у волка её нет.</summary>
[HarmonyPatch(typeof(XUiC_BagContainer), nameof(XUiC_BagContainer.GetBindingValueInternal))]
public static class Patch_BagContainer_Binding_WolfBag