Decompiled source of ParkourKnuckle v1.0.0

BepInEx/plugins/ParkourKnuckle.dll

Decompiled 5 hours ago
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using HarmonyLib;
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("KnuckleTesting")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("KnuckleTesting")]
[assembly: AssemblyCopyright("Copyright ©  2026")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("9407f467-496e-4117-8715-bdfe3bce9f1b")]
[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 ParkourKnuckle;

[BepInPlugin("com.nimius.parkourknuckle", "Parkour Knuckle", "1.0.0")]
public class Plugin : BaseUnityPlugin
{
	private Harmony _harmony;

	private void Awake()
	{
		//IL_0007: Unknown result type (might be due to invalid IL or missing references)
		//IL_0011: Expected O, but got Unknown
		_harmony = new Harmony("com.nimius.parkourknuckle");
		_harmony.PatchAll();
		((BaseUnityPlugin)this).Logger.LogInfo((object)"Harmony Patches applied successfully.");
	}
}
[HarmonyPatch(typeof(ENT_Player), "Update")]
public class PlayerModifierPatch
{
	private static Quaternion targetRotation;

	private static bool isRotating = false;

	private static float turnSpeed = 24f;

	private static float chargeStartTime;

	private static bool isCharging;

	private static float maxChargeTime = 5f;

	private static float leapForceMultiplier = 1.5f;

	private static float lastLeapTime = 0f;

	private static float leapCooldown = 3f;

	private static float minStamina = 1f;

	private static float maxStamina = 5f;

	private static float upwardArcForce = 1f;

	private static bool isHolding = false;

	private static bool hasWallRunInAir = false;

	private static float tiltLerpSpeed = 4f;

	private static float gripValue = 0f;

	private static bool isVerticalRun = false;

	private static bool hasWallRunVertical = false;

	private static float verticalGraceTimer = 0f;

	private static float maxGraceTime = 0.2f;

	private static bool isVaulting = false;

	private static Vector3 vaultTargetPos;

	private static float vaultTimer = 0f;

	private static float vaultDuration = 0.2f;

	[HarmonyPostfix]
	public static void Postfix(ENT_Player __instance)
	{
		//IL_0041: Unknown result type (might be due to invalid IL or missing references)
		//IL_0055: Unknown result type (might be due to invalid IL or missing references)
		//IL_005a: Unknown result type (might be due to invalid IL or missing references)
		//IL_005f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0083: Unknown result type (might be due to invalid IL or missing references)
		//IL_0088: Unknown result type (might be due to invalid IL or missing references)
		//IL_0098: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_02be: Unknown result type (might be due to invalid IL or missing references)
		//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_02cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_02db: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_04f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0503: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_03eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0412: Unknown result type (might be due to invalid IL or missing references)
		//IL_0417: Unknown result type (might be due to invalid IL or missing references)
		//IL_0421: Unknown result type (might be due to invalid IL or missing references)
		//IL_0426: Unknown result type (might be due to invalid IL or missing references)
		//IL_042b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0437: Unknown result type (might be due to invalid IL or missing references)
		//IL_043e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0565: Unknown result type (might be due to invalid IL or missing references)
		//IL_0570: Unknown result type (might be due to invalid IL or missing references)
		//IL_0575: Unknown result type (might be due to invalid IL or missing references)
		//IL_058e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0599: Unknown result type (might be due to invalid IL or missing references)
		//IL_07bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_07cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_07d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_07df: Unknown result type (might be due to invalid IL or missing references)
		//IL_07e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_07f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_061e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0615: Unknown result type (might be due to invalid IL or missing references)
		//IL_0825: Unknown result type (might be due to invalid IL or missing references)
		//IL_0830: Unknown result type (might be due to invalid IL or missing references)
		//IL_0623: Unknown result type (might be due to invalid IL or missing references)
		//IL_0625: Unknown result type (might be due to invalid IL or missing references)
		//IL_0627: Unknown result type (might be due to invalid IL or missing references)
		//IL_062c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0631: Unknown result type (might be due to invalid IL or missing references)
		//IL_0635: Unknown result type (might be due to invalid IL or missing references)
		//IL_063a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0642: Unknown result type (might be due to invalid IL or missing references)
		//IL_064d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0678: Unknown result type (might be due to invalid IL or missing references)
		//IL_0680: Unknown result type (might be due to invalid IL or missing references)
		//IL_0698: Unknown result type (might be due to invalid IL or missing references)
		//IL_069a: Unknown result type (might be due to invalid IL or missing references)
		//IL_069f: Unknown result type (might be due to invalid IL or missing references)
		//IL_06b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_06b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_06c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_06cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_06d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_06df: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_06f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_06fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0704: Unknown result type (might be due to invalid IL or missing references)
		//IL_0714: Unknown result type (might be due to invalid IL or missing references)
		//IL_0719: Unknown result type (might be due to invalid IL or missing references)
		//IL_0723: Unknown result type (might be due to invalid IL or missing references)
		//IL_0728: Unknown result type (might be due to invalid IL or missing references)
		//IL_08d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_08df: Unknown result type (might be due to invalid IL or missing references)
		//IL_08ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_08f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_08fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_090b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0910: Unknown result type (might be due to invalid IL or missing references)
		//IL_0915: Unknown result type (might be due to invalid IL or missing references)
		//IL_0918: Unknown result type (might be due to invalid IL or missing references)
		//IL_09b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_09bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_09c6: Unknown result type (might be due to invalid IL or missing references)
		//IL_09d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_09dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a3b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a7e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a83: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a8d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a92: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a97: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a99: Unknown result type (might be due to invalid IL or missing references)
		//IL_0aa1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ab2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ab9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0abe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ac3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0acf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ad4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0af2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0af7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b01: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b06: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b10: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ca5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0caa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cb7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cc2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ccc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cdc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ce1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ce4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b57: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b5f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b7b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b83: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b8d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b92: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b97: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b99: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b9b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bb8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bbd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bc7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bcc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bd1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bd3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bdb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0be0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c14: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c19: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c23: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c28: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c32: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c4f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c54: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c5e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c63: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c68: Unknown result type (might be due to invalid IL or missing references)
		bool flag = Time.time < lastLeapTime + leapCooldown;
		CharacterController component = ((Component)__instance).GetComponent<CharacterController>();
		bool isGrounded = component.isGrounded;
		if (Input.GetKeyUp((KeyCode)120) && !flag)
		{
			targetRotation = ((Component)__instance).transform.rotation * Quaternion.Euler(0f, 180f, 0f);
			isRotating = true;
		}
		if (isRotating)
		{
			((Component)__instance).transform.rotation = Quaternion.Slerp(((Component)__instance).transform.rotation, targetRotation, Time.deltaTime * turnSpeed);
			if (Quaternion.Angle(((Component)__instance).transform.rotation, targetRotation) < 0.5f)
			{
				isRotating = false;
			}
		}
		if (Input.GetKeyDown((KeyCode)103))
		{
			Hand[] hands = __instance.hands;
			foreach (Hand val in hands)
			{
				if ((Object)(object)val.handhold != (Object)null && val.handhold.GetHolding())
				{
					isHolding = true;
					break;
				}
			}
			if (isGrounded || isHolding)
			{
				bool flag2 = true;
				Hand[] hands2 = __instance.hands;
				foreach (Hand val2 in hands2)
				{
					if (val2.gripStrength < minStamina)
					{
						flag2 = false;
					}
				}
				if (flag2)
				{
					chargeStartTime = Time.time;
					isCharging = true;
				}
			}
		}
		if (isCharging && Input.GetKey((KeyCode)103) && (isGrounded || isHolding))
		{
			float num = Mathf.Min(Time.time - chargeStartTime, maxChargeTime);
			CL_CameraControl.Shake(num * 0.001f);
			Hand[] hands3 = __instance.hands;
			foreach (Hand val3 in hands3)
			{
				val3.ShakeHand(num * 0.001f);
			}
		}
		if (!isGrounded && !isHolding)
		{
			isCharging = false;
		}
		if (Input.GetKeyUp((KeyCode)103) && isCharging)
		{
			float num2 = Mathf.Min(Time.time - chargeStartTime, maxChargeTime);
			float num3 = Mathf.Min(Time.time - chargeStartTime, maxChargeTime);
			float num4 = num3 * leapForceMultiplier;
			float num5 = Mathf.CeilToInt(Mathf.Lerp(minStamina, maxStamina, num3 / maxChargeTime));
			Vector3 val4 = ((Component)__instance.cam).transform.forward + Vector3.up * upwardArcForce;
			Vector3 directionalForce = ((Vector3)(ref val4)).normalized * num4;
			((GameEntity)__instance).SetDirectionalForce(directionalForce);
			Hand[] hands4 = __instance.hands;
			foreach (Hand val5 in hands4)
			{
				val5.gripStrength -= num5;
				if (val5.gripStrength < 0f)
				{
					val5.gripStrength = 0f;
				}
				if (val5.IsHolding())
				{
					val5.DropHand(true);
				}
			}
			isCharging = false;
		}
		if (Input.GetKeyDown((KeyCode)32) && Input.GetKey((KeyCode)115))
		{
			bool flag3 = true;
			Hand[] hands5 = __instance.hands;
			foreach (Hand val6 in hands5)
			{
				if (val6.gripStrength < 1f)
				{
					flag3 = false;
				}
			}
			if (!isHolding && flag3)
			{
				Vector3 val7 = -((Component)__instance).transform.forward;
				RaycastHit val8 = default(RaycastHit);
				if (Physics.Raycast(((Component)__instance).transform.position, val7, ref val8, 1.2f))
				{
					Vector3 val9 = ((RaycastHit)(ref val8)).normal + Vector3.up * 1.2f;
					float num6 = 1.5f;
					((GameEntity)__instance).SetDirectionalForce(((Vector3)(ref val9)).normalized * num6);
					CL_CameraControl.Shake(0.03f);
					Hand[] hands6 = __instance.hands;
					foreach (Hand val10 in hands6)
					{
						val10.gripStrength -= 1f;
						if (val10.gripStrength < 0f)
						{
							val10.gripStrength = 0f;
						}
					}
				}
			}
		}
		if (isGrounded && !isVerticalRun)
		{
			isVerticalRun = false;
			hasWallRunInAir = false;
			hasWallRunVertical = false;
			((Collider)component).enabled = true;
			((Component)__instance).transform.rotation = Quaternion.Euler(0f, ((Component)__instance).transform.eulerAngles.y, 0f);
		}
		bool flag4 = true;
		Hand[] hands7 = __instance.hands;
		foreach (Hand val11 in hands7)
		{
			gripValue = val11.gripStrength;
			if (val11.gripStrength <= 0f)
			{
				flag4 = false;
			}
		}
		RaycastHit val12 = default(RaycastHit);
		bool flag5 = Physics.Raycast(((Component)__instance).transform.position, -((Component)__instance).transform.right, ref val12, 1.2f);
		RaycastHit val13 = default(RaycastHit);
		bool flag6 = Physics.Raycast(((Component)__instance).transform.position, ((Component)__instance).transform.right, ref val13, 1.2f);
		bool flag7 = Input.GetKey((KeyCode)32) && !Input.GetKey((KeyCode)119) && (Input.GetKey((KeyCode)97) || Input.GetKey((KeyCode)100));
		if (!isGrounded && !hasWallRunInAir && flag7 && (flag5 || flag6))
		{
			if (flag4)
			{
				((Collider)component).enabled = false;
				Vector3 val14 = (flag5 ? ((RaycastHit)(ref val12)).normal : ((RaycastHit)(ref val13)).normal);
				Vector3 val15 = Vector3.Cross(val14, Vector3.up);
				Vector3 val16 = ((Vector3)(ref val15)).normalized;
				RaycastHit val17 = default(RaycastHit);
				if (Physics.Raycast(((Component)__instance).transform.position, ((Component)__instance).transform.forward, ref val17, 1.2f))
				{
					hasWallRunInAir = true;
					((Collider)component).enabled = true;
					return;
				}
				if (Vector3.Dot(val16, ((Component)__instance).transform.forward) < 0f)
				{
					val16 = -val16;
				}
				float num8 = (flag5 ? (-15f) : 15f);
				Quaternion val18 = Quaternion.LookRotation(val16) * Quaternion.Euler(0f, 0f, num8);
				((Component)__instance).transform.rotation = Quaternion.Slerp(((Component)__instance).transform.rotation, val18, Time.deltaTime * tiltLerpSpeed);
				((GameEntity)__instance).SetDirectionalForce(val16 * 0.8f * (gripValue * 0.1f) + Vector3.up * 0.1f);
				CL_CameraControl.Shake(0.005f);
				Hand[] hands8 = __instance.hands;
				foreach (Hand val19 in hands8)
				{
					val19.gripStrength -= 0.075f;
					if (val19.gripStrength < 0f)
					{
						val19.gripStrength = 0f;
					}
				}
			}
			else
			{
				hasWallRunInAir = true;
				((Collider)component).enabled = true;
			}
		}
		else
		{
			Quaternion val20 = Quaternion.Euler(0f, ((Component)__instance).transform.eulerAngles.y, 0f);
			((Component)__instance).transform.rotation = Quaternion.Slerp(((Component)__instance).transform.rotation, val20, Time.deltaTime * tiltLerpSpeed);
			if (!isGrounded && ((Collider)component).enabled)
			{
				hasWallRunInAir = true;
			}
			((Collider)component).enabled = true;
		}
		RaycastHit val21 = default(RaycastHit);
		bool flag8 = Physics.Raycast(((Component)__instance).transform.position, ((Component)__instance).transform.forward, ref val21, 1.2f);
		bool flag9 = Input.GetKey((KeyCode)32) && Input.GetKey((KeyCode)119);
		if (isVerticalRun)
		{
			if (flag9)
			{
				verticalGraceTimer = 0f;
			}
			else
			{
				verticalGraceTimer += Time.deltaTime;
			}
		}
		if (isVerticalRun && !Input.GetKey((KeyCode)119) && Input.GetKeyDown((KeyCode)32) && verticalGraceTimer > 0f && verticalGraceTimer < maxGraceTime)
		{
			float num10 = 1.5f;
			float num11 = 1.5f;
			Vector3 directionalForce2 = ((RaycastHit)(ref val21)).normal * num10 * (gripValue * 0.1f) + Vector3.up * num11 * (gripValue * 0.1f);
			((GameEntity)__instance).SetDirectionalForce(directionalForce2);
			isVerticalRun = false;
			verticalGraceTimer = 0f;
			hasWallRunVertical = true;
			((Collider)component).enabled = true;
			return;
		}
		if (isVerticalRun && verticalGraceTimer >= maxGraceTime)
		{
			isVerticalRun = false;
			hasWallRunVertical = true;
			((Collider)component).enabled = true;
			verticalGraceTimer = 0f;
		}
		if (isVaulting)
		{
			vaultTimer += Time.deltaTime;
			float num12 = vaultTimer / vaultDuration;
			((Component)__instance).transform.position = Vector3.Lerp(((Component)__instance).transform.position, vaultTargetPos, 2f);
			if (Vector3.Distance(((Component)__instance).transform.position, vaultTargetPos) < 0.1f)
			{
				isVaulting = false;
				((Collider)component).enabled = true;
			}
			return;
		}
		if (flag9 && !hasWallRunVertical && flag8 && (isGrounded || isVerticalRun))
		{
			float num13 = Vector3.Angle(((RaycastHit)(ref val21)).normal, Vector3.up);
			if (flag4 && num13 > 80f && num13 < 100f)
			{
				isVerticalRun = true;
				((Collider)component).enabled = false;
				Vector3 val22 = ((Component)__instance).transform.position + Vector3.up * 1.5f;
				bool flag10 = Physics.Raycast(val22, ((Component)__instance).transform.forward, 0.25f);
				Quaternion val23 = Quaternion.LookRotation(Vector3.up, ((RaycastHit)(ref val21)).normal);
				RaycastHit val24 = default(RaycastHit);
				if (flag10 && Quaternion.Angle(((Component)__instance).transform.rotation, val23) < 25f && Physics.SphereCast(((Component)__instance).transform.position + Vector3.up * 1f, 0.3f, Vector3.up, ref val24, 0.7f))
				{
					isVaulting = false;
					hasWallRunVertical = true;
					isVerticalRun = false;
					((Collider)component).enabled = true;
					return;
				}
				if (!flag10 && !Physics.Raycast(val22, ((Component)__instance).transform.forward, 1f))
				{
					Vector3 val25 = val22 + ((Component)__instance).transform.forward * 1f;
					RaycastHit val26 = default(RaycastHit);
					if (Physics.Raycast(val25, Vector3.down, ref val26, 2f))
					{
						Vector3 val27 = ((RaycastHit)(ref val26)).point + Vector3.up * 0.5f;
						RaycastHit val28 = default(RaycastHit);
						if (Physics.Raycast(val27, -((Component)__instance).transform.forward, ref val28, 1.5f) && ((RaycastHit)(ref val28)).distance < 0.2f)
						{
							return;
						}
						RaycastHit val29 = default(RaycastHit);
						if (!Physics.SphereCast(((RaycastHit)(ref val26)).point + Vector3.up * 0.1f, 0.3f, Vector3.up, ref val29, 1.8f))
						{
							vaultTargetPos = ((RaycastHit)(ref val26)).point + Vector3.up * 1.1f;
							isVaulting = true;
							vaultTimer = 0f;
							isVerticalRun = false;
							hasWallRunVertical = true;
							((Collider)component).enabled = false;
							return;
						}
					}
				}
				((Component)__instance).transform.rotation = Quaternion.Slerp(((Component)__instance).transform.rotation, val23, Time.deltaTime * 10f);
				Vector3 directionalForce3 = Vector3.up * 0.4f * (gripValue * 0.15f);
				((GameEntity)__instance).SetDirectionalForce(directionalForce3);
				CL_CameraControl.Shake(0.008f);
				Hand[] hands9 = __instance.hands;
				foreach (Hand val30 in hands9)
				{
					val30.gripStrength -= 0.09f;
					if (val30.gripStrength < 0f)
					{
						val30.gripStrength = 0f;
					}
				}
				return;
			}
		}
		if (!isGrounded && !isVerticalRun && !isVaulting && verticalGraceTimer <= 0f && ((Collider)component).enabled)
		{
			hasWallRunVertical = true;
		}
	}
}