Decompiled source of Parkour Knuckle v1.0.8

BepInEx/plugins/ParkourKnuckle.dll

Decompiled 2 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_02c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_02c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d6: 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_02df: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_02eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_04f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0507: Unknown result type (might be due to invalid IL or missing references)
		//IL_03e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ef: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_03fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0416: Unknown result type (might be due to invalid IL or missing references)
		//IL_041b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0425: Unknown result type (might be due to invalid IL or missing references)
		//IL_042a: Unknown result type (might be due to invalid IL or missing references)
		//IL_042f: Unknown result type (might be due to invalid IL or missing references)
		//IL_043b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0442: Unknown result type (might be due to invalid IL or missing references)
		//IL_0569: Unknown result type (might be due to invalid IL or missing references)
		//IL_0574: Unknown result type (might be due to invalid IL or missing references)
		//IL_0579: Unknown result type (might be due to invalid IL or missing references)
		//IL_0592: Unknown result type (might be due to invalid IL or missing references)
		//IL_059d: Unknown result type (might be due to invalid IL or missing references)
		//IL_07c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_07d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_07d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_07e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_07e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_07f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0622: Unknown result type (might be due to invalid IL or missing references)
		//IL_0619: Unknown result type (might be due to invalid IL or missing references)
		//IL_0829: Unknown result type (might be due to invalid IL or missing references)
		//IL_0834: 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_0629: Unknown result type (might be due to invalid IL or missing references)
		//IL_062b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0630: 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_0639: Unknown result type (might be due to invalid IL or missing references)
		//IL_063e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0646: Unknown result type (might be due to invalid IL or missing references)
		//IL_0651: Unknown result type (might be due to invalid IL or missing references)
		//IL_067c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0684: Unknown result type (might be due to invalid IL or missing references)
		//IL_069c: Unknown result type (might be due to invalid IL or missing references)
		//IL_069e: Unknown result type (might be due to invalid IL or missing references)
		//IL_06a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_06b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_06ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_06cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_06d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_06d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_06e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_06f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0701: Unknown result type (might be due to invalid IL or missing references)
		//IL_0708: Unknown result type (might be due to invalid IL or missing references)
		//IL_0718: Unknown result type (might be due to invalid IL or missing references)
		//IL_071d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0727: Unknown result type (might be due to invalid IL or missing references)
		//IL_072c: Unknown result type (might be due to invalid IL or missing references)
		//IL_08dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_08e3: Unknown result type (might be due to invalid IL or missing references)
		//IL_08f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_08f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_08ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_090f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0914: Unknown result type (might be due to invalid IL or missing references)
		//IL_0919: Unknown result type (might be due to invalid IL or missing references)
		//IL_091c: Unknown result type (might be due to invalid IL or missing references)
		//IL_09bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_09c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_09ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_09db: Unknown result type (might be due to invalid IL or missing references)
		//IL_09e0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a3a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a3f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a82: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a87: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a91: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a96: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a9b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a9d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0aa5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ab6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0abd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ac2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ac7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ad3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ad8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0af6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0afb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b05: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b0a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b14: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ca9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cae: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cbb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cc6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cd0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ce0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ce5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ce8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b5b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b63: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b7f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b87: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b91: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b96: 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_0b9d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b9f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bbc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bc1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bcb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bd0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bd5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bd7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bdf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0be4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c18: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c1d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c27: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c2c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c53: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c58: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c62: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c67: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c6c: 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 (Input.GetKeyUp((KeyCode)103) && isCharging)
		{
			if (!isGrounded && !isHolding)
			{
				isCharging = false;
				return;
			}
			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;
		}
	}
}