using SPT.Reflection.Patching; using Comfort.Common; using EFT; using EFT.Vehicle; using HarmonyLib; using System.Reflection; namespace SPT.Custom.BTR.Patches { /// /// Patches an empty method in to handle updating the BTR bot's Neutrals and Enemies lists in response to taking damage. /// public class BTRReceiveDamageInfoPatch : ModulePatch { protected override MethodBase GetTargetMethod() { return AccessTools.FirstMethod(typeof(BTRView), IsTargetMethod); } private bool IsTargetMethod(MethodBase method) { var parameters = method.GetParameters(); return parameters.Length == 1 && parameters[0].ParameterType == typeof(DamageInfo) && parameters[0].Name == "damageInfo"; } [PatchPrefix] private static void PatchPrefix(DamageInfo damageInfo) { var botEventHandler = Singleton.Instance; if (botEventHandler == null) { Logger.LogError($"[SPT-BTR] {nameof(BTRReceiveDamageInfoPatch)} - BotEventHandler is null"); return; } var shotBy = (Player)damageInfo.Player.iPlayer; if (shotBy != null) { botEventHandler.InterruptTraderServiceBtrSupportByBetrayer(shotBy); } } } }