Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of Stamina Boost v0.0.4
StaminaMod.dll
Decompiled a week agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using HarmonyLib; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("AichoGuardian")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("AichoGuardian")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("D28110A9-E229-4700-AD4D-DCD37486A82B")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.8.1", FrameworkDisplayName = ".NET Framework 4.8.1")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace StaminaFieldsLocal; [BepInPlugin("nazhi.valheim.staminafieldslocal", "StaminaFieldsLocal", "1.1.0")] public class Plugin : BaseUnityPlugin { [HarmonyPatch(typeof(Player), "Awake")] public static class Patch_Player_Awake_Force { private static void Postfix(Player __instance) { if (ApplyOnAwake.Value) { __instance.m_staminaRegen = Mathf.Max(0f, BaseRegen.Value); __instance.m_staminaRegenTimeMultiplier = TimeMultiplier.Value; } } } [HarmonyPatch(typeof(Player), "UpdateStats", new Type[] { typeof(float) })] public static class Patch_Player_UpdateStats_dt { private static void Prefix(Player __instance) { float num = Mathf.Max(0f, BaseRegen.Value); float value = TimeMultiplier.Value; float maxStamina = ((Character)__instance).GetMaxStamina(); float stamina = __instance.m_stamina; float num2 = ((maxStamina > 0f) ? (stamina / maxStamina) : 0f); float num3 = ((num2 < 0.5f) ? Mathf.Max(0f, BelowHalfMultiplier.Value) : Mathf.Max(0f, AboveHalfMultiplier.Value)); __instance.m_staminaRegen = num * num3; __instance.m_staminaRegenTimeMultiplier = value; } } public const string ModGUID = "nazhi.valheim.staminafieldslocal"; public const string ModName = "StaminaFieldsLocal"; public const string ModVersion = "1.1.0"; private static Harmony _harmony; internal static ManualLogSource Log; public static ConfigEntry<float> BaseRegen; public static ConfigEntry<float> TimeMultiplier; public static ConfigEntry<bool> ApplyOnAwake; public static ConfigEntry<float> BelowHalfMultiplier; public static ConfigEntry<float> AboveHalfMultiplier; private void Awake() { //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Expected O, but got Unknown Log = ((BaseUnityPlugin)this).Logger; BaseRegen = ((BaseUnityPlugin)this).Config.Bind<float>("General", "BaseRegen", 8f, "Valor para Player.m_staminaRegen (vanilla ~5). Se escala además por % de stamina."); TimeMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("General", "TimeMultiplier", 1f, "Valor para Player.m_staminaRegenTimeMultiplier (vanilla ~1)."); ApplyOnAwake = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "ApplyOnAwake", true, "Si true, también aplica al hacer Awake() del Player."); BelowHalfMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Scaling", "BelowHalfMultiplier", 3f, "Multiplicador adicional cuando la stamina actual es <50% del máximo. (3.0 = 3x)"); AboveHalfMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("Scaling", "AboveHalfMultiplier", 2f, "Multiplicador adicional cuando la stamina actual es ≥50% del máximo. (2.0 = 2x)"); _harmony = new Harmony("nazhi.valheim.staminafieldslocal"); _harmony.PatchAll(typeof(Patch_Player_UpdateStats_dt)); _harmony.PatchAll(typeof(Patch_Player_Awake_Force)); Log.LogInfo((object)"✅ StaminaFieldsLocal 1.1.0 cargado."); } private void OnDestroy() { Harmony harmony = _harmony; if (harmony != null) { harmony.UnpatchSelf(); } } internal static string SafeName(Player p) { try { return ((p != null) ? p.GetPlayerName() : null) ?? "(null)"; } catch { return "(name err)"; } } }