Decompiled source of GravidadePlus v1.0.0

GravidadePlus.dll

Decompiled a day ago
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;
		}
	}
}