Decompiled source of AdrenalineModifier v1.0.1

AdrenalineModifier.dll

Decompiled a month 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 BepInEx.Logging;
using HarmonyLib;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("AdrenalineModifier")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("AdrenalineModifier")]
[assembly: AssemblyCopyright("Copyright ©  2025")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("cd9bbe3f-1ebf-494c-bada-6d4b73adcadc")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace AdrenalineModifier;

[BepInPlugin("mightywa33ior.valheim.adrenalinemodifier", "AdrenalineModifier", "1.0.1")]
public class Main : BaseUnityPlugin
{
	[HarmonyPatch(typeof(Player), "AddAdrenaline")]
	public static class Patch_Player_AddAdrenaline
	{
		private static void Prefix(Player __instance, ref float v)
		{
			if (v > 0f)
			{
				v *= GetAdrenalineMultiplier();
			}
			else
			{
				v *= GetAdrenalineDecayMultiplier();
			}
		}

		public static void Postfix(Player __instance, ref float ___m_adrenalineDegenTimer, ref float v)
		{
			float maxAdrenaline = ((Character)__instance).GetMaxAdrenaline();
			if (v > 0f && maxAdrenaline > 0f)
			{
				___m_adrenalineDegenTimer *= GetAdrenalineDecayDelayMultiplier();
			}
		}
	}

	private const string pluginGUID = "mightywa33ior.valheim.adrenalinemodifier";

	private const string pluginName = "AdrenalineModifier";

	private const string pluginVersion = "1.0.1";

	private readonly Harmony HarmonyInstance = new Harmony("mightywa33ior.valheim.adrenalinemodifier");

	public static ManualLogSource logger = Logger.CreateLogSource("AdrenalineModifier");

	private static ConfigEntry<float> AdrenalineMultiplier = null;

	private static ConfigEntry<float> AdrenalineDecayMultiplier = null;

	private static ConfigEntry<float> AdrenalineDecayDelayMultiplier = null;

	public static float GetAdrenalineMultiplier()
	{
		return AdrenalineMultiplier.Value;
	}

	public static float GetAdrenalineDecayMultiplier()
	{
		return AdrenalineDecayMultiplier.Value;
	}

	public static float GetAdrenalineDecayDelayMultiplier()
	{
		return AdrenalineDecayDelayMultiplier.Value;
	}

	public void Awake()
	{
		((BaseUnityPlugin)this).Config.SaveOnConfigSet = false;
		AdrenalineMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("General", "AdrenalineMultiplier", 1f, "Multiplier to gained adrenaline (example: harder 0.5, standard 1.0, easier 1.5)");
		AdrenalineDecayMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("General", "AdrenalineDecayMultiplier", 1f, "Multiplier to lost adrenaline (example: harder 1.5, standard 1.0, easier 0.5)");
		AdrenalineDecayDelayMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("General", "AdrenalineDecayDelayMultiplier", 1f, "Multiplier to delay before adrenaline decay starts (example: harder 0.5, standard 1.0, easier 1.5)");
		((BaseUnityPlugin)this).Config.Save();
		((BaseUnityPlugin)this).Config.SaveOnConfigSet = true;
		Assembly executingAssembly = Assembly.GetExecutingAssembly();
		HarmonyInstance.PatchAll(executingAssembly);
	}

	private void OnDestroy()
	{
		((BaseUnityPlugin)this).Config.Save();
	}
}