Decompiled source of AdrenalBoost v0.1.0

AdrenalBoost.dll

Decompiled a day ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using HarmonyLib;
using Jotunn.Extensions;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("RepairKey")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("EZB")]
[assembly: AssemblyProduct("RepairKey")]
[assembly: AssemblyCopyright("Copyright ©  2026")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: AssemblyFileVersion("0.1.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.1.0.0")]
namespace AdrenalBoost;

[BepInPlugin("adrenalboost.valheim.mod", "adrenalBoost", "0.1.0")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public sealed class AdrenalBoost : BaseUnityPlugin
{
	public const string ModGuid = "adrenalboost.valheim.mod";

	public const string ModName = "adrenalBoost";

	public const string ModVersion = "0.1.0";

	internal static ConfigEntry<float> GainMultiplier;

	internal static ConfigEntry<float> DrainDelayMultiplier;

	internal static ConfigEntry<float> FullRequirementMultiplier;

	private Harmony _harmony;

	private void Awake()
	{
		//IL_00c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d3: Expected O, but got Unknown
		ConfigFile config = ((BaseUnityPlugin)this).Config;
		AcceptableValueBase val = (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.1f, 20f);
		GainMultiplier = ConfigFileExtensions.BindConfig<float>(config, "Adrenaline", "GainMultiplier", 2f, "Multiplier for positive adrenaline gains (1 = vanilla).", true, (int?)null, val, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null);
		ConfigFile config2 = ((BaseUnityPlugin)this).Config;
		val = (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.1f, 20f);
		DrainDelayMultiplier = ConfigFileExtensions.BindConfig<float>(config2, "Adrenaline", "DrainDelayMultiplier", 2f, "Multiplier for the time before adrenaline starts draining (1 = vanilla).", true, (int?)null, val, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null);
		ConfigFile config3 = ((BaseUnityPlugin)this).Config;
		val = (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.1f, 10f);
		FullRequirementMultiplier = ConfigFileExtensions.BindConfig<float>(config3, "Adrenaline", "FullRequirementMultiplier", 0.5f, "Multiplier for the adrenaline needed to activate a trinket (1 = vanilla).", true, (int?)null, val, (Action<ConfigEntryBase>)null, (ConfigurationManagerAttributes)null);
		_harmony = new Harmony("adrenalboost.valheim.mod");
		_harmony.PatchAll(typeof(AdrenalBoost).Assembly);
		((BaseUnityPlugin)this).Logger.LogInfo((object)"adrenalBoost patches installed.");
	}

	private void OnDestroy()
	{
		Harmony harmony = _harmony;
		if (harmony != null)
		{
			harmony.UnpatchSelf();
		}
	}
}
[HarmonyPatch(typeof(Player), "AddAdrenaline")]
internal static class AdrenalineGainPatch
{
	private static void Prefix(ref float v)
	{
		if (v > 0f)
		{
			v *= AdrenalBoost.GainMultiplier.Value;
		}
	}

	private static void Postfix(float v, ref float ___m_adrenalineDegenTimer)
	{
		if (v > 0f)
		{
			___m_adrenalineDegenTimer *= AdrenalBoost.DrainDelayMultiplier.Value;
		}
	}
}
[HarmonyPatch(typeof(Player), "GetMaxAdrenaline")]
internal static class AdrenalineThresholdPatch
{
	private static void Postfix(ref float __result)
	{
		if (__result > 0f)
		{
			__result *= AdrenalBoost.FullRequirementMultiplier.Value;
		}
	}
}