using HarmonyLib; namespace NecromancerTome { /// /// Турели не стреляют по существам мода. Жалоба 01.10: «мои питомцы враги, их атакуют /// турели». Питомцы, рой и змея сделаны на зомби-основе и для игры остаются EntityEnemy, а /// обе турели (стационарная AutoTurretFireController и переносная MiniTurretFireController) /// решают в shouldIgnoreTarget: EntityEnemy - стрелять, если включено «по зомби». Здесь /// ответ «пропустить» для всех necro*-сущностей (SnakeControl.IsNecroEntity) - тот же признак, /// по которому их не выбирает целью охрана. /// [HarmonyPatch(typeof(AutoTurretFireController), nameof(AutoTurretFireController.shouldIgnoreTarget))] public static class Patch_AutoTurretFireController_shouldIgnoreTarget_Pets { public static void Postfix(Entity _target, ref bool __result) { if (!__result && _target is EntityAlive alive && SnakeControl.IsNecroEntity(alive)) __result = true; } } [HarmonyPatch(typeof(MiniTurretFireController), nameof(MiniTurretFireController.shouldIgnoreTarget))] public static class Patch_MiniTurretFireController_shouldIgnoreTarget_Pets { public static void Postfix(Entity _target, ref bool __result) { if (!__result && _target is EntityAlive alive && SnakeControl.IsNecroEntity(alive)) __result = true; } } }