private static bool GetStaminaUsage_Prefix(Attack __instance, Humanoid ___m_character, float ___m_attackStamina, ItemDrop.ItemData ___m_weapon, ref float __result) { if (Player.m_localPlayer == null || (UnityEngine.Object)Player.m_localPlayer != (UnityEngine.Object)___m_character) { // Do default logic for non-local players return(true); } if ((double)___m_attackStamina <= 0.0) { __result = 0.0f; return(false); } double attackStamina = (double)___m_attackStamina; EasingFunctions.Function easeFunc = EasingFunctions.GetEasingFunction(EasingFunctions.Ease.EaseOutSine); float interpFactor = easeFunc(1f, BetterStaminaPlugin.weaponMaxSkillAttackStaminaCost.Value, ___m_character.GetSkillFactor(___m_weapon.m_shared.m_skillType)); __result = (float)(attackStamina * interpFactor); if (BetterStaminaPlugin.enableSkillStaminaLogging != null && BetterStaminaPlugin.enableSkillStaminaLogging.Value) { string callingMethodName = new StackFrame(2).GetMethod().Name; if (callingMethodName.Contains("Update")) { float originalStaminaReduction = (float)(attackStamina * (1f - BetterStaminaPlugin.weaponMaxSkillAttackStaminaCost.Value /*0.330000013113022 */) * (double)___m_character.GetSkillFactor(___m_weapon.m_shared.m_skillType)); float originalCalculation = (float)(attackStamina - originalStaminaReduction); BetterStaminaPlugin.DebugLog($"Attack.GetStaminaUsage(): Cost - {__result}; Original: {originalCalculation}; Custom: {__result}; skill: {___m_character.GetSkillFactor(___m_weapon.m_shared.m_skillType)}({___m_weapon.m_shared.m_skillType});"); } } // Skip original function return(false); }
private static bool HammerStamina_Prefix(Player __instance, ref float v) { if (__instance.GetRightItem() != null) { string name = __instance.GetRightItem().m_shared.m_name; string callingMethodName = new StackFrame(2).GetMethod().Name; if (callingMethodName.Contains("Repair") || callingMethodName.Contains("UpdatePlacement")) { if (name == "$item_hammer" && BetterStaminaPlugin.removeHammerStaminaCost.Value || name == "$item_hoe" && BetterStaminaPlugin.removeHoeStaminaCost.Value || name == "$item_cultivator" && BetterStaminaPlugin.removeCultivatorStaminaCost.Value) { v = 0.0f; } } } return(true); }