-
Notifications
You must be signed in to change notification settings - Fork 0
/
Patches.cs
65 lines (59 loc) · 3 KB
/
Patches.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using AiDisabler.Config.Types;
using HarmonyLib;
using Sons.Ai.Vail;
namespace AiDisabler.Patches {
public class Patcher {
public static void DoPatching() {
var harmony = new Harmony(MyPluginInfo.PLUGIN_GUID);
harmony.PatchAll();
}
}
[HarmonyPatch(typeof(VailActor), nameof(VailActor.Awake))]
class VailActorAwakePatch {
public static void Postfix(ref VailActor __instance) {
if (Plugin.configPrintAi.Value) {
Plugin.Log.LogInfo("================VailActor.Awake===================== (Ai Is About To Spawn)");
Plugin.Log.LogInfo("AI.Name: " + __instance.name);
Plugin.Log.LogInfo("AI.Group: " + __instance._activeGroup);
Plugin.Log.LogInfo("AI.ClassId: " + __instance.ClassId);
Plugin.Log.LogInfo("AI.TypeId: " + __instance.TypeId);
Plugin.Log.LogInfo("AI.UniqueId: " + __instance.UniqueId);
Plugin.Log.LogInfo("AI.FamilyId: " + __instance.FamilyId);
}
if (Plugin.disablerConfig.CheckDisabled(new Ai() { TypeId = $"{__instance.TypeId}", ClassId = $"{__instance.ClassId}", Name = $"{__instance.name}" }, out string disablerId)) {
UnityEngine.Object.Destroy(__instance.transform.gameObject);
if (Plugin.configPrintAi.Value)
Plugin.Log.LogInfo($"AI.IsDisabled: true + {disablerId}");
} else {
if (Plugin.configPrintAi.Value)
Plugin.Log.LogInfo("AI.IsDisabled: false");
}
}
}
[HarmonyPatch(typeof(VailActor), nameof(VailActor.Start))]
class VailActorStartPatch {
public static void Postfix(ref VailActor __instance) {
if (Plugin.configPrintAi.Value) {
Plugin.Log.LogInfo("================VailActor.Start===================== (Ai is alive/Near player)");
Plugin.Log.LogInfo("AI.Name: " + __instance.name);
Plugin.Log.LogInfo("AI.Group: " + __instance._activeGroup);
Plugin.Log.LogInfo("AI.ClassId: " + __instance.ClassId);
Plugin.Log.LogInfo("AI.TypeId: " + __instance.TypeId);
Plugin.Log.LogInfo("AI.UniqueId: " + __instance.UniqueId);
Plugin.Log.LogInfo("AI.FamilyId: " + __instance.FamilyId);
}
if (Plugin.disablerConfig.CheckKilled(new Ai() { TypeId = $"{__instance.TypeId}", ClassId = $"{__instance.ClassId}", Name = $"{__instance.name}" }, out string killerId)) {
if (__instance._damageEnabled) {
if (__instance.GetHealth() > 0) {
__instance.DrainHealth(__instance.GetHealth());
}
}
if (Plugin.configPrintAi.Value)
Plugin.Log.LogInfo($"AI.IsKilled: true + {killerId}");
} else {
if (Plugin.configPrintAi.Value)
Plugin.Log.LogInfo("AI.IsKilled: false");
}
}
}
}