Please disclose if your mod was created primarily 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 An0n Patches v1.0.4
BepInEx/plugins/An0n_Patches.dll
Decompiled 2 years agousing System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Reflection.Emit; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using An0n_Patches.Patches; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using TMPro; using Unity.Netcode; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("An0n_Patches")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("An0n_Patches")] [assembly: AssemblyCopyright("Copyright © 2023")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("415f18a2-c213-4036-b3f0-7673c0a38c58")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.6", FrameworkDisplayName = ".NET Framework 4.6")] [assembly: AssemblyVersion("1.0.0.0")] namespace An0n_Patches { [BepInPlugin("com.an0n.patch", "An0n Patch", "1.0.4")] public class An0n_Patch_Plugin : BaseUnityPlugin { private const string pluginGUID = "com.an0n.patch"; private const string pluginName = "An0n Patch"; private const string pluginVersion = "1.0.4"; public static ManualLogSource mls = Logger.CreateLogSource("com.an0n.patch"); private Harmony harmony = new Harmony("com.an0n.patch"); public static ConfigEntry<float> instantSprint; public static ConfigEntry<float> slipperiness; public static ConfigEntry<bool> instantJump; public static ConfigEntry<bool> showHPSP; private Harmony patcher; private void Awake() { //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Expected O, but got Unknown instantJump = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "instantJump", true, "Enable/disable instant jump. Removes the delay with jumping when enabled."); instantSprint = ((BaseUnityPlugin)this).Config.Bind<float>("General", "instantSprint", 2.25f, "How fast to accelerate to sprint value of 2.25. 2.25 is the max, so it's instant acceleration."); slipperiness = ((BaseUnityPlugin)this).Config.Bind<float>("General", "slipperiness", 10f, "The amount of slipperiness when running and changing direction. 10-15f is a good value for little to no slippery feeling."); showHPSP = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "showHealthStamina", true, "Show your health and sprint/stamina % on the HUD."); mls.LogInfo((object)"[An0nPatch] Plugin Loaded"); patcher = new Harmony("com.an0n.patch"); patcher.PatchAll(typeof(PlayerControllerPatch)); patcher.PatchAll(typeof(HUDManagerPatch)); } } } namespace An0n_Patches.Patches { [HarmonyPatch] internal class HUDManagerPatch : MonoBehaviour { public static TextMeshProUGUI HPSP_HUDText; public static bool instantiating = true; [HarmonyPatch(typeof(StartOfRound), "SceneManager_OnLoadComplete1")] [HarmonyPostfix] public static void CreateHPSP_HUD() { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) if (instantiating) { GameObject val = GameObject.Find("Systems/UI/Canvas/IngamePlayerHUD/TopLeftCorner/WeightUI"); GameObject val2 = GameObject.Find("Systems/UI/Canvas/IngamePlayerHUD/TopLeftCorner"); GameObject val3 = Object.Instantiate<GameObject>(val, val2.transform); ((Object)val3).name = "HPSP"; GameObject gameObject = ((Component)val3.transform.GetChild(0)).gameObject; RectTransform component = gameObject.GetComponent<RectTransform>(); component.anchoredPosition = new Vector2(-45f, 10f); HPSP_HUDText = gameObject.GetComponent<TextMeshProUGUI>(); ((TMP_Text)HPSP_HUDText).faceColor = Color32.op_Implicit(new Color(255f, 0f, 0f, 255f)); ((TMP_Text)HPSP_HUDText).fontSize = 12f; ((TMP_Text)HPSP_HUDText).margin = new Vector4(0f, -36f, 100f, 0f); ((TMP_Text)HPSP_HUDText).alignment = (TextAlignmentOptions)260; ((TMP_Text)HPSP_HUDText).text = $"{100}\n\n\n{100}%"; instantiating = false; } } [HarmonyPatch(typeof(GameNetworkManager), "Disconnect")] [HarmonyPrefix] public static void unInstantiate() { instantiating = true; } [HarmonyPatch(typeof(HUDManager), "Update")] [HarmonyPostfix] public static void Update() { if (!((Object)(object)GameNetworkManager.Instance.localPlayerController == (Object)null) && !instantiating) { float num = Mathf.RoundToInt((float)GameNetworkManager.Instance.localPlayerController.health); float num2 = Mathf.RoundToInt((GameNetworkManager.Instance.localPlayerController.sprintMeter * 100f - 10f) / 90f * 100f); if (num2 < 0f) { num2 = 0f; } if (An0n_Patch_Plugin.showHPSP.Value) { ((TMP_Text)HPSP_HUDText).text = $"{num}\n\n\n\n{num2}%"; } } } } [HarmonyPatch(typeof(PlayerControllerB))] internal class PlayerControllerPatch { private static PlayerControllerB __mainPlayer; public static bool tempcrouch = false; private static bool stillInitializing = true; [HarmonyTranspiler] [HarmonyPatch(/*Could not decode attribute arguments.*/)] public static IEnumerable<CodeInstruction> RemoveJumpDelay(IEnumerable<CodeInstruction> instructions) { //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Expected O, but got Unknown List<CodeInstruction> list = new List<CodeInstruction>(instructions); if (!An0n_Patch_Plugin.instantJump.Value) { return list; } int num = 0; for (int i = 0; i < list.Count; i++) { CodeInstruction val = list[i]; if (!(val.opcode != OpCodes.Newobj)) { ConstructorInfo constructorInfo = val.operand as ConstructorInfo; if (((constructorInfo != null) ? constructorInfo.DeclaringType : null) == typeof(WaitForSeconds)) { Debug.Log((object)"[An0nPatch] patched Instant-Jump"); list[i] = new CodeInstruction(OpCodes.Ldnull, (object)null); Debug.Log((object)(num + "-REM:" + ((object)list[i]).ToString())); Debug.Log((object)(num - 1 + "REM:" + ((object)list[i - 1]).ToString())); list.RemoveAt(i - 1); i--; } } num++; } return list; } [HarmonyTranspiler] [HarmonyPatch(typeof(PlayerControllerB), "Update")] public static IEnumerable<CodeInstruction> fixFloatyTurnAndRun(IEnumerable<CodeInstruction> instructions) { //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Expected O, but got Unknown //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Expected O, but got Unknown List<CodeInstruction> list = instructions.ToList(); for (int i = 0; i < list.Count - 3; i++) { CodeInstruction val = list[i]; if (val.opcode == OpCodes.Ldc_R4 && (float)val.operand == 5f && CodeInstructionExtensions.LoadsField(list[i + 2], typeof(PlayerControllerB).GetField("carryWeight"), false) && list[i + 3].opcode == OpCodes.Ldc_R4 && (float)list[i + 3].operand == 1.5f) { Debug.Log((object)"[An0nPatch] patched slipperiness"); list[i] = new CodeInstruction(OpCodes.Ldc_R4, (object)An0n_Patch_Plugin.slipperiness.Value); } } for (int j = 1; j < list.Count - 2; j++) { CodeInstruction val2 = list[j]; if (val2.opcode == OpCodes.Ldc_R4 && (float)val2.operand == 2.25f && list[j - 1].opcode == OpCodes.Ldfld && ((object)list[j - 1]).ToString() == "ldfld float GameNetcodeStuff.PlayerControllerB::sprintMultiplier" && list[j + 2].opcode == OpCodes.Ldc_R4 && (float)list[j + 2].operand == 1f) { Debug.Log((object)"[An0nPatch] patched instant sprint"); list[j + 2] = new CodeInstruction(OpCodes.Ldc_R4, (object)An0n_Patch_Plugin.instantSprint.Value); } } return list; } public static bool canJump(RaycastHit ___hit) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; return !Physics.Raycast(((Component)localPlayerController.gameplayCamera).transform.position, Vector3.up, ref ___hit, 0.72f, localPlayerController.playersManager.collidersAndRoomMask, (QueryTriggerInteraction)1); } [HarmonyPatch(typeof(PlayerControllerB), "Update")] [HarmonyPostfix] public static void ReadInput(PlayerControllerB __instance, RaycastHit ___hit) { //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) try { if (!stillInitializing) { if (__mainPlayer == null) { __mainPlayer = StartOfRound.Instance.localPlayerController; } PlayerControllerB localPlayerController = GameNetworkManager.Instance.localPlayerController; if ((!((NetworkBehaviour)__instance).IsOwner || !__instance.isPlayerControlled || (((NetworkBehaviour)__instance).IsServer && !__instance.isHostPlayerObject)) && !__instance.isTestingPlayer && !__mainPlayer.inTerminalMenu && !__mainPlayer.isTypingChat && !__mainPlayer.isPlayerDead && !__mainPlayer.quickMenuManager.isMenuOpen && !IngamePlayerSettings.Instance.playerInput.actions.FindAction("Crouch", true).IsPressed() && !Physics.Raycast(((Component)localPlayerController.gameplayCamera).transform.position, Vector3.up, ref ___hit, 0.72f, localPlayerController.playersManager.collidersAndRoomMask, (QueryTriggerInteraction)1)) { localPlayerController.isCrouching = false; localPlayerController.playerBodyAnimator.SetBool("crouching", false); } } } catch { } } [HarmonyPatch(typeof(PlayerControllerB), "Jump_performed")] [HarmonyPrefix] public static void Jump_performedA(PlayerControllerB __instance, RaycastHit ___hit) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) if (__instance.isCrouching && canJump(___hit)) { __instance.isCrouching = false; tempcrouch = true; } } [HarmonyPatch(typeof(PlayerControllerB), "Jump_performed")] [HarmonyPostfix] public static void Jump_performedB(PlayerControllerB __instance) { if (tempcrouch) { __instance.isCrouching = true; tempcrouch = false; } } [HarmonyPatch(typeof(PlayerControllerB), "Crouch_performed")] [HarmonyPrefix] public static void Crouch_performed() { } [HarmonyPatch(typeof(PlayerControllerB), "PlayerHitGroundEffects")] [HarmonyPostfix] public static void PlayerHitGroundEffects() { if (GameNetworkManager.Instance.localPlayerController.isCrouching) { GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetTrigger("startCrouching"); GameNetworkManager.Instance.localPlayerController.playerBodyAnimator.SetBool("crouching", true); } } [HarmonyPatch(typeof(GameNetworkManager), "Disconnect")] [HarmonyPostfix] public static void Uninitialize() { stillInitializing = true; } [HarmonyPatch(typeof(StartOfRound), "SceneManager_OnLoadComplete1")] [HarmonyPostfix] public static void Initialize() { stillInitializing = false; } } }