Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of UltimateLethal ScannerSystem v1.0.2
BepInEx/plugins/UltimateLethal_ScannerSystem/UltimateLethal.ScannerBarHUD.dll
Decompiled 9 hours agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using Microsoft.CodeAnalysis; using UnityEngine; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("UltimateLethal.ScannerBarHUD")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("UltimateLethal.ScannerBarHUD")] [assembly: AssemblyTitle("UltimateLethal.ScannerBarHUD")] [assembly: AssemblyVersion("1.0.0.0")] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace UltimateLethal.ScannerBarHUD { [BepInPlugin("ultimatelethal.scannerbarhud", "Ultimate Lethal Scanner Bar HUD", "1.0.0")] public sealed class ScannerBarHudPlugin : BaseUnityPlugin { public const string Guid = "ultimatelethal.scannerbarhud"; public const string Name = "Ultimate Lethal Scanner Bar HUD"; public const string Version = "1.0.0"; internal static ConfigEntry<float> CooldownSeconds; internal static ConfigEntry<float> BarHeight; internal static ConfigEntry<float> BarGap; private Harmony _harmony; private void Awake() { //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Expected O, but got Unknown CooldownSeconds = ((BaseUnityPlugin)this).Config.Bind<float>("HUD", "CooldownSeconds", 3.2f, "Visual recharge duration. Keep this equal to ScannerCooldown's cooldown."); BarHeight = ((BaseUnityPlugin)this).Config.Bind<float>("HUD", "BarHeight", 6f, "Recharge bar height."); BarGap = ((BaseUnityPlugin)this).Config.Bind<float>("HUD", "BarGap", 5f, "Gap below EladsHUD stamina bar."); _harmony = new Harmony("ultimatelethal.scannerbarhud"); _harmony.PatchAll(); } private void Update() { ScanBar.EnsureAttached(); ScanBar.UpdateVisual(ScanTracker.Progress); } private void OnDestroy() { ScanBar.Destroy(); Harmony harmony = _harmony; if (harmony != null) { harmony.UnpatchSelf(); } } } [HarmonyPatch(typeof(HUDManager), "PingScan_performed")] internal static class ScanTracker { private static float _lastSuccessfulVisualScan = -999f; internal static float Progress { get { float num = Mathf.Max(0.01f, ScannerBarHudPlugin.CooldownSeconds.Value); return Mathf.Clamp01((Time.unscaledTime - _lastSuccessfulVisualScan) / num); } } [HarmonyPostfix] private static void Postfix() { if (Progress >= 0.999f) { _lastSuccessfulVisualScan = Time.unscaledTime; } } } internal static class ScanBar { private static GameObject _root; private static Image _fill; private static RectTransform _staminaRect; private static float _nextSearch; internal static void EnsureAttached() { //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Expected O, but got Unknown //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_root != (Object)null && (Object)(object)_staminaRect != (Object)null) { Position(); } else { if (Time.unscaledTime < _nextSearch) { return; } _nextSearch = Time.unscaledTime + 1f; Image val = FindStamina(); if (!((Object)(object)val == (Object)null)) { _staminaRect = ((Graphic)val).rectTransform; Transform parent = ((Transform)_staminaRect).parent; RectTransform val2 = (RectTransform)(object)((parent is RectTransform) ? parent : null); if (!((Object)(object)val2 == (Object)null)) { _root = new GameObject("UltimateScannerRechargeBar", new Type[1] { typeof(RectTransform) }); RectTransform component = _root.GetComponent<RectTransform>(); ((Transform)component).SetParent((Transform)(object)val2, false); GameObject val3 = new GameObject("Background", new Type[3] { typeof(RectTransform), typeof(CanvasRenderer), typeof(Image) }); RectTransform component2 = val3.GetComponent<RectTransform>(); ((Transform)component2).SetParent((Transform)(object)component, false); component2.anchorMin = Vector2.zero; component2.anchorMax = Vector2.one; component2.offsetMin = Vector2.zero; component2.offsetMax = Vector2.zero; ((Graphic)val3.GetComponent<Image>()).color = new Color(0f, 0f, 0f, 0.62f); GameObject val4 = new GameObject("Fill", new Type[3] { typeof(RectTransform), typeof(CanvasRenderer), typeof(Image) }); RectTransform component3 = val4.GetComponent<RectTransform>(); ((Transform)component3).SetParent((Transform)(object)component, false); component3.anchorMin = new Vector2(0f, 0f); component3.anchorMax = new Vector2(0f, 1f); component3.pivot = new Vector2(0f, 0.5f); component3.offsetMin = Vector2.zero; component3.offsetMax = Vector2.zero; _fill = val4.GetComponent<Image>(); ((Graphic)_fill).color = new Color(0.15f, 0.86f, 1f, 0.95f); Position(); } } } } private static Image FindStamina() { //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) Image[] array = Object.FindObjectsOfType<Image>(true); Image result = null; float num = -999f; Image[] array2 = array; foreach (Image val in array2) { if (!((Object)(object)val == (Object)null) && !((Object)(object)((Graphic)val).rectTransform == (Object)null)) { string text = (((Object)val).name ?? "").ToLowerInvariant(); string obj = (((Object)(object)((Component)val).transform.parent != (Object)null) ? (((Object)((Component)val).transform.parent).name ?? "").ToLowerInvariant() : ""); float num2 = 0f; if (text.Contains("stamina")) { num2 += 100f; } if (obj.Contains("stamina")) { num2 += 90f; } if (text.Contains("sprint")) { num2 += 70f; } if (obj.Contains("sprint")) { num2 += 60f; } Rect rect = ((Graphic)val).rectTransform.rect; Vector2 size = ((Rect)(ref rect)).size; if (size.x > size.y * 2f) { num2 += 15f; } if (num2 > num) { num = num2; result = val; } } } if (!(num >= 60f)) { return null; } return result; } private static void Position() { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)_root == (Object)null) && !((Object)(object)_staminaRect == (Object)null)) { RectTransform component = _root.GetComponent<RectTransform>(); component.anchorMin = _staminaRect.anchorMin; component.anchorMax = _staminaRect.anchorMax; component.pivot = _staminaRect.pivot; float value = ScannerBarHudPlugin.BarHeight.Value; float value2 = ScannerBarHudPlugin.BarGap.Value; float x = _staminaRect.anchoredPosition.x; float y = _staminaRect.anchoredPosition.y; Rect rect = _staminaRect.rect; component.anchoredPosition = new Vector2(x, y - ((Rect)(ref rect)).height * 0.5f - value2 - value * 0.5f); rect = _staminaRect.rect; component.sizeDelta = new Vector2(((Rect)(ref rect)).width, value); ((Transform)component).localScale = Vector3.one; ((Transform)component).localRotation = Quaternion.identity; } } internal static void UpdateVisual(float progress) { //IL_0033: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)_root == (Object)null) && !((Object)(object)_fill == (Object)null)) { progress = Mathf.Clamp01(progress); ((Graphic)_fill).rectTransform.anchorMax = new Vector2(progress, 1f); _root.SetActive(progress < 0.999f); } } internal static void Destroy() { if ((Object)(object)_root != (Object)null) { Object.Destroy((Object)(object)_root); } _root = null; _fill = null; _staminaRect = null; } } }
BepInEx/plugins/UltimateLethal_ScannerSystem/UltimateLethal.ScannerCooldown.dll
Decompiled 9 hours agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using Microsoft.CodeAnalysis; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("UltimateLethal.ScannerCooldown")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("UltimateLethal.ScannerCooldown")] [assembly: AssemblyTitle("UltimateLethal.ScannerCooldown")] [assembly: AssemblyVersion("1.0.0.0")] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace UltimateLethal.ScannerCooldown { [BepInPlugin("ultimatelethal.scannercooldown", "Ultimate Lethal Scanner Cooldown", "1.0.1")] public sealed class ScannerCooldownPlugin : BaseUnityPlugin { public const string PluginGuid = "ultimatelethal.scannercooldown"; public const string PluginName = "Ultimate Lethal Scanner Cooldown"; public const string PluginVersion = "1.0.1"; internal static ConfigEntry<float> CooldownSeconds; private Harmony _harmony; private void Awake() { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Expected O, but got Unknown CooldownSeconds = ((BaseUnityPlugin)this).Config.Bind<float>("Scanner", "CooldownSeconds", 8f, new ConfigDescription("Minimum time in seconds between successful HUD scans.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.5f, 60f), Array.Empty<object>())); _harmony = new Harmony("ultimatelethal.scannercooldown"); _harmony.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)("Ultimate Lethal Scanner Cooldown 1.0.1 loaded. Cooldown: " + CooldownSeconds.Value.ToString("0.0") + "s")); } private void OnDestroy() { if (_harmony != null) { _harmony.UnpatchSelf(); } } } [HarmonyPatch(typeof(HUDManager), "PingScan_performed")] internal static class PingScanCooldownPatch { private static float _nextAllowedScanTime; [HarmonyPrefix] private static bool Prefix() { float unscaledTime = Time.unscaledTime; if (unscaledTime < _nextAllowedScanTime) { return false; } _nextAllowedScanTime = unscaledTime + ScannerCooldownPlugin.CooldownSeconds.Value; return true; } } }