Decompiled source of NoSleepManaBurn v1.0.4

plugins/NoSleepManaBurn/NoSleepManaBurn.dll

Decompiled a day ago
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;

[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: AssemblyVersion("0.0.0.0")]
namespace NoSleepManaBurn;

[BepInPlugin("com.spencer4792.nosleepmanaburn", "NoSleepManaBurn", "1.0.4")]
public class NoSleepManaBurnPlugin : BaseUnityPlugin
{
	public const string GUID = "com.spencer4792.nosleepmanaburn";

	public const string NAME = "NoSleepManaBurn";

	public const string VERSION = "1.0.4";

	internal static ManualLogSource Log;

	internal static ConfigEntry<float> BurnMultiplier;

	internal void Awake()
	{
		Log = ((BaseUnityPlugin)this).Logger;
		try
		{
			Init();
		}
		catch (Exception ex)
		{
			Log.LogError((object)("Startup failed: " + ex));
		}
	}

	[MethodImpl(MethodImplOptions.NoInlining)]
	private void Init()
	{
		//IL_0029: Unknown result type (might be due to invalid IL or missing references)
		BurnMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("General", "ManaBurnMultiplier", 0f, "Scales the mana burnt by sleeping. 0 = sleeping burns no mana (default), 0.5 = half of vanilla, 1 = vanilla behavior. Applies after tents, skills and camping events have already reduced the vanilla amount. Range 0-1.");
		new Harmony("com.spencer4792.nosleepmanaburn").PatchAll(typeof(SleepManaBurnScaler));
		Log.LogMessage((object)"NoSleepManaBurn 1.0.4 ready.");
	}
}
[HarmonyPatch(typeof(CharacterResting), "GetPostRestBurntManaRatio")]
internal static class SleepManaBurnScaler
{
	[HarmonyPostfix]
	private static void Postfix(ref float __result)
	{
		try
		{
			float num = NoSleepManaBurnPlugin.BurnMultiplier.Value;
			if (num < 0f)
			{
				num = 0f;
			}
			else if (num > 1f)
			{
				num = 1f;
			}
			__result *= num;
		}
		catch (Exception ex)
		{
			NoSleepManaBurnPlugin.Log.LogError((object)("Postfix: " + ex));
		}
	}
}