Decompiled source of NewTrix v1.5.2
NewTrix.dll
Decompiled 2 weeks ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using HarmonyLib; using Microsoft.CodeAnalysis; using Reptile; using UnityEngine; using UnityEngine.SceneManagement; using newtrickx; using trickyclown; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETFramework,Version=v4.7.1", FrameworkDisplayName = ".NET Framework 4.7.1")] [assembly: AssemblyCompany("NewTrix")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("New Tricks for Bomb Rush Cyberfunk")] [assembly: AssemblyFileVersion("1.4.1.0")] [assembly: AssemblyInformationalVersion("1.4.1")] [assembly: AssemblyProduct("NewTrix")] [assembly: AssemblyTitle("NewTrix")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.4.1.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace newtrickx { [BepInPlugin("ConfigTrixSlidesAndManuals", "New Trix Slides", "1.4.1")] [BepInProcess("Bomb Rush Cyberfunk.exe")] internal class SlideAbilityPatches : BaseUnityPlugin { public static Dictionary<string, bool> IdleOverrides = new Dictionary<string, bool>(); private Dictionary<string, ConfigEntry<string>> configEntriesSlide; public static SlideAbilityPatches Instance { get; private set; } private void Awake() { Instance = this; configEntriesSlide = new Dictionary<string, ConfigEntry<string>>(); configEntriesSlide["slideSkateboardCfg"] = ((BaseUnityPlugin)this).Config.Bind<string>("Manual/Slide/Roll", "slideSkateboardCfg", "roll", "Skateboard Manual"); configEntriesSlide["slideSkateboardNameCfg"] = ((BaseUnityPlugin)this).Config.Bind<string>("Manual/Slide/Roll", "slideSkateboardCfgName", "Manual", "Skateboard Manual Name"); configEntriesSlide["slideFootCfg"] = ((BaseUnityPlugin)this).Config.Bind<string>("Manual/Slide/Roll", "slideFootCfg", "softBounce17", "On-foot Roll/Slide"); configEntriesSlide["slideFootNameCfg"] = ((BaseUnityPlugin)this).Config.Bind<string>("Manual/Slide/Roll", "slideFootCfgName", "Check your configs >:3c", "On-foot Roll/Slide Name"); configEntriesSlide["slideInlineCfg"] = ((BaseUnityPlugin)this).Config.Bind<string>("Manual/Slide/Roll", "slideInlineCfg", "roll", "Inline Slide"); configEntriesSlide["slideInlineNameCfg"] = ((BaseUnityPlugin)this).Config.Bind<string>("Manual/Slide/Roll", "slideInlineCfgName", "Cess Slide", "Inline Slide Name"); configEntriesSlide["slideBmxCfg"] = ((BaseUnityPlugin)this).Config.Bind<string>("Manual/Slide/Roll", "slideBmxCfg", "roll", "BMX Manual"); configEntriesSlide["slideBmxNameCfg"] = ((BaseUnityPlugin)this).Config.Bind<string>("Manual/Slide/Roll", "slideBmxCfgName", "Manual", "BMX Manual Name"); IdleOverrides["skateboardSlidecfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Manual/Slide/Roll", "Skateboard Slide Override Anim", false, "Set to on-foot animator for Skateboard Slide").Value; IdleOverrides["inlineSlidecfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Manual/Slide/Roll", "Inline Slide Override Anim", false, "Set to on-foot animator for Inline Slide").Value; IdleOverrides["bmxSlidecfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Manual/Slide/Roll", "Bmx Slide Override Anim", false, "Set to on-foot animator for Bmx Slide").Value; } public string GetConfigValueSlide(string key) { if (configEntriesSlide.TryGetValue(key, out var value)) { return value.Value; } ((BaseUnityPlugin)this).Logger.LogError((object)("Config key '" + key + "' not found.")); return null; } [HarmonyPatch(typeof(SlideAbility), "OnStartAbility")] [HarmonyPrefix] public static bool OnStartAbility_Prefix(SlideAbility __instance) { //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Invalid comparison between Unknown and I4 //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Invalid comparison between Unknown and I4 //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Invalid comparison between Unknown and I4 //IL_027d: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Invalid comparison between Unknown and I4 string configValueSlide = Instance.GetConfigValueSlide("slideSkateboardCfg"); string configValueSlide2 = Instance.GetConfigValueSlide("slideSkateboardNameCfg"); string configValueSlide3 = Instance.GetConfigValueSlide("slideFootCfg"); string configValueSlide4 = Instance.GetConfigValueSlide("slideFootNameCfg"); string configValueSlide5 = Instance.GetConfigValueSlide("slideInlineCfg"); string configValueSlide6 = Instance.GetConfigValueSlide("slideInlineNameCfg"); string configValueSlide7 = Instance.GetConfigValueSlide("slideBmxCfg"); string configValueSlide8 = Instance.GetConfigValueSlide("slideBmxNameCfg"); Console.WriteLine(((Ability)__instance).p.currentTrickName); ((Ability)__instance).setSpeedOnHittingBreakable = (__instance.baseSpeed = ((Ability)__instance).p.maxMoveSpeed); __instance.singleBoostCooldown = 0f; __instance.normalCapsuleHeight = ((Ability)__instance).p.motor.GetCapsule().height; __instance.normalCapsuleCenter = ((Ability)__instance).p.motor.GetCapsule().center.y; ((Ability)__instance).autoAirTrickFromLauncher = false; __instance.wantToStop = (__instance.stopDecided = false); if ((int)((Ability)__instance).p.moveStyle == 0) { __instance.trickName = configValueSlide4; __instance.rollHash = AnimationUtility.GetAnimationByName(configValueSlide3); __instance.Crouch(true); } else { if ((int)((Ability)__instance).p.moveStyle == 2) { ATAPatchTC.CheckAnimOverride(IdleOverrides["skateboardSlidecfgAnim"]); __instance.trickName = configValueSlide2; __instance.rollHash = AnimationUtility.GetAnimationByName(configValueSlide); } else if ((int)((Ability)__instance).p.moveStyle == 3) { ATAPatchTC.CheckAnimOverride(IdleOverrides["inlineSlidecfgAnim"]); __instance.trickName = configValueSlide6; __instance.rollHash = AnimationUtility.GetAnimationByName(configValueSlide5); } else if ((int)((Ability)__instance).p.moveStyle == 1) { ATAPatchTC.CheckAnimOverride(IdleOverrides["bmxSlidecfgAnim"]); __instance.trickName = configValueSlide8; __instance.rollHash = AnimationUtility.GetAnimationByName(configValueSlide7); } if (VertAbilityPatches.nonVanillaMovestyle) { __instance.rollHash = Animator.StringToHash("roll"); } } __instance.SetSlideState((SlideState)0); if (((Ability)__instance).p.lastElevationForSlideBoost > ((Ability)__instance).p.tf.position.y + 0.5f) { __instance.SingleBoost(((Ability)__instance).p.boostSpeed - 1f); } return false; } } [HarmonyPatch(typeof(VertAbility))] internal class VertAbilityPatches2 { [HarmonyPatch("StartTrick")] [HarmonyPrefix] public static bool StartTrick_Prefix(VertAbility __instance) { //IL_06d6: Unknown result type (might be due to invalid IL or missing references) //IL_06dc: Invalid comparison between Unknown and I4 //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Invalid comparison between Unknown and I4 //IL_06e4: Unknown result type (might be due to invalid IL or missing references) //IL_06ea: Invalid comparison between Unknown and I4 //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Invalid comparison between Unknown and I4 //IL_03ea: Unknown result type (might be due to invalid IL or missing references) //IL_03f0: Invalid comparison between Unknown and I4 //IL_0712: Unknown result type (might be due to invalid IL or missing references) //IL_0718: Invalid comparison between Unknown and I4 //IL_073d: Unknown result type (might be due to invalid IL or missing references) //IL_0743: Invalid comparison between Unknown and I4 //IL_05b1: Unknown result type (might be due to invalid IL or missing references) //IL_07ae: Unknown result type (might be due to invalid IL or missing references) //IL_07b4: Invalid comparison between Unknown and I4 //IL_090b: Unknown result type (might be due to invalid IL or missing references) //IL_0911: Invalid comparison between Unknown and I4 //IL_0ff7: Unknown result type (might be due to invalid IL or missing references) //IL_0a68: Unknown result type (might be due to invalid IL or missing references) //IL_0a6e: Invalid comparison between Unknown and I4 string configValueAir = ATAPatchTC.Instance.GetConfigValueAir("skateboardAirBoostTrick0cfg"); string configValueAir2 = ATAPatchTC.Instance.GetConfigValueAir("skateboardAirBoostTrick1cfg"); string configValueAir3 = ATAPatchTC.Instance.GetConfigValueAir("skateboardAirBoostTrick2cfg"); string configValueAir4 = ATAPatchTC.Instance.GetConfigValueAir("inlineAirBoostTrick0cfg"); string configValueAir5 = ATAPatchTC.Instance.GetConfigValueAir("inlineAirBoostTrick1cfg"); string configValueAir6 = ATAPatchTC.Instance.GetConfigValueAir("inlineAirBoostTrick2cfg"); string configValueAir7 = ATAPatchTC.Instance.GetConfigValueAir("bmxAirBoostTrick0cfg"); string configValueAir8 = ATAPatchTC.Instance.GetConfigValueAir("bmxAirBoostTrick1cfg"); string configValueAir9 = ATAPatchTC.Instance.GetConfigValueAir("bmxAirBoostTrick2cfg"); string configValueAir10 = ATAPatchTC.Instance.GetConfigValueAir("footAirBoostTrick0cfg"); string configValueAir11 = ATAPatchTC.Instance.GetConfigValueAir("footAirBoostTrick1cfg"); string configValueAir12 = ATAPatchTC.Instance.GetConfigValueAir("footAirBoostTrick2cfg"); AirTrickAbility airTrickAbility = ((Ability)__instance).p.airTrickAbility; airTrickAbility.curTrick = ((Ability)__instance).p.InputToTrickNumber(); Console.WriteLine("incheckboosttrick with value " + ((object)(MoveStyle)(ref ((Ability)__instance).p.moveStyle)).ToString()); bool tonyCfg = ATAPatchTC.GetTonyCfg(); if (((Ability)__instance).p.CheckBoostTrick()) { if ((int)((Ability)__instance).p.moveStyle == 2) { if (airTrickAbility.curTrick == 0) { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["skateboardAirBoostTrick0cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir), true, false, 0f); if (ATAPatchTC.IdleOverrides["skateboardAirBoostTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (airTrickAbility.curTrick == 1) { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["skateboardAirBoostTrick1cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir2), true, false, 0f); if (ATAPatchTC.IdleOverrides["skateboardAirBoostTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (airTrickAbility.curTrick == 2) { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["skateboardAirBoostTrick2cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir3), true, false, 0f); if (ATAPatchTC.IdleOverrides["skateboardAirBoostTrick2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else if ((int)((Ability)__instance).p.moveStyle == 3) { if (airTrickAbility.curTrick == 0) { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["inlineAirBoostTrick0cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir4), true, false, 0f); if (ATAPatchTC.IdleOverrides["inlineAirBoostTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (airTrickAbility.curTrick == 1) { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["inlineAirBoostTrick1cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir5), true, false, 0f); if (ATAPatchTC.IdleOverrides["inlineAirBoostTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (airTrickAbility.curTrick == 2) { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["inlineAirBoostTrick2cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir6), true, false, 0f); if (ATAPatchTC.IdleOverrides["inlineAirBoostTrick2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else if ((int)((Ability)__instance).p.moveStyle == 1) { if (airTrickAbility.curTrick == 0) { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["bmxAirBoostTrick0cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir7), true, false, 0f); if (ATAPatchTC.IdleOverrides["bmxAirBoostTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (airTrickAbility.curTrick == 1) { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["bmxAirBoostTrick1cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir8), true, false, 0f); if (ATAPatchTC.IdleOverrides["bmxAirBoostTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (airTrickAbility.curTrick == 2) { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["bmxAirBoostTrick2cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir9), true, false, 0f); if (ATAPatchTC.IdleOverrides["bmxAirBoostTrick2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } if (VertAbilityPatches.nonVanillaMovestyle) { ((Ability)__instance).p.PlayAnim(airTrickAbility.airBoostTrickHashes[airTrickAbility.curTrick], true, false, 0f); } ((Ability)__instance).p.PlayVoice((AudioClipID)498, (VoicePriority)2, true); __instance.trickScoreBuffered = true; __instance.trickTimer = __instance.trickDuration * 1.5f; ((Ability)__instance).p.AddBoostCharge(0f - ((Ability)__instance).p.boostTrickCost); __instance.trickType = (TrickType)2; return false; } ((Ability)__instance).p.PlayAnim(airTrickAbility.airTrickHashes[airTrickAbility.curTrick], false, false, -1f); string configValueAir13 = ATAPatchTC.Instance.GetConfigValueAir("skateboardAirTrick0cfg"); string configValueAir14 = ATAPatchTC.Instance.GetConfigValueAir("skateboardAirTrick1cfg"); string configValueAir15 = ATAPatchTC.Instance.GetConfigValueAir("skateboardAirTrick2cfg"); string configValueAir16 = ATAPatchTC.Instance.GetConfigValueAir("inlineAirTrick0cfg"); string configValueAir17 = ATAPatchTC.Instance.GetConfigValueAir("inlineAirTrick1cfg"); string configValueAir18 = ATAPatchTC.Instance.GetConfigValueAir("inlineAirTrick2cfg"); string configValueAir19 = ATAPatchTC.Instance.GetConfigValueAir("bmxAirTrick0cfg"); string configValueAir20 = ATAPatchTC.Instance.GetConfigValueAir("bmxAirTrick1cfg"); string configValueAir21 = ATAPatchTC.Instance.GetConfigValueAir("bmxAirTrick2cfg"); string configValueAir22 = ATAPatchTC.Instance.GetConfigValueAir("footAirTrick0cfg"); string configValueAir23 = ATAPatchTC.Instance.GetConfigValueAir("footAirTrick1cfg"); string configValueAir24 = ATAPatchTC.Instance.GetConfigValueAir("footAirTrick2cfg"); ((Ability)__instance).p.PlayAnim(airTrickAbility.airTrickHashes[airTrickAbility.curTrick], true, false, 0f); if ((int)((Ability)__instance).p.moveStyle == 2 || (int)((Ability)__instance).p.moveStyle == 4) { airTrickAbility.duration = airTrickAbility.skateboardTrickDuration; } else if ((int)((Ability)__instance).p.moveStyle == 1) { airTrickAbility.duration = airTrickAbility.bmxTrickDuration; } else if ((int)((Ability)__instance).p.moveStyle == 3) { airTrickAbility.duration = airTrickAbility.inlineTrickDuration; } if (((Ability)__instance).p.CheckBoostTrick()) { airTrickAbility.SetupBoostTrick(); } else { ((Ability)__instance).p.PlayAnim(airTrickAbility.airTrickHashes[airTrickAbility.curTrick], true, false, 0f); if ((int)((Ability)__instance).p.moveStyle == 1) { if (airTrickAbility.curTrick == 0) { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["bmxAirTrick0cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir19), true, false, 0f); if (ATAPatchTC.IdleOverrides["bmxAirTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (airTrickAbility.curTrick == 1) { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["bmxAirTrick1cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir20), true, false, 0f); if (ATAPatchTC.IdleOverrides["bmxAirTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (airTrickAbility.curTrick == 2) { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["bmxAirTrick2cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir21), true, false, 0f); if (ATAPatchTC.IdleOverrides["bmxAirTrick2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else if ((int)((Ability)__instance).p.moveStyle == 3) { if (airTrickAbility.curTrick == 0) { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["inlineAirTrick0cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir16), true, false, -1f); if (ATAPatchTC.IdleOverrides["inlineAirTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (airTrickAbility.curTrick == 1) { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["inlineAirTrick1cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir17), true, false, -1f); if (ATAPatchTC.IdleOverrides["inlineAirTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (airTrickAbility.curTrick == 2) { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["inlineAirTrick2cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir18), true, false, -1f); if (ATAPatchTC.IdleOverrides["inlineAirTrick2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else if ((int)((Ability)__instance).p.moveStyle == 2) { bool value = ATAPatchTC.enableTonyCfg.Value; if (airTrickAbility.curTrick == 0) { float moveAxisX = ((Ability)__instance).p.moveAxisX; float moveAxisY = ((Ability)__instance).p.moveAxisY; if (value) { if (moveAxisX <= -0.25f) { if (moveAxisY <= -0.25f || moveAxisY >= 0.25f) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir13), true, false, -1f); if (ATAPatchTC.IdleOverrides["skateboardAirTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName("groundTrick0"), true, false, -1f); } VertAbilityPatches.overridingIdle = false; } else if (moveAxisX >= 0.25f) { if (moveAxisY <= -0.25f || moveAxisY >= 0.25f) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir13), true, false, -1f); if (ATAPatchTC.IdleOverrides["skateboardAirTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName("groundTrick2"), true, false, -1f); } VertAbilityPatches.overridingIdle = false; } else if (moveAxisY <= -0.25f) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName("grindTrick0"), true, false, -1f); VertAbilityPatches.overridingIdle = false; } else if (moveAxisY >= 0.25f) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName("groundTrick3"), true, false, -1f); VertAbilityPatches.overridingIdle = false; } else { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["skateboardAirTrick0cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir13), true, false, -1f); if (ATAPatchTC.IdleOverrides["skateboardAirTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["skateboardAirTrick0cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir13), true, false, -1f); if (ATAPatchTC.IdleOverrides["skateboardAirTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else if (airTrickAbility.curTrick == 1) { if (value && ((Ability)__instance).p.slideButtonHeld) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName("groundBoostTrick0"), false, false, -1f); VertAbilityPatches.overridingIdle = false; } else { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["skateboardAirTrick1cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir14), false, false, -1f); if (ATAPatchTC.IdleOverrides["skateboardAirTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else if (airTrickAbility.curTrick == 2) { if (value) { if (((Ability)__instance).p.moveAxisX >= 0.25f) { if (((Ability)__instance).p.moveAxisY <= -0.25f && BunchOfEmotesSupport.Installed) { ATAPatchTC.CheckAnimOverride(overrideAnim: true); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName("christ air"), false, false, -1f); VertAbilityPatches.overridingIdle = false; } else if (((Ability)__instance).p.moveAxisY >= 0.25f) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir15), false, false, -1f); if (ATAPatchTC.IdleOverrides["skateboardAirTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName("airTrick1"), false, false, -1f); VertAbilityPatches.overridingIdle = false; } } else { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["skateboardAirTrick2cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir15), false, false, -1f); if (ATAPatchTC.IdleOverrides["skateboardAirTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else { ATAPatchTC.CheckAnimOverride(ATAPatchTC.IdleOverrides["skateboardAirTrick2cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir15), false, false, -1f); if (ATAPatchTC.IdleOverrides["skateboardAirTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } } else if (VertAbilityPatches.nonVanillaMovestyle) { ((Ability)__instance).p.PlayAnim(airTrickAbility.airTrickHashes[airTrickAbility.curTrick], true, false, 0f); } } __instance.trickScoreBuffered = true; __instance.trickTimer = __instance.trickDuration; __instance.trickType = (TrickType)1; return false; } } } namespace trickyclown { [BepInPlugin("ConfigTrixAirTricks", "New Trix Air", "1.4.1")] [BepInProcess("Bomb Rush Cyberfunk.exe")] public class ATAPatchTC : BaseUnityPlugin { public static Dictionary<string, bool> IdleOverrides = new Dictionary<string, bool>(); public static ConfigEntry<bool> enableTonyCfg; private Dictionary<string, ConfigEntry<string>> configEntriesAir; public static ATAPatchTC Instance { get; private set; } public static void CheckAnimOverride(bool overrideAnim) { if (overrideAnim) { VertAbilityPatches.UseFootController(); } } private void Awake() { IdleOverrides["skateboardAirTrick0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Skateboard Air Tricks", "Skateboard Trick 0 Override Fall", false, "Override fall for Button 1 trick (OVERRIDES REQUIRE GAME RESTART TO TAKE EFFECT)").Value; IdleOverrides["skateboardAirTrick1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Skateboard Air Tricks", "Skateboard Trick 1 Override Fall", false, "Override fall for Button 2 trick").Value; IdleOverrides["skateboardAirTrick2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Skateboard Air Tricks", "Skateboard Trick 2 Override Fall", false, "Override fall for Button 3 trick").Value; IdleOverrides["skateboardAirBoostTrick0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Skateboard Air Tricks", "Skateboard Boost Trick 0 Override Fall", false, "Override fall for Button 1 boost trick").Value; IdleOverrides["skateboardAirBoostTrick1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Skateboard Air Tricks", "Skateboard Boost Trick 1 Override Fall", false, "Override fall for Button 2 boost trick").Value; IdleOverrides["skateboardAirBoostTrick2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Skateboard Air Tricks", "Skateboard Boost Trick 2 Override Fall", false, "Override fall for Button 3 boost trick").Value; IdleOverrides["inlineAirTrick0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Inline Air Tricks", "Inline Trick 0 Override Fall", false, "Override fall for Button 1 trick (OVERRIDES REQUIRE GAME RESTART TO TAKE EFFECT)").Value; IdleOverrides["inlineAirTrick1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Inline Air Tricks", "Inline Trick 1 Override Fall", false, "Override fall for Button 2 trick").Value; IdleOverrides["inlineAirTrick2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Inline Air Tricks", "Inline Trick 2 Override Fall", false, "Override fall for Button 3 trick").Value; IdleOverrides["inlineAirBoostTrick0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Inline Air Tricks", "Inline Boost Trick 0 Override Fall", false, "Override fall for Button 1 boost trick").Value; IdleOverrides["inlineAirBoostTrick1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Inline Air Tricks", "Inline Boost Trick 1 Override Fall", false, "Override fall for Button 2 boost trick").Value; IdleOverrides["inlineAirBoostTrick2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Inline Air Tricks", "Inline Boost Trick 2 Override Fall", false, "Override fall for Button 3 boost trick").Value; IdleOverrides["bmxAirTrick0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("BMX Air Tricks", "Bmx Trick 0 Override Fall", false, "Override fall for Button 1 trick (OVERRIDES REQUIRE GAME RESTART TO TAKE EFFECT)").Value; IdleOverrides["bmxAirTrick1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("BMX Air Tricks", "Bmx Trick 1 Override Fall", false, "Override fall for Button 2 trick").Value; IdleOverrides["bmxAirTrick2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("BMX Air Tricks", "Bmx Trick 2 Override Fall", false, "Override fall for Button 3 trick").Value; IdleOverrides["bmxAirBoostTrick0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("BMX Air Tricks", "Bmx Boost Trick 0 Override Fall", false, "Override fall for Button 1 boost trick").Value; IdleOverrides["bmxAirBoostTrick1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("BMX Air Tricks", "Bmx Boost Trick 1 Override Fall", false, "Override fall for Button 2 boost trick").Value; IdleOverrides["bmxAirBoostTrick2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("BMX Air Tricks", "Bmx Boost Trick 2 Override Fall", false, "Override fall for Button 3 boost trick").Value; IdleOverrides["footAirTrick0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Air Tricks", "Foot Trick 0 Override Fall", false, "Override fall for Button 1 trick (OVERRIDES REQUIRE GAME RESTART TO TAKE EFFECT)").Value; IdleOverrides["footAirTrick1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Air Tricks", "Foot Trick 1 Override Fall", false, "Override fall for Button 2 trick").Value; IdleOverrides["footAirTrick2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Air Tricks", "Foot Trick 2 Override Fall", false, "Override fall for Button 3 trick").Value; IdleOverrides["footAirBoostTrick0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Air Tricks", "Foot Boost Trick 0 Override Fall", false, "Override fall for Button 1 boost trick").Value; IdleOverrides["footAirBoostTrick1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Air Tricks", "Foot Boost Trick 1 Override Fall", false, "Override fall for Button 2 boost trick").Value; IdleOverrides["footAirBoostTrick2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Air Tricks", "Foot Boost Trick 2 Override Fall", false, "Override fall for Button 3 boost trick").Value; IdleOverrides["footAirTrickLeft0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Left Air Tricks", "Foot TrickLeft 0 Override Fall", false, "Override fall for Button 1 TrickLeft").Value; IdleOverrides["footAirTrickLeft1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Left Air Tricks", "Foot TrickLeft 1 Override Fall", false, "Override fall for Button 2 TrickLeft").Value; IdleOverrides["footAirTrickLeft2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Left Air Tricks", "Foot TrickLeft 2 Override Fall", false, "Override fall for Button 3 TrickLeft").Value; IdleOverrides["footAirBoostTrickLeft0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Left Air Tricks", "Foot Boost TrickLeft 0 Override Fall", false, "Override fall for Button 1 boost TrickLeft").Value; IdleOverrides["footAirBoostTrickLeft1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Left Air Tricks", "Foot Boost TrickLeft 1 Override Fall", false, "Override fall for Button 2 boost TrickLeft").Value; IdleOverrides["footAirBoostTrickLeft2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Left Air Tricks", "Foot Boost TrickLeft 2 Override Fall", false, "Override fall for Button 3 boost TrickLeft").Value; IdleOverrides["footAirTrickRight0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Right Air Tricks", "Foot TrickRight 0 Override Fall", false, "Override fall for Button 1 TrickRight").Value; IdleOverrides["footAirTrickRight1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Right Air Tricks", "Foot TrickRight 1 Override Fall", false, "Override fall for Button 2 TrickRight").Value; IdleOverrides["footAirTrickRight2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Right Air Tricks", "Foot TrickRight 2 Override Fall", false, "Override fall for Button 3 TrickRight").Value; IdleOverrides["footAirBoostTrickRight0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Right Air Tricks", "Foot Boost TrickRight 0 Override Fall", false, "Override fall for Button 1 boost TrickRight").Value; IdleOverrides["footAirBoostTrickRight1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Right Air Tricks", "Foot Boost TrickRight 1 Override Fall", false, "Override fall for Button 2 boost TrickRight").Value; IdleOverrides["footAirBoostTrickRight2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Right Air Tricks", "Foot Boost TrickRight 2 Override Fall", false, "Override fall for Button 3 boost TrickRight").Value; IdleOverrides["footAirTrickUp0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Up Air Tricks", "Foot TrickUp 0 Override Fall", false, "Override fall for Button 1 TrickUp").Value; IdleOverrides["footAirTrickUp1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Up Air Tricks", "Foot TrickUp 1 Override Fall", false, "Override fall for Button 2 TrickUp").Value; IdleOverrides["footAirTrickUp2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Up Air Tricks", "Foot TrickUp 2 Override Fall", false, "Override fall for Button 3 TrickUp").Value; IdleOverrides["footAirBoostTrickUp0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Up Air Tricks", "Foot Boost TrickUp 0 Override Fall", false, "Override fall for Button 1 boost TrickUp").Value; IdleOverrides["footAirBoostTrickUp1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Up Air Tricks", "Foot Boost TrickUp 1 Override Fall", false, "Override fall for Button 2 boost TrickUp").Value; IdleOverrides["footAirBoostTrickUp2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Up Air Tricks", "Foot Boost TrickUp 2 Override Fall", false, "Override fall for Button 3 boost TrickUp").Value; IdleOverrides["footAirTrickDown0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Down Air Tricks", "Foot TrickDown 0 Override Fall", false, "Override fall for Button 1 TrickDown").Value; IdleOverrides["footAirTrickDown1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Down Air Tricks", "Foot TrickDown 1 Override Fall", false, "Override fall for Button 2 TrickDown").Value; IdleOverrides["footAirTrickDown2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Down Air Tricks", "Foot TrickDown 2 Override Fall", false, "Override fall for Button 3 TrickDown").Value; IdleOverrides["footAirBoostTrickDown0cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Down Air Tricks", "Foot Boost TrickDown 0 Override Fall", false, "Override fall for Button 1 boost TrickDown").Value; IdleOverrides["footAirBoostTrickDown1cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Down Air Tricks", "Foot Boost TrickDown 1 Override Fall", false, "Override fall for Button 2 boost TrickDown").Value; IdleOverrides["footAirBoostTrickDown2cfg"] = ((BaseUnityPlugin)this).Config.Bind<bool>("On-foot Down Air Tricks", "Foot Boost TrickDown 2 Override Fall", false, "Override fall for Button 3 boost TrickDown").Value; IdleOverrides["skateboardAirTrick0cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Skateboard Air Tricks", "Skateboard Trick 0 Override Anim", false, "Set to on-foot animator for Button 1 trick").Value; IdleOverrides["skateboardAirTrick1cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Skateboard Air Tricks", "Skateboard Trick 1 Override Anim", false, "Set to on-foot animator for Button 2 trick").Value; IdleOverrides["skateboardAirTrick2cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Skateboard Air Tricks", "Skateboard Trick 2 Override Anim", false, "Set to on-foot animator for Button 3 trick").Value; IdleOverrides["skateboardAirBoostTrick0cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Skateboard Air Tricks", "Skateboard Boost Trick 0 Override Anim", false, "Set to on-foot animator for Button 1 boost trick").Value; IdleOverrides["skateboardAirBoostTrick1cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Skateboard Air Tricks", "Skateboard Boost Trick 1 Override Anim", false, "Set to on-foot animator for Button 2 boost trick").Value; IdleOverrides["skateboardAirBoostTrick2cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Skateboard Air Tricks", "Skateboard Boost Trick 2 Override Anim", false, "Set to on-foot animator for Button 3 boost trick").Value; IdleOverrides["inlineAirTrick0cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Inline Air Tricks", "Inline Trick 0 Override Anim", false, "Set to on-foot animator for Button 1 trick").Value; IdleOverrides["inlineAirTrick1cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Inline Air Tricks", "Inline Trick 1 Override Anim", false, "Set to on-foot animator for Button 2 trick").Value; IdleOverrides["inlineAirTrick2cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Inline Air Tricks", "Inline Trick 2 Override Anim", false, "Set to on-foot animator for Button 3 trick").Value; IdleOverrides["inlineAirBoostTrick0cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Inline Air Tricks", "Inline Boost Trick 0 Override Anim", false, "Set to on-foot animator for Button 1 boost trick").Value; IdleOverrides["inlineAirBoostTrick1cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Inline Air Tricks", "Inline Boost Trick 1 Override Anim", false, "Set to on-foot animator for Button 2 boost trick").Value; IdleOverrides["inlineAirBoostTrick2cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("Inline Air Tricks", "Inline Boost Trick 2 Override Anim", false, "Set to on-foot animator for Button 3 boost trick").Value; IdleOverrides["bmxAirTrick0cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("BMX Air Tricks", "Bmx Trick 0 Override Anim", false, "Set to on-foot animator for Button 1 trick").Value; IdleOverrides["bmxAirTrick1cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("BMX Air Tricks", "Bmx Trick 1 Override Anim", false, "Set to on-foot animator for Button 2 trick").Value; IdleOverrides["bmxAirTrick2cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("BMX Air Tricks", "Bmx Trick 2 Override Anim", false, "Set to on-foot animator for Button 3 trick").Value; IdleOverrides["bmxAirBoostTrick0cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("BMX Air Tricks", "Bmx Boost Trick 0 Override Anim", false, "Set to on-foot animator for Button 1 boost trick").Value; IdleOverrides["bmxAirBoostTrick1cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("BMX Air Tricks", "Bmx Boost Trick 1 Override Anim", false, "Set to on-foot animator for Button 2 boost trick").Value; IdleOverrides["bmxAirBoostTrick2cfgAnim"] = ((BaseUnityPlugin)this).Config.Bind<bool>("BMX Air Tricks", "Bmx Boost Trick 2 Override Anim", false, "Set to on-foot animator for Button 3 boost trick").Value; enableTonyCfg = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "enableTonyCfg", false, "Enable Beta Skateboard Directional Tricks"); Instance = this; configEntriesAir = new Dictionary<string, ConfigEntry<string>> { { "skateboardAirTrick0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("Skateboard Air Tricks", "Skateboard Trick 0", "airTrick0", "Button 1 trick") }, { "skateboardAirTrick0Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("Skateboard Air Tricks", "Skateboard Trick 0 Name", "Backside 360 Varial", "Button 1 trick name") }, { "skateboardAirTrick1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("Skateboard Air Tricks", "Skateboard Trick 1", "airTrick1", "Button 2 trick") }, { "skateboardAirTrick1Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("Skateboard Air Tricks", "Skateboard Trick 1 Name", "Backflip Indy", "Button 2 trick name") }, { "skateboardAirTrick2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("Skateboard Air Tricks", "Skateboard Trick 2", "jumpTrick1", "Button 3 trick (vanilla is \"airTrick2\")") }, { "skateboardAirTrick2Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("Skateboard Air Tricks", "Skateboard Trick 2 Name", "McTwist", "Button 3 trick name (vanilla is \"Method Grab\")") }, { "skateboardAirBoostTrick0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("Skateboard Air Tricks", "Skateboard Boost Trick 0", "airBoostTrick0", "Button 1 boost trick") }, { "skateboardAirBoostTrick0Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("Skateboard Air Tricks", "Skateboard Boost Trick 0 Name", "1080", "Button 1 boost trick name") }, { "skateboardAirBoostTrick1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("Skateboard Air Tricks", "Skateboard Boost Trick 1", "airBoostTrick1", "Button 2 boost trick") }, { "skateboardAirBoostTrick1Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("Skateboard Air Tricks", "Skateboard Boost Trick 1 Name", "1080", "Button 2 boost trick name") }, { "skateboardAirBoostTrick2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("Skateboard Air Tricks", "Skateboard Boost Trick 2", "airBoostTrick2", "Button 3 boost trick") }, { "skateboardAirBoostTrick2Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("Skateboard Air Tricks", "Skateboard Boost Trick 2 Name", "1080", "Button 3 boost trick name") }, { "inlineAirTrick0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("Inline Air Tricks", "Inline Trick 0", "airTrick0", "Button 1 trick") }, { "inlineAirTrick0Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("Inline Air Tricks", "Inline Trick 0 Name", "Cork 720", "Button 1 trick name") }, { "inlineAirTrick1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("Inline Air Tricks", "Inline Trick 1", "airTrick1", "Button 2 trick") }, { "inlineAirTrick1Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("Inline Air Tricks", "Inline Trick 1 Name", "Method Grab", "Button 2 trick name") }, { "inlineAirTrick2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("Inline Air Tricks", "Inline Trick 2", "airTrick2", "Button 3 trick") }, { "inlineAirTrick2Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("Inline Air Tricks", "Inline Trick 2 Name", "Abstract 360", "Button 3 trick name") }, { "inlineAirBoostTrick0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("Inline Air Tricks", "Inline Boost Trick 0", "airBoostTrick0", "Button 1 boost trick") }, { "inlineAirBoostTrick0Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("Inline Air Tricks", "Inline Boost Trick 0 Name", "1080 California Roll", "Button 1 boost trick name") }, { "inlineAirBoostTrick1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("Inline Air Tricks", "Inline Boost Trick 1", "airBoostTrick1", "Button 2 boost trick") }, { "inlineAirBoostTrick1Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("Inline Air Tricks", "Inline Boost Trick 1 Name", "1080 California Roll", "Button 2 boost trick name") }, { "inlineAirBoostTrick2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("Inline Air Tricks", "Inline Boost Trick 2", "airBoostTrick2", "Button 3 boost trick") }, { "inlineAirBoostTrick2Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("Inline Air Tricks", "Inline Boost Trick 2 Name", "1080 California Roll", "Button 3 boost trick name") }, { "bmxAirTrick0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("BMX Air Tricks", "Bmx Trick 0", "airTrick0", "Button 1 trick") }, { "bmxAirTrick0Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("BMX Air Tricks", "Bmx Trick 0 Name", "Tailwhip 360", "Button 1 trick name") }, { "bmxAirTrick1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("BMX Air Tricks", "Bmx Trick 1", "airTrick1", "Button 2 trick") }, { "bmxAirTrick1Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("BMX Air Tricks", "Bmx Trick 1 Name", "No Hand Backflip", "Button 2 trick name") }, { "bmxAirTrick2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("BMX Air Tricks", "Bmx Trick 2", "airTrick2", "Button 3 trick") }, { "bmxAirTrick2Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("BMX Air Tricks", "Bmx Trick 2 Name", "Superman Seat Grab Indian", "Button 3 trick name") }, { "bmxAirBoostTrick0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("BMX Air Tricks", "Bmx Boost Trick 0", "airBoostTrick0", "Button 1 boost trick") }, { "bmxAirBoostTrick0Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("BMX Air Tricks", "Bmx Boost Trick 0 Name", "720 Double Backflip", "Button 1 boost trick name") }, { "bmxAirBoostTrick1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("BMX Air Tricks", "Bmx Boost Trick 1", "airBoostTrick1", "Button 2 boost trick") }, { "bmxAirBoostTrick1Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("BMX Air Tricks", "Bmx Boost Trick 1 Name", "720 Double Backflip", "Button 2 boost trick name") }, { "bmxAirBoostTrick2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("BMX Air Tricks", "Bmx Boost Trick 2", "airBoostTrick2", "Button 3 boost trick") }, { "bmxAirBoostTrick2Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("BMX Air Tricks", "Bmx Boost Trick 2 Name", "720 Double Backflip", "Button 3 boost trick name") }, { "footAirTrick0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Air Tricks", "Foot Trick 0", "airTrick0", "Button 1 trick") }, { "footAirTrick0Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Air Tricks", "Foot Trick 0 Name", "Bullet Spin", "Button 1 trick name") }, { "footAirTrick1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Air Tricks", "Foot Trick 1", "airTrick1", "Button 2 trick") }, { "footAirTrick1Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Air Tricks", "Foot Trick 1 Name", "Backflip Grab", "Button 2 trick name") }, { "footAirTrick2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Air Tricks", "Foot Trick 2", "airTrick2", "Button 3 trick") }, { "footAirTrick2Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Air Tricks", "Foot Trick 2 Name", "Cheat 720", "Button 3 trick name") }, { "footAirBoostTrick0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Air Tricks", "Foot Boost Trick 0", "airBoostTrick0", "Button 1 boost trick") }, { "footAirBoostTrick0Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Air Tricks", "Foot Boost Trick 0 Name", "Shuriken", "Button 1 boost trick name") }, { "footAirBoostTrick1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Air Tricks", "Foot Boost Trick 1", "airBoostTrick1", "Button 2 boost trick") }, { "footAirBoostTrick1Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Air Tricks", "Foot Boost Trick 1 Name", "Shuriken", "Button 2 boost trick name") }, { "footAirBoostTrick2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Air Tricks", "Foot Boost Trick 2", "airBoostTrick2", "Button 3 boost trick") }, { "footAirBoostTrick2Namecfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Air Tricks", "Foot Boost Trick 2 Name", "Shuriken", "Button 3 boost trick name") }, { "footAirTrickLeft0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Left Air Tricks", "Foot TrickLeft 0", "", "Button 1 TrickLeft") }, { "footAirTrickLeft1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Left Air Tricks", "Foot TrickLeft 1", "", "Button 2 TrickLeft") }, { "footAirTrickLeft2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Left Air Tricks", "Foot TrickLeft 2", "", "Button 3 TrickLeft") }, { "footAirBoostTrickLeft0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Left Air Tricks", "Foot Boost TrickLeft 0", "", "Button 1 boost TrickLeft") }, { "footAirBoostTrickLeft1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Left Air Tricks", "Foot Boost TrickLeft 1", "", "Button 2 boost TrickLeft") }, { "footAirBoostTrickLeft2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Left Air Tricks", "Foot Boost TrickLeft 2", "", "Button 3 boost TrickLeft") }, { "footAirTrickRight0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Right Air Tricks", "Foot TrickRight 0", "", "Button 1 TrickRight") }, { "footAirTrickRight1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Right Air Tricks", "Foot TrickRight 1", "", "Button 2 TrickRight") }, { "footAirTrickRight2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Right Air Tricks", "Foot TrickRight 2", "", "Button 3 TrickRight") }, { "footAirBoostTrickRight0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Right Air Tricks", "Foot Boost TrickRight 0", "", "Button 1 boost TrickRight") }, { "footAirBoostTrickRight1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Right Air Tricks", "Foot Boost TrickRight 1", "", "Button 2 boost TrickRight") }, { "footAirBoostTrickRight2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Right Air Tricks", "Foot Boost TrickRight 2", "", "Button 3 boost TrickRight") }, { "footAirTrickUp0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Up Air Tricks", "Foot TrickUp 0", "", "Button 1 TrickUp") }, { "footAirTrickUp1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Up Air Tricks", "Foot TrickUp 1", "", "Button 2 TrickUp") }, { "footAirTrickUp2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Up Air Tricks", "Foot TrickUp 2", "", "Button 3 TrickUp") }, { "footAirBoostTrickUp0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Up Air Tricks", "Foot Boost TrickUp 0", "", "Button 1 boost TrickUp") }, { "footAirBoostTrickUp1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Up Air Tricks", "Foot Boost TrickUp 1", "", "Button 2 boost TrickUp") }, { "footAirBoostTrickUp2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Up Air Tricks", "Foot Boost TrickUp 2", "", "Button 3 boost TrickUp") }, { "footAirTrickDown0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Down Air Tricks", "Foot TrickDown 0", "", "Button 1 TrickDown") }, { "footAirTrickDown1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Down Air Tricks", "Foot TrickDown 1", "", "Button 2 TrickDown") }, { "footAirTrickDown2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Down Air Tricks", "Foot TrickDown 2", "", "Button 3 TrickDown") }, { "footAirBoostTrickDown0cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Down Air Tricks", "Foot Boost TrickDown 0", "", "Button 1 boost TrickDown") }, { "footAirBoostTrickDown1cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Down Air Tricks", "Foot Boost TrickDown 1", "", "Button 2 boost TrickDown") }, { "footAirBoostTrickDown2cfg", ((BaseUnityPlugin)this).Config.Bind<string>("On-foot Down Air Tricks", "Foot Boost TrickDown 2", "", "Button 3 boost TrickDown") } }; } public string GetConfigValueAir(string key) { if (configEntriesAir.TryGetValue(key, out var value)) { return value.Value; } ((BaseUnityPlugin)this).Logger.LogWarning((object)("Configuration key '" + key + "' not found.")); return null; } public static bool GetTonyCfg() { return enableTonyCfg.Value; } [HarmonyPatch(typeof(AirTrickAbility), "Init")] [HarmonyPrefix] private static bool Init_Prefix(AirTrickAbility __instance) { if ((Object)(object)Instance == (Object)null) { return true; } string configValueAir = Instance.GetConfigValueAir("skateboardAirTrick0Namecfg"); string configValueAir2 = Instance.GetConfigValueAir("skateboardAirTrick1Namecfg"); string configValueAir3 = Instance.GetConfigValueAir("skateboardAirTrick2Namecfg"); string configValueAir4 = Instance.GetConfigValueAir("skateboardAirBoostTrick0Namecfg"); string configValueAir5 = Instance.GetConfigValueAir("skateboardAirBoostTrick1Namecfg"); string configValueAir6 = Instance.GetConfigValueAir("skateboardAirBoostTrick2Namecfg"); string configValueAir7 = Instance.GetConfigValueAir("inlineAirTrick0Namecfg"); string configValueAir8 = Instance.GetConfigValueAir("inlineAirTrick1Namecfg"); string configValueAir9 = Instance.GetConfigValueAir("inlineAirTrick2Namecfg"); string configValueAir10 = Instance.GetConfigValueAir("inlineAirBoostTrick0Namecfg"); string configValueAir11 = Instance.GetConfigValueAir("inlineAirBoostTrick1Namecfg"); string configValueAir12 = Instance.GetConfigValueAir("inlineAirBoostTrick2Namecfg"); string configValueAir13 = Instance.GetConfigValueAir("bmxAirTrick0Namecfg"); string configValueAir14 = Instance.GetConfigValueAir("bmxAirTrick1Namecfg"); string configValueAir15 = Instance.GetConfigValueAir("bmxAirTrick2Namecfg"); string configValueAir16 = Instance.GetConfigValueAir("bmxAirBoostTrick0Namecfg"); string configValueAir17 = Instance.GetConfigValueAir("bmxAirBoostTrick1Namecfg"); string configValueAir18 = Instance.GetConfigValueAir("bmxAirBoostTrick2Namecfg"); string configValueAir19 = Instance.GetConfigValueAir("footAirTrick0Namecfg"); string configValueAir20 = Instance.GetConfigValueAir("footAirTrick1Namecfg"); string configValueAir21 = Instance.GetConfigValueAir("footAirTrick2Namecfg"); string configValueAir22 = Instance.GetConfigValueAir("footAirBoostTrick0Namecfg"); string configValueAir23 = Instance.GetConfigValueAir("footAirBoostTrick1Namecfg"); string configValueAir24 = Instance.GetConfigValueAir("footAirBoostTrick2Namecfg"); __instance.skateboardTrickNames = new string[6] { configValueAir, configValueAir2, configValueAir3, configValueAir4, configValueAir5, configValueAir6 }; __instance.inlineTrickNames = new string[6] { configValueAir7, configValueAir8, configValueAir9, configValueAir10, configValueAir11, configValueAir12 }; __instance.bmxTrickNames = new string[6] { configValueAir13, configValueAir14, configValueAir15, configValueAir16, configValueAir17, configValueAir18 }; __instance.trickingTrickNames = new string[6] { configValueAir19, configValueAir20, configValueAir21, configValueAir22, configValueAir23, configValueAir24 }; return true; } [HarmonyPatch(typeof(AirTrickAbility), "OnStartAbility")] [HarmonyPrefix] private static bool OnStartAbilityPrefix(AirTrickAbility __instance) { //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Invalid comparison between Unknown and I4 //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_0229: Invalid comparison between Unknown and I4 //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Invalid comparison between Unknown and I4 //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Invalid comparison between Unknown and I4 //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: Invalid comparison between Unknown and I4 //IL_091e: Unknown result type (might be due to invalid IL or missing references) //IL_0924: Invalid comparison between Unknown and I4 //IL_0a78: Unknown result type (might be due to invalid IL or missing references) //IL_0a7e: Invalid comparison between Unknown and I4 //IL_0bd1: Unknown result type (might be due to invalid IL or missing references) //IL_0bd7: Invalid comparison between Unknown and I4 if ((Object)(object)Instance == (Object)null) { return true; } string configValueAir = Instance.GetConfigValueAir("skateboardAirTrick0cfg"); string configValueAir2 = Instance.GetConfigValueAir("skateboardAirTrick1cfg"); string configValueAir3 = Instance.GetConfigValueAir("skateboardAirTrick2cfg"); string configValueAir4 = Instance.GetConfigValueAir("inlineAirTrick0cfg"); string configValueAir5 = Instance.GetConfigValueAir("inlineAirTrick1cfg"); string configValueAir6 = Instance.GetConfigValueAir("inlineAirTrick2cfg"); string configValueAir7 = Instance.GetConfigValueAir("bmxAirTrick0cfg"); string configValueAir8 = Instance.GetConfigValueAir("bmxAirTrick1cfg"); string configValueAir9 = Instance.GetConfigValueAir("bmxAirTrick2cfg"); string configValueAir10 = Instance.GetConfigValueAir("footAirTrick0cfg"); string configValueAir11 = Instance.GetConfigValueAir("footAirTrick1cfg"); string configValueAir12 = Instance.GetConfigValueAir("footAirTrick2cfg"); string configValueAir13 = Instance.GetConfigValueAir("footAirTrickLeft0cfg"); string configValueAir14 = Instance.GetConfigValueAir("footAirTrickLeft1cfg"); string configValueAir15 = Instance.GetConfigValueAir("footAirTrickLeft2cfg"); string configValueAir16 = Instance.GetConfigValueAir("footAirTrickRight0cfg"); string configValueAir17 = Instance.GetConfigValueAir("footAirTrickRight1cfg"); string configValueAir18 = Instance.GetConfigValueAir("footAirTrickRight2cfg"); string configValueAir19 = Instance.GetConfigValueAir("footAirTrickUp0cfg"); string configValueAir20 = Instance.GetConfigValueAir("footAirTrickUp1cfg"); string configValueAir21 = Instance.GetConfigValueAir("footAirTrickUp2cfg"); string configValueAir22 = Instance.GetConfigValueAir("footAirTrickDown0cfg"); string configValueAir23 = Instance.GetConfigValueAir("footAirTrickDown1cfg"); string configValueAir24 = Instance.GetConfigValueAir("footAirTrickDown2cfg"); __instance.hitEnemy = false; ((Ability)__instance).p.SetDustEmission(0); __instance.curTrick = ((Ability)__instance).p.InputToTrickNumber(); __instance.bufferSwitchStyle = false; ((Ability)__instance).targetSpeed = -1f; ((Ability)__instance).rotateSpeed = -1f; ((Ability)__instance).decc = -1f; __instance.trickType = (TrickType)0; __instance.duration = __instance.trickingTrickDuration; if ((int)((Ability)__instance).p.moveStyle == 2 || (int)((Ability)__instance).p.moveStyle == 4) { __instance.duration = __instance.skateboardTrickDuration; } else if ((int)((Ability)__instance).p.moveStyle == 1) { __instance.duration = __instance.bmxTrickDuration; } else if ((int)((Ability)__instance).p.moveStyle == 3) { __instance.duration = __instance.inlineTrickDuration; } if (((Ability)__instance).p.CheckBoostTrick()) { __instance.SetupBoostTrick(); } else { ((Ability)__instance).p.PlayAnim(__instance.airTrickHashes[__instance.curTrick], true, false, 0f); if ((int)((Ability)__instance).p.moveStyle == 0) { if (__instance.curTrick == 0) { if (((Ability)__instance).p.moveAxisX <= -0.75f && configValueAir13 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir13), true, false, 0f); if (IdleOverrides["footAirTrickLeft0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisX >= 0.75f && configValueAir16 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir16), true, false, 0f); if (IdleOverrides["footAirTrickRight0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisY >= 0.75f && configValueAir19 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir19), true, false, 0f); if (IdleOverrides["footAirTrickUp0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisY <= -0.75f && configValueAir22 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir22), true, false, 0f); if (IdleOverrides["footAirTrickDown0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir10), true, false, 0f); if (IdleOverrides["footAirTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } if (__instance.curTrick == 1) { if (((Ability)__instance).p.moveAxisX <= -0.75f && configValueAir14 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir14), true, false, 0f); if (IdleOverrides["footAirTrickLeft1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisX >= 0.75f && configValueAir17 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir17), true, false, 0f); if (IdleOverrides["footAirTrickRight1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisY >= 0.75f && configValueAir20 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir20), true, false, 0f); if (IdleOverrides["footAirTrickUp1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisY <= -0.75f && configValueAir23 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir23), true, false, 0f); if (IdleOverrides["footAirTrickDown1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir11), true, false, 0f); if (IdleOverrides["footAirTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } if (__instance.curTrick == 2) { if (((Ability)__instance).p.moveAxisX <= -0.75f && configValueAir15 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir15), true, false, 0f); if (IdleOverrides["footAirTrickLeft2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisX >= 0.75f && configValueAir18 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir18), true, false, 0f); if (IdleOverrides["footAirTrickRight2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisY >= 0.75f && configValueAir21 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir21), true, false, 0f); if (IdleOverrides["footAirTrickUp2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisY <= -0.75f && configValueAir24 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir24), true, false, 0f); if (IdleOverrides["footAirTrickDown2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir12), true, false, 0f); if (IdleOverrides["footAirTrick2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } } else if ((int)((Ability)__instance).p.moveStyle == 1) { if (__instance.curTrick == 0) { CheckAnimOverride(IdleOverrides["bmxAirTrick0cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir7), true, false, 0f); if (IdleOverrides["bmxAirTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (__instance.curTrick == 1) { CheckAnimOverride(IdleOverrides["bmxAirTrick1cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir8), true, false, 0f); if (IdleOverrides["bmxAirTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (__instance.curTrick == 2) { CheckAnimOverride(IdleOverrides["bmxAirTrick2cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir9), true, false, 0f); if (IdleOverrides["bmxAirTrick2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else if ((int)((Ability)__instance).p.moveStyle == 3) { if (__instance.curTrick == 0) { CheckAnimOverride(IdleOverrides["inlineAirTrick0cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir4), true, false, -1f); if (IdleOverrides["inlineAirTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (__instance.curTrick == 1) { CheckAnimOverride(IdleOverrides["inlineAirTrick1cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir5), true, false, -1f); if (IdleOverrides["inlineAirTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (__instance.curTrick == 2) { CheckAnimOverride(IdleOverrides["inlineAirTrick2cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir6), true, false, -1f); if (IdleOverrides["inlineAirTrick2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else if ((int)((Ability)__instance).p.moveStyle == 2) { bool value = enableTonyCfg.Value; if (__instance.curTrick == 0) { float moveAxisX = ((Ability)__instance).p.moveAxisX; float moveAxisY = ((Ability)__instance).p.moveAxisY; if (value) { if (moveAxisX <= -0.25f) { if (moveAxisY <= -0.25f || moveAxisY >= 0.25f) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir), true, false, -1f); if (IdleOverrides["skateboardAirTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName("groundTrick0"), true, false, -1f); } VertAbilityPatches.overridingIdle = false; } else if (moveAxisX >= 0.25f) { if (moveAxisY <= -0.25f || moveAxisY >= 0.25f) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir), true, false, -1f); if (IdleOverrides["skateboardAirTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName("groundTrick2"), true, false, -1f); } VertAbilityPatches.overridingIdle = false; } else if (moveAxisY <= -0.25f) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName("grindTrick0"), true, false, -1f); VertAbilityPatches.overridingIdle = false; } else if (moveAxisY >= 0.25f) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName("groundTrick3"), true, false, -1f); VertAbilityPatches.overridingIdle = false; } else { CheckAnimOverride(IdleOverrides["skateboardAirTrick0cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir), true, false, -1f); if (IdleOverrides["skateboardAirTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else { CheckAnimOverride(IdleOverrides["skateboardAirTrick0cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir), true, false, -1f); if (IdleOverrides["skateboardAirTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else if (__instance.curTrick == 1) { if (value && ((Ability)__instance).p.slideButtonHeld) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName("groundBoostTrick0"), false, false, -1f); VertAbilityPatches.overridingIdle = false; } else { CheckAnimOverride(IdleOverrides["skateboardAirTrick1cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir2), false, false, -1f); if (IdleOverrides["skateboardAirTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else if (__instance.curTrick == 2) { if (value) { if (((Ability)__instance).p.moveAxisX >= 0.25f) { if (((Ability)__instance).p.moveAxisY <= -0.25f && BunchOfEmotesSupport.Installed) { CheckAnimOverride(overrideAnim: true); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName("christ air"), false, false, -1f); VertAbilityPatches.overridingIdle = false; } else if (((Ability)__instance).p.moveAxisY >= 0.25f) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir3), false, false, -1f); if (IdleOverrides["skateboardAirTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName("airTrick1"), false, false, -1f); VertAbilityPatches.overridingIdle = false; } } else { CheckAnimOverride(IdleOverrides["skateboardAirTrick2cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir3), false, false, -1f); if (IdleOverrides["skateboardAirTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else { CheckAnimOverride(IdleOverrides["skateboardAirTrick2cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir3), false, false, -1f); if (IdleOverrides["skateboardAirTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } } else if (VertAbilityPatches.nonVanillaMovestyle) { ((Ability)__instance).p.PlayAnim(__instance.airTrickHashes[__instance.curTrick], true, false, 0f); } ((Ability)__instance).p.hitboxLeftLeg.SetActive(false); ((Ability)__instance).p.hitboxRightLeg.SetActive(false); ((Ability)__instance).p.hitboxUpperBody.SetActive(false); } return false; } [HarmonyPatch(typeof(AirTrickAbility), "SetupBoostTrick")] [HarmonyPrefix] private static bool SetupBoostTrick_Prefix(AirTrickAbility __instance) { //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Invalid comparison between Unknown and I4 //IL_02f2: Unknown result type (might be due to invalid IL or missing references) //IL_02f8: Invalid comparison between Unknown and I4 //IL_044b: Unknown result type (might be due to invalid IL or missing references) //IL_0451: Invalid comparison between Unknown and I4 //IL_05a5: Unknown result type (might be due to invalid IL or missing references) //IL_05ab: Invalid comparison between Unknown and I4 //IL_0c3e: Unknown result type (might be due to invalid IL or missing references) string configValueAir = Instance.GetConfigValueAir("skateboardAirBoostTrick0cfg"); string configValueAir2 = Instance.GetConfigValueAir("skateboardAirBoostTrick1cfg"); string configValueAir3 = Instance.GetConfigValueAir("skateboardAirBoostTrick2cfg"); string configValueAir4 = Instance.GetConfigValueAir("inlineAirBoostTrick0cfg"); string configValueAir5 = Instance.GetConfigValueAir("inlineAirBoostTrick1cfg"); string configValueAir6 = Instance.GetConfigValueAir("inlineAirBoostTrick2cfg"); string configValueAir7 = Instance.GetConfigValueAir("bmxAirBoostTrick0cfg"); string configValueAir8 = Instance.GetConfigValueAir("bmxAirBoostTrick1cfg"); string configValueAir9 = Instance.GetConfigValueAir("bmxAirBoostTrick2cfg"); string configValueAir10 = Instance.GetConfigValueAir("footAirBoostTrick0cfg"); string configValueAir11 = Instance.GetConfigValueAir("footAirBoostTrick1cfg"); string configValueAir12 = Instance.GetConfigValueAir("footAirBoostTrick2cfg"); string configValueAir13 = Instance.GetConfigValueAir("footAirBoostTrickLeft0cfg"); string configValueAir14 = Instance.GetConfigValueAir("footAirBoostTrickLeft1cfg"); string configValueAir15 = Instance.GetConfigValueAir("footAirBoostTrickLeft2cfg"); string configValueAir16 = Instance.GetConfigValueAir("footAirBoostTrickRight0cfg"); string configValueAir17 = Instance.GetConfigValueAir("footAirBoostTrickRight1cfg"); string configValueAir18 = Instance.GetConfigValueAir("footAirBoostTrickRight2cfg"); string configValueAir19 = Instance.GetConfigValueAir("footAirBoostTrickUp0cfg"); string configValueAir20 = Instance.GetConfigValueAir("footAirBoostTrickUp1cfg"); string configValueAir21 = Instance.GetConfigValueAir("footAirBoostTrickUp2cfg"); string configValueAir22 = Instance.GetConfigValueAir("footAirBoostTrickDown0cfg"); string configValueAir23 = Instance.GetConfigValueAir("footAirBoostTrickDown1cfg"); string configValueAir24 = Instance.GetConfigValueAir("footAirBoostTrickDown2cfg"); if ((int)((Ability)__instance).p.moveStyle == 2) { if (__instance.curTrick == 0) { CheckAnimOverride(IdleOverrides["skateboardAirBoostTrick0cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir), true, false, 0f); if (IdleOverrides["skateboardAirBoostTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (__instance.curTrick == 1) { CheckAnimOverride(IdleOverrides["skateboardAirBoostTrick1cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir2), true, false, 0f); if (IdleOverrides["skateboardAirBoostTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (__instance.curTrick == 2) { CheckAnimOverride(IdleOverrides["skateboardAirBoostTrick2cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir3), true, false, 0f); if (IdleOverrides["skateboardAirBoostTrick2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else if ((int)((Ability)__instance).p.moveStyle == 3) { if (__instance.curTrick == 0) { CheckAnimOverride(IdleOverrides["inlineAirBoostTrick0cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir4), true, false, 0f); if (IdleOverrides["inlineAirBoostTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (__instance.curTrick == 1) { CheckAnimOverride(IdleOverrides["inlineAirBoostTrick1cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir5), true, false, 0f); if (IdleOverrides["inlineAirBoostTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (__instance.curTrick == 2) { CheckAnimOverride(IdleOverrides["inlineAirBoostTrick2cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir6), true, false, 0f); if (IdleOverrides["inlineAirBoostTrick2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else if ((int)((Ability)__instance).p.moveStyle == 1) { if (__instance.curTrick == 0) { CheckAnimOverride(IdleOverrides["bmxAirBoostTrick0cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir7), true, false, 0f); if (IdleOverrides["bmxAirBoostTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (__instance.curTrick == 1) { CheckAnimOverride(IdleOverrides["bmxAirBoostTrick1cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir8), true, false, 0f); if (IdleOverrides["bmxAirBoostTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (__instance.curTrick == 2) { CheckAnimOverride(IdleOverrides["bmxAirBoostTrick2cfgAnim"]); ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir9), true, false, 0f); if (IdleOverrides["bmxAirBoostTrick2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } else if ((int)((Ability)__instance).p.moveStyle == 0) { if (__instance.curTrick == 0) { if (((Ability)__instance).p.moveAxisX <= -0.75f && configValueAir13 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir13), true, false, 0f); if (IdleOverrides["footAirBoostTrickLeft0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisX >= 0.75f && configValueAir16 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir16), true, false, 0f); if (IdleOverrides["footAirBoostTrickRight0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisY >= 0.75f && configValueAir19 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir19), true, false, 0f); if (IdleOverrides["footAirBoostTrickUp0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisY <= -0.75f && configValueAir22 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir22), true, false, 0f); if (IdleOverrides["footAirBoostTrickDown0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir10), true, false, 0f); if (IdleOverrides["footAirBoostTrick0cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } if (__instance.curTrick == 1) { if (((Ability)__instance).p.moveAxisX <= -0.75f && configValueAir14 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir14), true, false, 0f); if (IdleOverrides["footAirBoostTrickLeft1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisX >= 0.75f && configValueAir17 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir17), true, false, 0f); if (IdleOverrides["footAirBoostTrickRight1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisY >= 0.75f && configValueAir20 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir20), true, false, 0f); if (IdleOverrides["footAirBoostTrickUp1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisY <= -0.75f && configValueAir23 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir23), true, false, 0f); if (IdleOverrides["footAirBoostTrickDown1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir11), true, false, 0f); if (IdleOverrides["footAirBoostTrick1cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } if (__instance.curTrick == 2) { if (((Ability)__instance).p.moveAxisX <= -0.75f && configValueAir15 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir15), true, false, 0f); if (IdleOverrides["footAirBoostTrickLeft2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisX >= 0.75f && configValueAir18 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir18), true, false, 0f); if (IdleOverrides["footAirBoostTrickRight2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisY >= 0.75f && configValueAir21 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir21), true, false, 0f); if (IdleOverrides["footAirBoostTrickUp2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else if (((Ability)__instance).p.moveAxisY <= -0.75f && configValueAir24 != "") { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir24), true, false, 0f); if (IdleOverrides["footAirBoostTrickDown2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } else { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(configValueAir12), true, false, 0f); if (IdleOverrides["footAirBoostTrick2cfg"]) { VertAbilityPatches.overridingIdle = true; } else { VertAbilityPatches.overridingIdle = false; } } } } else if (VertAbilityPatches.nonVanillaMovestyle) { ((Ability)__instance).p.PlayAnim(__instance.airBoostTrickHashes[__instance.curTrick], true, false, 0f); } ((Ability)__instance).p.PlayVoice((AudioClipID)498, (VoicePriority)2, true); ((Ability)__instance).p.ringParticles.Emit(1); __instance.trickType = (TrickType)2; __instance.duration *= 1.5f; if (!((Ability)__instance).p.isAI) { ((Ability)__instance).p.SetForwardSpeed(((Ability)__instance).p.boostSpeed); } ((Ability)__instance).p.AddBoostCharge(0f - ((Ability)__instance).p.boostTrickCost); return false; } } public static class AnimationUtility { public static int GetAnimationByName(string name) { if (BunchOfEmotesSupport.Installed && BunchOfEmotesSupport.TryGetGameAnimationForCustomAnimation(name, out var gameAnim)) { return gameAnim; } return Animator.StringToHash(name); } } [HarmonyPatch(typeof(AirTrickAbility))] [HarmonyPatch("OnStopAbility")] public class ATAonStopAbilityPatch { public static void Postfix() { if (VertAbilityPatches.forcingFootController) { VertAbilityPatches.forcingFootController = false; VertAbilityPatches.RestoreAnimController(); } } } [HarmonyPatch(typeof(SlideAbility))] [HarmonyPatch("OnStopAbility")] public class SAonStopAbilityPatch { public static void Postfix() { if (VertAbilityPatches.forcingFootController) { VertAbilityPatches.forcingFootController = false; VertAbilityPatches.RestoreAnimController(); } } } [HarmonyPatch(typeof(GrindAbility))] [HarmonyPatch("OnStopAbility")] public class GRIonStopAbilityPatch { public static void Postfix() { if (VertAbilityPatches.forcingFootController) { VertAbilityPatches.forcingFootController = false; VertAbilityPatches.RestoreAnimController(); } } } [HarmonyPatch(typeof(GroundTrickAbility))] [HarmonyPatch("OnStopAbility")] public class GROonStopAbilityPatch { public static void Postfix() { if (VertAbilityPatches.forcingFootController) { VertAbilityPatches.forcingFootController = false; VertAbilityPatches.RestoreAnimController(); } } } [HarmonyPatch(typeof(WallrunLineAbility))] public static class WallrunLineAbilityPatches { public static float wallrunDuration; public static float postWallrunTimer; private const float wallrunThreshold = 0.1f; public static bool hasWallRan; [HarmonyPatch("OnStartAbility")] [HarmonyPostfix] public static void Postfix_OnStartAbility(WallrunLineAbility __instance) { if (__instance != null) { wallrunDuration = 0f; VertAbilityPatches.overridingIdle = false; } } [HarmonyPatch("FixedUpdateAbility")] [HarmonyPostfix] public static void Postfix_FixedUpdateAbility(WallrunLineAbility __instance) { //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Invalid comparison between Unknown and I4 //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Invalid comparison between Unknown and I4 //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_02bc: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Invalid comparison between Unknown and I4 //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_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Invalid comparison between Unknown and I4 //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Invalid comparison between Unknown and I4 //IL_03e7: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Invalid comparison between Unknown and I4 //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Invalid comparison between Unknown and I4 //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Invalid comparison between Unknown and I4 //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Invalid comparison between Unknown and I4 //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Invalid comparison between Unknown and I4 //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0404: Unknown result type (might be due to invalid IL or missing references) //IL_036e: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Invalid comparison between Unknown and I4 //IL_02f8: Unknown result type (might be due to invalid IL or missing references) //IL_02fe: Invalid comparison between Unknown and I4 //IL_027d: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Invalid comparison between Unknown and I4 //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Invalid comparison between Unknown and I4 //IL_0499: Unknown result type (might be due to invalid IL or missing references) //IL_049f: Invalid comparison between Unknown and I4 //IL_0423: Unknown result type (might be due to invalid IL or missing references) //IL_0429: Invalid comparison between Unknown and I4 //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: Invalid comparison between Unknown and I4 //IL_0332: Unknown result type (might be due to invalid IL or missing references) //IL_0338: Invalid comparison between Unknown and I4 //IL_04d3: Unknown result type (might be due to invalid IL or missing references) //IL_04d9: Invalid comparison between Unknown and I4 //IL_045d: Unknown result type (might be due to invalid IL or missing references) //IL_0463: Invalid comparison between Unknown and I4 if (((Ability)__instance).p.ability == ((Ability)__instance).p.wallrunAbility) { wallrunDuration += Time.deltaTime; postWallrunTimer = 0f; hasWallRan = false; } Vector3 velocity; if ((int)((Ability)__instance).p.moveStyle == 0) { velocity = ((Ability)__instance).p.GetVelocity(); if (((Vector3)(ref velocity)).magnitude >= BPatchTC.wallslideSpeed.Value) { string configValueMisc = BPatchTC.Instance.GetConfigValueMisc("highSpeedWallrideRightCfg"); string configValueMisc2 = BPatchTC.Instance.GetConfigValueMisc("highSpeedWallrideLeftCfg"); if ((int)__instance.animSide == 2) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("highSpeedWallrideRightCfg")), false, false, -1f); } else if ((int)__instance.animSide == 6) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("highSpeedWallrideLeftCfg")), false, false, -1f); } } else if ((int)__instance.animSide == 2) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("wallrideRightCfg")), false, false, -1f); } else if ((int)__instance.animSide == 6) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("wallrideLeftCfg")), false, false, -1f); } } if ((int)((Ability)__instance).p.moveStyle == 3) { velocity = ((Ability)__instance).p.GetVelocity(); if (((Vector3)(ref velocity)).magnitude >= BPatchTC.wallslideSpeed.Value) { if ((int)__instance.animSide == 2) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("highSpeedWallrideRightInlineCfg")), false, false, -1f); } else if ((int)__instance.animSide == 6) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("highSpeedWallrideLeftInlineCfg")), false, false, -1f); } } else if ((int)__instance.animSide == 2) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("wallrideRightInlineCfg")), false, false, -1f); } else if ((int)__instance.animSide == 6) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("wallrideLeftInlineCfg")), false, false, -1f); } } if ((int)((Ability)__instance).p.moveStyle == 1) { velocity = ((Ability)__instance).p.GetVelocity(); if (((Vector3)(ref velocity)).magnitude >= BPatchTC.wallslideSpeed.Value) { if ((int)__instance.animSide == 2) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("highSpeedWallrideRightBMXCfg")), false, false, -1f); } else if ((int)__instance.animSide == 6) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("highSpeedWallrideLeftBMXCfg")), false, false, -1f); } } else if ((int)__instance.animSide == 2) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("wallrideRightBMXCfg")), false, false, -1f); } else if ((int)__instance.animSide == 6) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("wallrideLeftBMXCfg")), false, false, -1f); } } if ((int)((Ability)__instance).p.moveStyle != 2) { return; } velocity = ((Ability)__instance).p.GetVelocity(); if (((Vector3)(ref velocity)).magnitude >= BPatchTC.wallslideSpeed.Value) { if ((int)__instance.animSide == 2) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("highSpeedWallrideRightSkateboardCfg")), false, false, -1f); } else if ((int)__instance.animSide == 6) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("highSpeedWallrideLeftSkateboardCfg")), false, false, -1f); } } else if ((int)__instance.animSide == 2) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("wallrideRightSkateboardCfg")), false, false, -1f); } else if ((int)__instance.animSide == 6) { ((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(BPatchTC.Instance.GetConfigValueMisc("wallrideLeftSkateboardCfg")), false, false, -1f); } } [HarmonyPatch("OnStopAbility")] [HarmonyPostfix] public static void Postfix_OnStopAbility(WallrunLineAbility __instance) { if (__instance != null && wallrunDuration <= Time.deltaTime) { StartPostWallrunTimer(); hasWallRan = true; } } public static void StartPostWallrunTimer() { postWallrunTimer = 0f; } } [BepInPlugin("ConfigTrixMisc", "New Trix Misc", "1.2.0")] [BepInProcess("Bomb Rush Cyberfunk.exe")] public class BPatchTC : BaseUnityPlugin { public static bool forcingFootController; public static ConfigEntry<bool> enableSwitchCfg; public static ConfigEntry<bool> enableFramerideCfg; public static ConfigEntry<bool> enableFramerideSoundCfg; private Dictionary<string, ConfigEntry<string>> configEntries; public static ConfigEntry<float> wallslideSpeed; public static BPatchTC Instance { get; private set; } private void Awake() { enableSwitchCfg = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "enableSwitchCfg", false, "Disable Boost Switching to On-foot (Leave this false if you're doing vanilla score attack or your run will be considered invalid.)"); enableFramerideCfg = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "enableFramerideCfg", false, "Enables frameride trick name/score (Leave this false if you're doing vanilla score attack or your run will be considered invalid.)"); enableFramerideSoundCfg = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "enableFramerideSoundCfg", false, "Enables frameride sound."); Instance = this; wallslideSpeed = ((BaseUnityPlugin)this).Config.Bind<float>("Misc", "Wallride (High-Speed) Min Speed", 60f, "High-speed wallride speed. This is in meters per second, so take the number from the dragsun speedometer and move the decimal over by one