using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using HarmonyLib;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
namespace BalrondMountJumping;
[BepInPlugin("balrond.astafaraios.BalrondMountJumping", "BalrondMountJumping", "1.0.2")]
public class Launch : BaseUnityPlugin
{
[HarmonyPatch(typeof(Sadle), "ApplyControlls")]
private static class ApplyControlls_Patch
{
private static void Prefix(ref bool run)
{
if (AutoRun)
{
run = true;
}
}
}
[HarmonyPatch(typeof(Sadle), "ResetControlls")]
private static class ResetControlls_Patch
{
private static void Postfix()
{
AutoRun = false;
}
}
[HarmonyPatch(typeof(Player), "SetControls")]
private static class SetControls_Patch
{
private static void Prefix(Player __instance, ref bool jump)
{
if (!((Character)__instance).IsRiding())
{
return;
}
if (AutoRun && Input.GetKeyDown((KeyCode)114))
{
((Character)__instance).m_run = true;
}
if (jump)
{
IDoodadController doodadController = __instance.m_doodadController;
Sadle val = (Sadle)(object)((doodadController is Sadle) ? doodadController : null);
if ((Object)(object)val != (Object)null)
{
((BaseAI)val.m_monsterAI).m_character.Jump(false);
jump = false;
}
}
else
{
jump = false;
}
}
}
private readonly Harmony harmony = new Harmony("balrond.astafaraios.BalrondMountJumping");
public const string PluginGUID = "balrond.astafaraios.BalrondMountJumping";
public const string PluginName = "BalrondMountJumping";
public const string PluginVersion = "1.0.2";
public static bool AutoRun;
private void Awake()
{
harmony.PatchAll();
}
private void OnDestroy()
{
harmony.UnpatchSelf();
}
private static bool IsEncumbered()
{
if (!((Character)Player.m_localPlayer).IsEncumbered())
{
return false;
}
((Character)Player.m_localPlayer).Message((MessageType)2, "$se_encumbered_repeat", 0, (Sprite)null);
return true;
}
private void Update()
{
Player localPlayer = Player.m_localPlayer;
if (!((Object)(object)localPlayer == (Object)null) && ((Character)localPlayer).IsRiding())
{
if (Input.GetKeyDown((KeyCode)114))
{
AutoRun = !AutoRun;
}
else if (Input.GetKeyDown((KeyCode)119) || Input.GetKeyDown((KeyCode)115))
{
AutoRun = false;
}
}
}
}