private static int CalculateClimbingChance(PlayerEntity player, int basePercentSuccess) { // Fail to climb if weapon not sheathed. if (!GameManager.Instance.WeaponManager.Sheathed && GameManager.Instance.WeaponManager.ScreenWeapon.WeaponType != WeaponTypes.Melee) { DaggerfallUI.SetMidScreenText("You can't climb whilst holding your weapon.", 1f); return(0); } int climbing = player.Skills.GetLiveSkillValue(DFCareer.Skills.Climbing); int luck = player.Stats.GetLiveStatValue(DFCareer.Stats.Luck); int skill = climbing; if (player.Race == Races.Khajiit) { skill += 30; } // Climbing effect states "target can climb twice as well" - doubling effective skill after racial applied if (player.IsEnhancedClimbing) { skill *= 2; } // Clamp skill range skill = Mathf.Clamp(skill, 5, 95); float luckFactor = Mathf.Lerp(0, 10, luck * 0.01f); // Skill Check int chance = (int)(Mathf.Lerp(basePercentSuccess, 100, skill * .01f) + luckFactor); Debug.LogFormat("RoleplayRealism CalculateClimbingChance = {0} with basePcSuccess={1}, climbing skill={2}, luck={3}", chance, basePercentSuccess, skill, luck); return(chance); }