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 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.6", FrameworkDisplayName = "")]
[assembly: AssemblyCompany("WoodzGravity")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyDescription("Movement tweaks for Bomb Rush Cyberfunk")]
[assembly: AssemblyFileVersion("1.2.2.0")]
[assembly: AssemblyInformationalVersion("1.2.2")]
[assembly: AssemblyProduct("WoodzGravity")]
[assembly: AssemblyTitle("WoodzGravity")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.2.2.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 woodzgravity
{
public class PatchAirdash
{
[HarmonyPatch(typeof(AirDashAbility), "OnStopAbility")]
[HarmonyPostfix]
private static void OnStopAbilityPostfix(AirDashAbility __instance)
{
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_0032: Unknown result type (might be due to invalid IL or missing references)
if (ToggleGravityPlugin.enableAirtuckCfg.Value)
{
float height = 1.75f;
float num = 0.875f;
((Ability)__instance).p.motor.GetCapsule().center = Vector3.up * num;
if (!((Ability)__instance).p.isAI)
{
((Ability)__instance).p.cam.postureOffsetTarget = 0f;
}
((Ability)__instance).p.motor.GetCapsule().height = height;
}
}
[HarmonyPatch(typeof(AirDashAbility), "OnStartAbility")]
[HarmonyPostfix]
private static void OnStartAbilityPostfix(AirDashAbility __instance)
{
//IL_0014: Unknown result type (might be due to invalid IL or missing references)
//IL_0062: Unknown result type (might be due to invalid IL or missing references)
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
if (((Ability)__instance).p.trick1ButtonHeld && (int)((Ability)__instance).p.moveStyle == 0 && ToggleGravityPlugin.enableAirtuckCfg.Value)
{
float num = 1.75f;
float num2 = 0.875f;
float radius = ((Ability)__instance).p.motor.GetCapsule().radius;
((Ability)__instance).p.motor.GetCapsule().center = Vector3.up * radius;
((Ability)__instance).p.motor.GetCapsule().height = radius * 2f;
if (!((Ability)__instance).p.isAI)
{
((Ability)__instance).p.cam.postureOffsetTarget = ((Ability)__instance).p.motor.GetCapsule().height - num + 0.2f;
}
((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(ToggleGravityPlugin.airtuckAnim.Value), false, false, -1f);
}
}
[HarmonyPatch(typeof(AirDashAbility), "OnStartAbility")]
[HarmonyPrefix]
private static bool OnStartAbilityPrefix(AirDashAbility __instance)
{
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
//IL_0041: Expected O, but got Unknown
//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
//IL_0101: Unknown result type (might be due to invalid IL or missing references)
//IL_0116: Unknown result type (might be due to invalid IL or missing references)
//IL_0261: Unknown result type (might be due to invalid IL or missing references)
//IL_0267: Invalid comparison between Unknown and I4
//IL_029e: Unknown result type (might be due to invalid IL or missing references)
//IL_02a4: Invalid comparison between Unknown and I4
//IL_02db: Unknown result type (might be due to invalid IL or missing references)
//IL_02e1: Invalid comparison between Unknown and I4
//IL_019f: Unknown result type (might be due to invalid IL or missing references)
//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
//IL_01c3: Unknown result type (might be due to invalid IL or missing references)
//IL_01ca: Unknown result type (might be due to invalid IL or missing references)
//IL_01cf: Unknown result type (might be due to invalid IL or missing references)
//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
//IL_0230: Unknown result type (might be due to invalid IL or missing references)
//IL_023a: Unknown result type (might be due to invalid IL or missing references)
//IL_0315: Unknown result type (might be due to invalid IL or missing references)
//IL_031b: Invalid comparison between Unknown and I4
if (((Ability)__instance).p.boostButtonHeld && ((Ability)((Ability)__instance).p.boostAbility).allowNormalJump && ToggleGravityPlugin.enableMidairtrickjumpCfg.Value)
{
SpecialAirAbility val = new SpecialAirAbility(((Ability)__instance).p);
if (ToggleGravityPlugin.newMtj.Value)
{
float value = ToggleGravityPlugin.horizontalToVerticalPercent.Value;
float value2 = ToggleGravityPlugin.horizontalToVerticalMax.Value;
float value3 = ToggleGravityPlugin.horizontalLossPercent.Value;
float value4 = ToggleGravityPlugin.minReferenceSpeed.Value;
bool value5 = ToggleGravityPlugin.scaleBySpeed.Value;
((Ability)__instance).p.jumpedThisFrame = true;
((Ability)__instance).p.isJumping = true;
((Ability)__instance).p.maintainSpeedJump = false;
((Ability)__instance).p.jumpConsumed = true;
((Ability)__instance).p.jumpRequested = false;
((Ability)__instance).p.jumpedThisFrame = true;
((Ability)__instance).p.timeSinceLastJump = 0f;
Vector3 velocity = ((Ability)__instance).p.GetVelocity();
Vector3 val2 = default(Vector3);
((Vector3)(ref val2))..ctor(velocity.x, 0f, velocity.z);
float num = ((Vector3)(ref val2)).magnitude;
float num2 = velocity.y;
if (num < 20f)
{
num = 20f;
}
if (num2 < val.jumpSpeed)
{
num2 = val.jumpSpeed;
}
float num3 = value;
if (value5)
{
float num4 = value2;
float num5 = Mathf.InverseLerp(value4, num4, num);
num5 = Mathf.Clamp01(num5);
num3 *= num5;
}
float num6 = num * num3;
num6 = Mathf.Min(num6, value2);
float num7 = num6 * Mathf.Clamp01(value3);
Vector3 val3 = ((Vector3)(ref val2)).normalized * Mathf.Max(0f, num - num7);
num2 += num6;
Vector3 velocity2 = val3 + Vector3.up * num2;
((Ability)__instance).p.SetVelocity(velocity2);
((Ability)__instance).p.AudioManager.PlaySfxGameplay((SfxCollectionID)20, (AudioClipID)130, ((Ability)__instance).p.playerOneShotAudioSource, 0f);
((Ability)__instance).p.PlayVoice((AudioClipID)489, (VoicePriority)0, true);
((Ability)__instance).p.DoHighJumpEffects(((Ability)__instance).p.motor.groundNormalVisual * -1f);
}
else
{
((Ability)((Ability)__instance).p.specialAirAbility).OnStartAbility();
}
if ((int)((Ability)__instance).p.moveStyle == 0)
{
((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(ToggleGravityPlugin.mtjAnim.Value), false, false, -1f);
}
else if ((int)((Ability)__instance).p.moveStyle == 3)
{
((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(ToggleGravityPlugin.mtjAnimInline.Value), false, false, -1f);
}
else if ((int)((Ability)__instance).p.moveStyle == 2)
{
((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(ToggleGravityPlugin.mtjAnimSkateboard.Value), false, false, -1f);
}
else if ((int)((Ability)__instance).p.moveStyle == 1)
{
((Ability)__instance).p.PlayAnim(AnimationUtility.GetAnimationByName(ToggleGravityPlugin.mtjAnimBMX.Value), false, false, -1f);
}
else
{
((Ability)__instance).p.PlayAnim(Animator.StringToHash("jumpTrick1"), false, false, -1f);
}
__instance.haveAirDash = false;
return false;
}
return true;
}
[HarmonyPatch(typeof(HandplantAbility), "FixedUpdateAbility")]
[HarmonyPrefix]
private static bool FixedUpdateAbilityPostfix(HandplantAbility __instance)
{
ToggleGravityPlugin.inhandplant = true;
return true;
}
[HarmonyPatch(typeof(HandplantAbility), "OnStopAbility")]
[HarmonyPrefix]
private static bool OnStopAbilityPostfix(HandplantAbility __instance)
{
ToggleGravityPlugin.inhandplant = false;
return true;
}
}
[BepInPlugin("WoodzMovementTweaks", "Woodz Movement Tweaks", "1.0.0")]
[BepInProcess("Bomb Rush Cyberfunk.exe")]
public class ToggleGravityPlugin : BaseUnityPlugin
{
public static ConfigEntry<float> horizontalToVerticalPercent;
public static ConfigEntry<float> horizontalToVerticalMax;
public static ConfigEntry<float> minReferenceSpeed;
public static ConfigEntry<float> horizontalLossPercent;
public static ConfigEntry<bool> scaleBySpeed;
public static ConfigEntry<bool> enableAirtuckCfg;
public static ConfigEntry<string> airtuckAnim;
public static ConfigEntry<string> mtjAnim;
public static ConfigEntry<string> mtjAnimInline;
public static ConfigEntry<string> mtjAnimSkateboard;
public static ConfigEntry<string> mtjAnimBMX;
public static ConfigEntry<bool> newMtj;
private bool sprintToggled = false;
public float G;
public float G2;
public float S;
public bool runSpeed;
public bool grav;
private bool sceneLoaded = false;
public static ConfigEntry<bool> enableMidairtrickjumpCfg;
public ConfigEntry<bool> enableRunCfg;
public ConfigEntry<bool> enableJumpCfg;
public ConfigEntry<float> runSpeedCfg;
public ConfigEntry<float> runSpeedCfgInline;
public ConfigEntry<float> runSpeedCfgSkateboard;
public ConfigEntry<float> runSpeedCfgBMX;
public ConfigEntry<bool> enableGravCfg;
public ConfigEntry<bool> enableMovestyleDifferences;
public ConfigEntry<float> gravityUpCfg;
public ConfigEntry<float> gravityDownCfg;
public ConfigEntry<bool> enableGravCfgInline;
public ConfigEntry<float> gravityUpCfgInline;
public ConfigEntry<float> gravityDownCfgInline;
public ConfigEntry<bool> enableGravCfgSkateboard;
public ConfigEntry<float> gravityUpCfgSkateboard;
public ConfigEntry<float> gravityDownCfgSkateboard;
public ConfigEntry<bool> enableGravCfgBMX;
public ConfigEntry<float> gravityUpCfgBMX;
public ConfigEntry<float> gravityDownCfgBMX;
public ConfigEntry<float> jumpHeight;
public ConfigEntry<float> jumpHeightInline;
public ConfigEntry<float> jumpHeightSkateboard;
public ConfigEntry<float> jumpHeightBMX;
public static bool inhandplant;
private void Awake()
{
SceneManager.sceneLoaded += OnSceneLoaded;
}
private void ApplyRunSpeedCfg(float speed)
{
S = speed;
}
private void ApplyEnableGravCfg(float grav)
{
G = grav;
}
private void ApplyEnableGrav2Cfg(float grav2)
{
G2 = grav2;
}
private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
{
sceneLoaded = true;
}
private void Update()
{
//IL_047a: Unknown result type (might be due to invalid IL or missing references)
//IL_0484: Expected O, but got Unknown
//IL_04db: Unknown result type (might be due to invalid IL or missing references)
//IL_04e5: Expected O, but got Unknown
//IL_0518: Unknown result type (might be due to invalid IL or missing references)
//IL_0522: Expected O, but got Unknown
//IL_05e4: Unknown result type (might be due to invalid IL or missing references)
//IL_05ea: Invalid comparison between Unknown and I4
//IL_0650: Unknown result type (might be due to invalid IL or missing references)
//IL_0656: Invalid comparison between Unknown and I4
//IL_06bc: Unknown result type (might be due to invalid IL or missing references)
//IL_06c2: Invalid comparison between Unknown and I4
//IL_081b: Unknown result type (might be due to invalid IL or missing references)
//IL_0821: Invalid comparison between Unknown and I4
//IL_0725: Unknown result type (might be due to invalid IL or missing references)
//IL_072b: Invalid comparison between Unknown and I4
//IL_0858: Unknown result type (might be due to invalid IL or missing references)
//IL_085e: Invalid comparison between Unknown and I4
//IL_095d: Unknown result type (might be due to invalid IL or missing references)
//IL_0963: Invalid comparison between Unknown and I4
//IL_0892: Unknown result type (might be due to invalid IL or missing references)
//IL_0898: Invalid comparison between Unknown and I4
//IL_0981: Unknown result type (might be due to invalid IL or missing references)
//IL_0987: Invalid comparison between Unknown and I4
//IL_08cc: Unknown result type (might be due to invalid IL or missing references)
//IL_08d2: Invalid comparison between Unknown and I4
//IL_0a37: Unknown result type (might be due to invalid IL or missing references)
//IL_0a3d: Invalid comparison between Unknown and I4
//IL_09a5: Unknown result type (might be due to invalid IL or missing references)
//IL_09ab: 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_09cb: Unknown result type (might be due to invalid IL or missing references)
//IL_09d1: Invalid comparison between Unknown and I4
//IL_0ab6: Unknown result type (might be due to invalid IL or missing references)
//IL_0abc: Invalid comparison between Unknown and I4
//IL_0af4: Unknown result type (might be due to invalid IL or missing references)
//IL_0afa: Invalid comparison between Unknown and I4
enableMidairtrickjumpCfg = ((BaseUnityPlugin)this).Config.Bind<bool>("MTJ", "EnableMidairtrickjump", true, "Enable midair trick jump (cancel a boost with an airdash to activate)");
enableRunCfg = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "EnableRun", true, "Enable run speed tweak");
enableJumpCfg = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "EnableJump", true, "Enable jump height tweak");
runSpeedCfg = ((BaseUnityPlugin)this).Config.Bind<float>("General", "RunSpeed", 4f, "Run speed modifier (0 is vanilla)");
runSpeedCfgInline = ((BaseUnityPlugin)this).Config.Bind<float>("General", "RunSpeedInline", 7f, "Inline Run speed modifier (0 is vanilla)");
runSpeedCfgSkateboard = ((BaseUnityPlugin)this).Config.Bind<float>("General", "RunSpeedSkateboard", 10f, "Skateboard Run speed modifier (0 is vanilla)");
runSpeedCfgBMX = ((BaseUnityPlugin)this).Config.Bind<float>("General", "RunSpeedBMX", 13f, "BMX Run speed modifier (0 is vanilla)");
enableGravCfg = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "EnableGravity", false, "Enable rigidbody gravity. I also recommend setting your MovementPlus Max Fall Speed (not fastfall speed, the one in misc settings) to 66.667");
enableMovestyleDifferences = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "EnableMovestyles", true, "Enable using the movestyle config values for each movestyle.");
gravityUpCfg = ((BaseUnityPlugin)this).Config.Bind<float>("General", "UpGravity", 14.5f, "Rigidbody up gravity (14.5 is vanilla)");
gravityDownCfg = ((BaseUnityPlugin)this).Config.Bind<float>("General", "DownGravity", 14.5f, "Rigidbody down (falling) gravity (14.5 is vanilla)");
enableGravCfgInline = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "EnableGravityInline", false, "Inline Enable rigidbody gravity. I also recommend setting your MovementPlus Max Fall Speed (not fastfall speed, the one in misc settings) to 66.667");
gravityUpCfgInline = ((BaseUnityPlugin)this).Config.Bind<float>("General", "UpGravityInline", 16.85f, "Inline Rigidbody up gravity (14.5 is vanilla)");
gravityDownCfgInline = ((BaseUnityPlugin)this).Config.Bind<float>("General", "DownGravityInline", 16.85f, "Inline Rigidbody down (falling) gravity (14.5 is vanilla)");
enableGravCfgSkateboard = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "EnableGravitySkateboard", true, "Skateboard Enable rigidbody gravity. I also recommend setting your MovementPlus Max Fall Speed (not fastfall speed, the one in misc settings) to 66.667");
gravityUpCfgSkateboard = ((BaseUnityPlugin)this).Config.Bind<float>("General", "UpGravitySkateboard", 9.8f, "Skateboard Rigidbody up gravity (14.5 is vanilla)");
gravityDownCfgSkateboard = ((BaseUnityPlugin)this).Config.Bind<float>("General", "DownGravitySkateboard", 9.8f, "Skateboard Rigidbody down (falling) gravity (14.5 is vanilla)");
enableGravCfgBMX = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "EnableGravityBMX", true, "BMX Enable rigidbody gravity. I also recommend setting your MovementPlus Max Fall Speed (not fastfall speed, the one in misc settings) to 66.667");
gravityUpCfgBMX = ((BaseUnityPlugin)this).Config.Bind<float>("General", "UpGravityBMX", 9.8f, "BMX Rigidbody up gravity (14.5 is vanilla)");
gravityDownCfgBMX = ((BaseUnityPlugin)this).Config.Bind<float>("General", "DownGravityBMX", 14.5f, "BMX Rigidbody down (falling) gravity (14.5 is vanilla)");
jumpHeight = ((BaseUnityPlugin)this).Config.Bind<float>("General", "JumpHeight", 8f, "Jump height. Also affects launchers. (8 is vanilla)");
jumpHeightInline = ((BaseUnityPlugin)this).Config.Bind<float>("General", "JumpHeightInline", 9f, "Inline Jump height. Also affects launchers. (8 is vanilla)");
jumpHeightSkateboard = ((BaseUnityPlugin)this).Config.Bind<float>("General", "JumpHeightSkateboard", 11f, "Skateboard Jump height. Also affects launchers. (8 is vanilla)");
jumpHeightBMX = ((BaseUnityPlugin)this).Config.Bind<float>("General", "JumpHeightBMX", 11f, "BMX Jump height. Also affects launchers. (8 is vanilla)");
newMtj = ((BaseUnityPlugin)this).Config.Bind<bool>("MTJ", "NewMidairTrickJump", true, "Use new midair trick jump. No jump storage, forward speed has a capped and optionally scaled percentage taken from and added to vertical speed.");
mtjAnim = ((BaseUnityPlugin)this).Config.Bind<string>("MTJ", "MidairTrickJumpAnim", "jumpTrick1", "Midair trick jump animation.");
mtjAnimInline = ((BaseUnityPlugin)this).Config.Bind<string>("MTJ", "MidairTrickJumpAnimInline", "jumpTrick1", "Midair trick jump animation. (Inline)");
mtjAnimSkateboard = ((BaseUnityPlugin)this).Config.Bind<string>("MTJ", "MidairTrickJumpAnimSkateboard", "jumpTrick1", "Midair trick jump animation. (Skateboard)");
mtjAnimBMX = ((BaseUnityPlugin)this).Config.Bind<string>("MTJ", "MidairTrickJumpAnimBMX", "jumpTrick1", "Midair trick jump animation. (BMX)");
airtuckAnim = ((BaseUnityPlugin)this).Config.Bind<string>("Airtuck", "AirtuckAnim", "roll", "Airtuck animation.");
enableAirtuckCfg = ((BaseUnityPlugin)this).Config.Bind<bool>("Airtuck", "EnableAirtuck", true, "Enable airtuck (hold trick 1 and airdash to activate)");
horizontalToVerticalMax = ((BaseUnityPlugin)this).Config.Bind<float>("MTJ", "horizontalToVerticalMax", 50f, new ConfigDescription("Max speed taken from horizontal and given to vertical. 10 is equivalent to 100 on Dragsun's speedometer, just move the decimal one over to the left.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(1f, float.MaxValue), Array.Empty<object>()));
minReferenceSpeed = ((BaseUnityPlugin)this).Config.Bind<float>("MTJ", "minReferenceSpeed", 33.3f, "Speed at which to begin converting horizontal to vertical.");
horizontalToVerticalPercent = ((BaseUnityPlugin)this).Config.Bind<float>("MTJ", "Horizontal To Vertical Percent", 0.14f, new ConfigDescription("What percentage of horizontal speed to convert to vertical (in new MTJ)", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>()));
horizontalLossPercent = ((BaseUnityPlugin)this).Config.Bind<float>("MTJ", "horizontalLossPercent", 0.5f, new ConfigDescription("What percentage of horizontal speed is actually lost when transfering to vertical.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 1f), Array.Empty<object>()));
scaleBySpeed = ((BaseUnityPlugin)this).Config.Bind<bool>("MTJ", "scaleBySpeed", true, "Whether or not it will take less then your set percentage the slower you're going. Uses max speed in its calculation.");
ApplyRunSpeedCfg(runSpeedCfg.Value);
ApplyEnableGravCfg(gravityUpCfg.Value);
ApplyEnableGrav2Cfg(gravityDownCfg.Value);
if (!sceneLoaded)
{
return;
}
GameObject val = GameObject.Find("Player_HUMAN0");
if (!((Object)(object)val != (Object)null))
{
return;
}
Rigidbody component = val.GetComponent<Rigidbody>();
MovementMotor component2 = val.GetComponent<MovementMotor>();
Player component3 = val.GetComponent<Player>();
if ((Object)(object)component != (Object)null)
{
if (enableMovestyleDifferences.Value)
{
if ((int)component3.moveStyle == 3)
{
if (enableGravCfgInline.Value)
{
if (component3.IsGrounded() || component3.IsGrinding() || inhandplant)
{
component.useGravity = false;
}
else
{
component.useGravity = true;
}
}
else
{
component.useGravity = false;
}
}
else if ((int)component3.moveStyle == 2)
{
if (enableGravCfgSkateboard.Value)
{
if (component3.IsGrounded() || component3.IsGrinding() || inhandplant)
{
component.useGravity = false;
}
else
{
component.useGravity = true;
}
}
else
{
component.useGravity = false;
}
}
else if ((int)component3.moveStyle == 1)
{
if (enableGravCfgBMX.Value)
{
if (component3.IsGrounded() || component3.IsGrinding() || inhandplant)
{
component.useGravity = false;
}
else
{
component.useGravity = true;
}
}
else
{
component.useGravity = false;
}
}
else if ((int)component3.moveStyle == 0)
{
if (enableGravCfg.Value)
{
if (component3.IsGrounded() || component3.IsGrinding() || inhandplant)
{
component.useGravity = false;
}
else
{
component.useGravity = true;
}
}
else
{
component.useGravity = false;
}
}
}
else if (enableGravCfg.Value)
{
if (component3.IsGrounded() || component3.IsGrinding() || inhandplant)
{
component.useGravity = false;
}
else
{
component.useGravity = true;
}
}
}
if ((Object)(object)component2 != (Object)null && enableGravCfg.Value)
{
if (enableMovestyleDifferences.Value)
{
if ((int)component3.moveStyle == 3)
{
component2.gravity = gravityDownCfgInline.Value;
component2.gravityUp = gravityUpCfgInline.Value;
}
else if ((int)component3.moveStyle == 2)
{
component2.gravity = gravityDownCfgSkateboard.Value;
component2.gravityUp = gravityUpCfgSkateboard.Value;
}
else if ((int)component3.moveStyle == 1)
{
component2.gravity = gravityDownCfgBMX.Value;
component2.gravityUp = gravityUpCfgBMX.Value;
}
else if ((int)component3.moveStyle == 0)
{
component2.gravity = G2;
component2.gravityUp = G;
}
}
else
{
component2.gravity = G2;
component2.gravityUp = G;
}
}
if (!((Object)(object)component3 != (Object)null))
{
return;
}
if (enableRunCfg.Value)
{
if (enableMovestyleDifferences.Value)
{
if ((int)component3.moveStyle == 3)
{
component3.runSpeedModifier = runSpeedCfgInline.Value;
}
if ((int)component3.moveStyle == 2)
{
component3.runSpeedModifier = runSpeedCfgSkateboard.Value;
}
if ((int)component3.moveStyle == 1)
{
component3.runSpeedModifier = runSpeedCfgBMX.Value;
}
else if ((int)component3.moveStyle == 0)
{
component3.runSpeedModifier = S;
}
}
else
{
component3.runSpeedModifier = S;
}
}
else
{
component3.runSpeedModifier = 0f;
}
if (enableJumpCfg.Value)
{
if (enableMovestyleDifferences.Value)
{
if ((int)component3.moveStyle == 3)
{
component3.jumpSpeed = jumpHeightInline.Value;
component3.jumpSpeedLauncher = jumpHeightInline.Value * 2f;
}
else if ((int)component3.moveStyle == 2)
{
component3.jumpSpeed = jumpHeightSkateboard.Value;
component3.jumpSpeedLauncher = jumpHeightSkateboard.Value * 2f;
}
else if ((int)component3.moveStyle == 1)
{
component3.jumpSpeed = jumpHeightBMX.Value;
component3.jumpSpeedLauncher = jumpHeightBMX.Value * 2f;
}
else if ((int)component3.moveStyle == 0)
{
component3.jumpSpeed = jumpHeight.Value;
component3.jumpSpeedLauncher = jumpHeight.Value * 2f;
}
}
else
{
component3.jumpSpeed = jumpHeight.Value;
component3.jumpSpeedLauncher = jumpHeight.Value * 2f;
}
}
else
{
component3.jumpSpeed = 8f;
component3.jumpSpeedLauncher = 16f;
}
}
}
[BepInPlugin("info.mariobluegloves.woodzgravity", "Gravity Mod", "1.0.0")]
[BepInProcess("Bomb Rush Cyberfunk.exe")]
public class WoodzMovement : BaseUnityPlugin
{
private void Awake()
{
//IL_0017: Unknown result type (might be due to invalid IL or missing references)
//IL_001d: Expected O, but got Unknown
((BaseUnityPlugin)this).Logger.LogInfo((object)"Move Faster, Pokey!");
Harmony val = new Harmony("info.mariobluegloves.woodzgravityp");
val.PatchAll(typeof(PatchAirdash));
if (Chainloader.PluginInfos.ContainsKey("com.Dragsun.BunchOfEmotes"))
{
BunchOfEmotesSupport.Initialize();
}
}
}
}
namespace trickyclown
{
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);
}
}
public static class BunchOfEmotesSupport
{
private static object BoEPluginInstance = null;
private static Type BoEPluginType = null;
private static FieldInfo CustomAnimsField = null;
private static bool Cached = false;
private static Dictionary<string, int> GameAnimationByCustomAnimation = new Dictionary<string, int>();
public static bool Installed { get; private set; } = false;
public static void Initialize()
{
Installed = true;
BoEPluginInstance = Chainloader.PluginInfos["com.Dragsun.BunchOfEmotes"].Instance;
BoEPluginType = ReflectionUtility.GetTypeByName("BunchOfEmotes.BunchOfEmotesPlugin");
CustomAnimsField = BoEPluginType.GetField("myCustomAnims2");
}
public static void CacheAnimationsIfNecessary()
{
if (Cached || !(CustomAnimsField.GetValue(BoEPluginInstance) is Dictionary<int, string> dictionary) || dictionary.Count <= 0)
{
return;
}
Cached = true;
foreach (KeyValuePair<int, string> item in dictionary)
{
int key = item.Key;
GameAnimationByCustomAnimation[item.Value] = key;
}
}
public static bool TryGetGameAnimationForCustomAnimation(string customAnim, out int gameAnim)
{
if (!Installed)
{
gameAnim = 0;
return false;
}
CacheAnimationsIfNecessary();
if (GameAnimationByCustomAnimation.TryGetValue(customAnim, out gameAnim))
{
return true;
}
return false;
}
}
public static class ReflectionUtility
{
public static Type GetTypeByName(string name)
{
foreach (Assembly item in AppDomain.CurrentDomain.GetAssemblies().Reverse())
{
Type type = item.GetType(name);
if (type != null)
{
return type;
}
}
return null;
}
}
}