using System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BoneLib; using BoneLib.BoneMenu; using Il2CppInterop.Runtime.InteropTypes.Arrays; using Il2CppSLZ.Marrow; using MelonLoader; using SelfLaunch; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: MelonInfo(typeof(Main), "SelfLaunch", "1.2.1", "Natino", null)] [assembly: AssemblyTitle("SelfLaunch")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("SelfLaunch")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("1d672725-2f9b-4a89-8c98-7a3cdb2b5d41")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace SelfLaunch; public class Main : MelonMod { private static bool launchForward = false; private static bool launchBackward = false; private static bool launchLeft = false; private static bool launchRight = false; private static float launchForce = 20f; private static readonly Color modColor = new Color(0f, 0.9f, 1f, 1f); public override void OnInitializeMelon() { SetupBoneMenu(); } private void SetupBoneMenu() { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_004f: 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_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) Page val = Page.Root.CreatePage("SelfLaunch", modColor, 0, true); val.CreateBool("Forward Launch", modColor, false, (Action)delegate(bool flag) { launchForward = flag; }); val.CreateBool("Backward Launch", modColor, false, (Action)delegate(bool flag) { launchBackward = flag; }); val.CreateBool("Left Launch", modColor, false, (Action)delegate(bool flag) { launchLeft = flag; }); val.CreateBool("Right Launch", modColor, false, (Action)delegate(bool flag) { launchRight = flag; }); val.CreateFloat("Launch Power", modColor, launchForce, 5f, 5f, 200f, (Action)delegate(float num) { launchForce = num; }); } public override void OnUpdate() { bool keyDown = Input.GetKeyDown((KeyCode)116); bool keyDown2 = Input.GetKeyDown((KeyCode)331); if (keyDown || keyDown2) { ExecuteLaunch(); } } private void ExecuteLaunch() { //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: 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_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) RigManager rigManager = Player.RigManager; Transform head = Player.Head; if ((Object)(object)rigManager == (Object)null || (Object)(object)rigManager.physicsRig == (Object)null || (Object)(object)head == (Object)null) { return; } List list = new List(); if (launchForward) { list.Add(head.forward); } if (launchBackward) { list.Add(-head.forward); } if (launchLeft) { list.Add(-head.right); } if (launchRight) { list.Add(head.right); } if (list.Count == 0) { return; } Vector3 val = list[Random.Range(0, list.Count)]; val.y += 0.3f; ((Vector3)(ref val)).Normalize(); Vector3 val2 = val * launchForce; Rigidbody val3 = null; Rigidbody[] array = Il2CppArrayBase.op_Implicit(((Component)rigManager.physicsRig).GetComponentsInChildren()); Rigidbody[] array2 = array; foreach (Rigidbody val4 in array2) { string text = ((Object)((Component)val4).gameObject).name.ToLower(); if (text.Contains("pelvis") || text.Contains("torso") || text.Contains("chest")) { val3 = val4; break; } } if ((Object)(object)val3 == (Object)null && array.Length != 0) { val3 = array[0]; } if ((Object)(object)val3 != (Object)null) { Rigidbody obj = val3; obj.velocity += val2; } } }