using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using HarmonyLib;
using Reptile;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("GravidadePlus")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("GravidadePlus")]
[assembly: AssemblyCopyright("Copyright © 2026")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("d0761fa1-083c-4a06-b092-fb3ab5f5d3af")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
[BepInPlugin("com.timedevs.gravidadeplus", "GravidadePlus", "1.0.0")]
public class GravidadePlusPlugin : BaseUnityPlugin
{
public static ConfigEntry<float> ForcaGravidade;
public static ConfigEntry<bool> AtivarJumpChain;
public static ConfigEntry<float> BonusPuloAlto;
public static ConfigEntry<float> JanelaDeTempo;
public static float tempoUltimoPouso;
public static bool acabouDePousar;
private void Awake()
{
//IL_0091: Unknown result type (might be due to invalid IL or missing references)
ForcaGravidade = ((BaseUnityPlugin)this).Config.Bind<float>("Geral", "MultiplicadorGravidade", 0.7f, "Gravidade extra no ar. Menos que 1.0 é mais leve.");
AtivarJumpChain = ((BaseUnityPlugin)this).Config.Bind<bool>("Mecanicas", "HabilitarJumpChain", true, "Ativa o bônus de altura ao pular após pousar.");
BonusPuloAlto = ((BaseUnityPlugin)this).Config.Bind<float>("Mecanicas", "BonusPulo", 1.2f, "Multiplicador de altura para o Jump Chain.");
JanelaDeTempo = ((BaseUnityPlugin)this).Config.Bind<float>("Mecanicas", "TempoLimitePulo", 1.2f, "Janela de 1.2s para realizar o Jump Chain.");
new Harmony("com.timedevs.gravidadeplus").PatchAll();
((BaseUnityPlugin)this).Logger.LogInfo((object)"GravidadePlus da TimeDevs: Versão 1.0.0 carregada!");
}
}
[HarmonyPatch(typeof(Player))]
public class PlayerMechanicsPatch
{
[HarmonyPatch("FixedUpdatePlayer")]
[HarmonyPostfix]
private static void Postfix(Player __instance)
{
//IL_001b: Unknown result type (might be due to invalid IL or missing references)
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
//IL_002b: Unknown result type (might be due to invalid IL or missing references)
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
//IL_003d: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Unknown result type (might be due to invalid IL or missing references)
if (!__instance.IsGrounded() && !__instance.IsGrinding())
{
float value = GravidadePlusPlugin.ForcaGravidade.Value;
Vector3 val = Physics.gravity * value * Time.fixedDeltaTime;
MovementMotor motor = __instance.motor;
motor.velocity += val;
}
if (GravidadePlusPlugin.AtivarJumpChain.Value && __instance.IsGrounded())
{
GravidadePlusPlugin.tempoUltimoPouso = Time.time;
GravidadePlusPlugin.acabouDePousar = true;
}
}
[HarmonyPatch("Jump")]
[HarmonyPrefix]
private static void Prefix(Player __instance)
{
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_0051: Unknown result type (might be due to invalid IL or missing references)
//IL_0063: Unknown result type (might be due to invalid IL or missing references)
//IL_006d: Unknown result type (might be due to invalid IL or missing references)
if (GravidadePlusPlugin.AtivarJumpChain.Value && GravidadePlusPlugin.acabouDePousar)
{
if (Time.time - GravidadePlusPlugin.tempoUltimoPouso < GravidadePlusPlugin.JanelaDeTempo.Value)
{
float value = GravidadePlusPlugin.BonusPuloAlto.Value;
__instance.motor.velocity = new Vector3(__instance.motor.velocity.x, __instance.motor.velocity.y * value, __instance.motor.velocity.z);
}
GravidadePlusPlugin.acabouDePousar = false;
}
}
}