using System.Linq; using System.Reflection; using Aki.Reflection.Patching; using EFT; using EFT.Animations; using UnityEngine; namespace SamSWAT.ReflexSightsRework { public class Patch : ModulePatch { public static float TotalErgonomics; public static float Overweight; private static Transform _currentWeapon; private static SightSwitch[] _instances; protected override MethodBase GetTargetMethod() { return typeof(ProceduralWeaponAnimation).GetMethod("set_IsAiming"); } [PatchPostfix] private static void PatchPostfix(bool value, ProceduralWeaponAnimation __instance, Player.FirearmController ___firearmController_0) { if (___firearmController_0 == null) return; if (_currentWeapon != ___firearmController_0.WeaponRoot || _instances.Any(x => x.gameObject.activeSelf == false)) { _currentWeapon = ___firearmController_0.WeaponRoot; _instances = _currentWeapon.GetComponentsInChildren(); } if (_instances.Length == 0) return; TotalErgonomics = ___firearmController_0.TotalErgonomics; Overweight = __instance.Overweight; foreach (var instance in _instances) instance.enabled = value; } } }