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;
}
}
}