Track LocalMods as part of monolith

This commit is contained in:
2026-06-08 18:50:16 +03:00
parent 143f2fed7c
commit 1b214b44c2
1287 changed files with 139255 additions and 1 deletions
@@ -0,0 +1,53 @@
using Barotrauma;
using Barotrauma.MoreLevelContent.Shared.Utils;
using HarmonyLib;
using System.Reflection;
namespace MoreLevelContent.Shared.AI
{
public class MLCAIObjectiveManager : Singleton<MLCAIObjectiveManager>
{
public override void Setup()
{
MethodInfo info = AccessTools.Method(typeof(AIObjectiveManager), nameof(AIObjectiveManager.CreateObjective));
Main.Patch(info, postfix: new HarmonyMethod(typeof(MLCAIObjectiveManager), nameof(MLCAIObjectiveManager.AIObjectiveManager_CreateObjective)));
Log.Debug("Setup AI override");
}
/*
*
*
Exception: Object reference not set to an instance of an object. (System.NullReferenceException)
Target site: Void AIObjectiveManager_CreateObjective(Barotrauma.AIObjective ByRef, Barotrauma.AIObjectiveManager, Barotrauma.Character, Barotrauma.Order)
Stack trace:
at MoreLevelContent.Shared.AI.MLCAIObjectiveManager.AIObjectiveManager_CreateObjective(AIObjective& __result, AIObjectiveManager __instance, Character ___character, Order order)
at Barotrauma.AIObjectiveManager.CreateObjective_Patch1
*
*
*
*/
internal static void AIObjectiveManager_CreateObjective(ref AIObjective __result, AIObjectiveManager __instance, Character ___character, Order order, float priorityModifier)
{
if (order == null || order.IsDismissal) { return; }
AIObjective newObjective;
switch (order.Identifier.Value.ToLowerInvariant())
{
case "traitorinjectitem":
newObjective = new AITraitorObjectiveInjectItem(___character, __instance, priorityModifier, order.Option, order.GetTargetItems(order.Option));
break;
case "fightintrudersanysub":
newObjective = new AIFightIntrudersAnySubObjective(___character, __instance, priorityModifier);
break;
default:
return;
}
if (newObjective != null)
{
newObjective.Identifier = order.Identifier;
}
__result = newObjective;
}
}
}