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 Regeneration v0.5.0
plugins\Regeneration.dll
Decompiled 9 hours agousing System; using System.Reflection; using System.Runtime.CompilerServices; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using UnityEngine; [assembly: AssemblyFileVersion("0.5.0")] [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: AssemblyVersion("0.5.0.0")] namespace Regeneration; [BepInPlugin("cjayride.Regeneration", "Regeneration", "0.5.0")] public class BepInExPlugin : BaseUnityPlugin { [HarmonyPatch(typeof(Player), "UpdateFood")] public static class UpdateFood_Patch { public static void Prefix(float dt, bool forceUpdate, ref float ___m_foodRegenTimer) { if (modEnabled.Value && !forceUpdate) { ___m_foodRegenTimer += dt / healthRegenTimeMult.Value - dt; } } } [HarmonyPatch(typeof(Player), "UpdateStats", new Type[] { typeof(float) })] public static class UpdateStats_Patch { public static void Prefix(Player __instance, ref float __state, float ___m_stamina, ref float ___m_staminaRegenTimer, ref float ___m_eiterRegen) { if (modEnabled.Value) { ___m_eiterRegen = eitrRegenRate.Value; __instance.m_dodgeStaminaUsage = dodgeStaminaLoss.Value; ((Character)__instance).m_jumpStaminaUsage = jumpStaminaLoss.Value; ((Humanoid)__instance).m_blockStaminaDrain = blockStaminaLoss.Value; __instance.m_sneakStaminaDrain = sneakStaminaLoss.Value; __instance.m_runStaminaDrain = runStaminaLoss.Value; __instance.m_encumberedStaminaDrain = encumberedStaminaLoss.Value; __instance.m_swimStaminaDrainMaxSkill = swimStaminaLossMax.Value; __instance.m_swimStaminaDrainMinSkill = swimStaminaLossMin.Value; ___m_staminaRegenTimer *= staminaRegenCooldownMult.Value; __state = ___m_stamina; } } public static void Postfix(Player __instance, float __state, ref float ___m_stamina) { if (modEnabled.Value && __state > 0f && ___m_stamina > __state) { ___m_stamina = Mathf.Max(0f, __state + (___m_stamina - __state) * staminaRegenMult.Value); } } } [HarmonyPatch(typeof(Player), "UpdatePlacement")] public static class UpdatePlacement_Patch { public static void Prefix(Player __instance, ref float __state, float ___m_stamina) { if (modEnabled.Value) { __state = ___m_stamina; } } public static void Postfix(Player __instance, float __state, ref float ___m_stamina) { if (modEnabled.Value && __state > 0f && ___m_stamina < __state) { ___m_stamina = Mathf.Max(0f, __state - (__state - ___m_stamina) * buildStaminaLossMult.Value); } } } [HarmonyPatch(typeof(FishingFloat), "Awake")] public static class FishingFloat_Awake_Patch { public static void Postfix(ref FishingFloat __instance) { if (modEnabled.Value) { __instance.m_hookedStaminaPerSec = hookedStaminaPerSec.Value; __instance.m_hookedStaminaPerSecMaxSkill = hookedStaminaPerSec.Value; } } } [HarmonyPatch(typeof(Player), "UseStamina")] public static class UseStamina_Patch { public static void Prefix(ref float v) { if (modEnabled.Value) { v *= staminaLossMult.Value; } } } [HarmonyPatch(typeof(Character), "Heal")] public static class Heal_Patch { public static void Prefix(Character __instance, ref float hp) { if (modEnabled.Value && __instance.IsPlayer()) { hp *= healthRegenMult.Value; } } } public static ConfigEntry<float> staminaLossMult; public static ConfigEntry<float> sneakStaminaLoss; public static ConfigEntry<float> swimStaminaLossMin; public static ConfigEntry<float> swimStaminaLossMax; public static ConfigEntry<float> runStaminaLoss; public static ConfigEntry<float> dodgeStaminaLoss; public static ConfigEntry<float> jumpStaminaLoss; public static ConfigEntry<float> blockStaminaLoss; public static ConfigEntry<float> buildStaminaLossMult; public static ConfigEntry<float> hookedStaminaPerSec; public static ConfigEntry<float> encumberedStaminaLoss; public static ConfigEntry<float> staminaRegenMult; public static ConfigEntry<float> staminaRegenCooldownMult; public static ConfigEntry<float> eitrRegenRate; public static ConfigEntry<float> healthRegenMult; public static ConfigEntry<float> healthRegenTimeMult; public static ConfigEntry<bool> modEnabled; public static ConfigEntry<bool> isDebug; public static ConfigEntry<int> nexusID; public static void Dbgl(string str = "", bool pref = true) { if (isDebug.Value) { Debug.Log((object)((pref ? (typeof(BepInExPlugin).Namespace + " ") : "") + str)); } } public void Awake() { staminaLossMult = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "StaminaLossMult", 1f, "General stamina loss multiplier (affects all stamina loss)."); swimStaminaLossMin = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "SwimStaminaLossMin", 5f, "Stamina loss for swimming at minimum swim skill."); swimStaminaLossMax = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "SwimStaminaLossMax", 2f, "Stamina loss for swimming at maximum swim skill."); dodgeStaminaLoss = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "DodgeStaminaLoss", 10f, "Stamina loss for dodging."); jumpStaminaLoss = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "JumpStaminaLoss", 10f, "Stamina loss for jumping."); blockStaminaLoss = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "BlockStaminaLoss", 25f, "Stamina loss for blocking."); sneakStaminaLoss = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "SneakStaminaLoss", 5f, "Stamina loss for sneaking."); runStaminaLoss = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "RunStaminaLoss", 10f, "Stamina loss for running."); encumberedStaminaLoss = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "EncumberedStaminaLoss", 10f, "Stamina loss when encumbered."); buildStaminaLossMult = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "BuildStaminaLossMult", 1f, "Stamina loss multiplier for building."); hookedStaminaPerSec = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "HookedStaminaPerSec", 1f, "Stamina loss per second while reeling in a hooked fish."); staminaRegenMult = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "StaminaRegenMult", 1f, "Stamina gain multiplier."); staminaRegenCooldownMult = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "StaminaRegenCooldownMult", 1f, "Stamina regen cooldown time multiplier."); eitrRegenRate = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "EitrRegenRate", 5f, "Eitr Regen Rate."); healthRegenMult = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "HealthRegenMult", 1f, "Health gain multiplier."); healthRegenTimeMult = ((BaseUnityPlugin)this).Config.Bind<float>("Options", "HealthRegenTimeMult", 1f, "Health gain delay multiplier."); modEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Enabled", true, "Enable this mod"); isDebug = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "IsDebug", false, "Enable debug"); nexusID = ((BaseUnityPlugin)this).Config.Bind<int>("General", "NexusID", 25, "Nexus mod ID for updates"); if (modEnabled.Value) { Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), (string)null); } } }