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 LethalJacky v1.0.4
LethalJacky.dll
Decompiled 2 years agousing System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using GameNetcodeStuff; using HarmonyLib; using UnityEngine; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("LethalJacky")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("LethalJacky")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("1d1a78e0-0f27-4a72-a970-5b69e3b843e5")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyVersion("1.0.0.0")] namespace LethalJacky; [BepInPlugin("Letena.LethalJacky", "Lethal Jacky", "1.0.0.0")] public class LethalJacky : BaseUnityPlugin { private const string modGUID = "Letena.LethalJacky"; private const string modName = "Lethal Jacky"; private const string modVersion = "1.0.0.0"; private void Awake() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) new Harmony("Letena.LethalJacky").PatchAll(); ((BaseUnityPlugin)this).Logger.LogMessage((object)"Lethal Jacky has loaded UwU"); } } [HarmonyPatch(typeof(PlayerControllerB), "Update")] public class HealthPatch { private static void Postfix(PlayerControllerB __instance) { int health = __instance.health; if (__instance.isPlayerDead) { HUDManager.HideLowHealthImage(); } else if (health <= 32) { HUDManager.ShowLowHealthImage(); } else { HUDManager.HideLowHealthImage(); } } } public class HUDManager : MonoBehaviour { private static GameObject lowHealthImage; private static bool isInitialized; private static AssetBundle myAssetBundle; public static void Initialize() { //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Expected O, but got Unknown //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) if (isInitialized) { return; } LoadAssetBundle(); ReplaceTextures(); Texture2D val = LoadTextureFromBundle("WeNeedADoctor"); if ((Object)(object)val == (Object)null) { Debug.LogError((object)"Failed to load texture from Asset Bundle."); return; } lowHealthImage = new GameObject("LowHealthImage"); lowHealthImage.AddComponent<Image>().sprite = Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), new Vector2(0.5f, 0.5f)); GameObject val2 = GameObject.Find("Canvas"); if ((Object)(object)val2 != (Object)null) { lowHealthImage.transform.SetParent(val2.transform, false); RectTransform component = lowHealthImage.GetComponent<RectTransform>(); if ((Object)(object)component != (Object)null) { component.sizeDelta = new Vector2(130f, 130f); component.anchorMin = new Vector2(0f, 0.5f); component.anchorMax = new Vector2(0f, 0.5f); component.pivot = new Vector2(0f, 0.5f); component.anchoredPosition = new Vector2(70f, 0f); } lowHealthImage.SetActive(false); isInitialized = true; } else { Debug.LogError((object)"Canvas not found in the scene."); } } private static void LoadAssetBundle() { if ((Object)(object)myAssetBundle != (Object)null) { return; } string text = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "wolftekst"); if (File.Exists(text)) { myAssetBundle = AssetBundle.LoadFromFile(text); if ((Object)(object)myAssetBundle == (Object)null) { Debug.LogError((object)"Failed to load Asset Bundle!"); } } else { Debug.LogError((object)"Asset Bundle file not found!"); } } public static Texture2D LoadTextureFromBundle(string textureName) { if ((Object)(object)myAssetBundle == (Object)null) { return null; } return myAssetBundle.LoadAsset<Texture2D>(textureName); } public static void ReplaceTextures() { ReplaceTexture("StickyNoteTex"); ReplaceTexture("artificeHint"); ReplaceTexture("StopSignTex"); } private static void ReplaceTexture(string textureName) { Texture2D val = LoadTextureFromBundle(textureName); if ((Object)(object)val != (Object)null) { Material[] array = Resources.FindObjectsOfTypeAll<Material>(); foreach (Material val2 in array) { if ((Object)(object)val2.mainTexture != (Object)null && ((Object)val2.mainTexture).name == textureName) { val2.mainTexture = (Texture)(object)val; Debug.Log((object)("Replaced texture: " + textureName)); } } } else { Debug.LogError((object)("Failed to load texture '" + textureName + "' from Asset Bundle.")); } } public static void ShowLowHealthImage() { Initialize(); if ((Object)(object)lowHealthImage != (Object)null) { lowHealthImage.SetActive(true); } else { Debug.LogError((object)"LowHealthImage GameObject is not initialized."); } } public static void HideLowHealthImage() { Initialize(); if ((Object)(object)lowHealthImage != (Object)null) { lowHealthImage.SetActive(false); } else { Debug.LogError((object)"LowHealthImage GameObject is not initialized."); } } }