mirror of
https://github.com/ppy/osu.git
synced 2025-01-14 03:25:11 +08:00
refactored diffspike nerf
This commit is contained in:
parent
4c949d9829
commit
fea7b029aa
@ -32,8 +32,8 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
||||
if (beatmap.HitObjects.Count == 0)
|
||||
return new OsuDifficultyAttributes { Mods = mods, Skills = skills };
|
||||
|
||||
double aimRating = Math.Sqrt((skills[0] as OsuSkill).OsuDifficultyValue()) * difficulty_multiplier;
|
||||
double speedRating = Math.Sqrt((skills[1] as OsuSkill).OsuDifficultyValue()) * difficulty_multiplier;
|
||||
double aimRating = Math.Sqrt((skills[0] as OsuStrainSkill).OsuDifficultyValue()) * difficulty_multiplier;
|
||||
double speedRating = Math.Sqrt((skills[1] as OsuStrainSkill).OsuDifficultyValue()) * difficulty_multiplier;
|
||||
double starRating = aimRating + speedRating + Math.Abs(aimRating - speedRating) / 2;
|
||||
|
||||
HitWindows hitWindows = new OsuHitWindows();
|
||||
|
@ -13,7 +13,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
||||
/// <summary>
|
||||
/// Represents the skill required to correctly aim at every object in the map with a uniform CircleSize and normalized distances.
|
||||
/// </summary>
|
||||
public class Aim : OsuSkill
|
||||
public class Aim : OsuStrainSkill
|
||||
{
|
||||
private const double angle_bonus_begin = Math.PI / 3;
|
||||
private const double timing_threshold = 107;
|
||||
|
@ -8,9 +8,13 @@ using System.Linq;
|
||||
|
||||
namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
||||
{
|
||||
public abstract class OsuSkill : StrainSkill
|
||||
public abstract class OsuStrainSkill : StrainSkill
|
||||
{
|
||||
public OsuSkill(Mod[] mods) : base(mods)
|
||||
protected virtual int ReducedSectionCount => 9;
|
||||
protected virtual double ReducedStrainBaseline => 0.68;
|
||||
protected virtual double DifficultyMultiplier => 1.06;
|
||||
|
||||
public OsuStrainSkill(Mod[] mods) : base(mods)
|
||||
{
|
||||
}
|
||||
|
||||
@ -22,11 +26,9 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
||||
double strainMultiplier;
|
||||
List<double> strains = GetCurrentStrainPeaks().OrderByDescending(d => d).ToList();
|
||||
|
||||
double baseLine = 0.68;
|
||||
|
||||
for (int i = 0; i <= 9; i++)
|
||||
for (int i = 0; i < ReducedSectionCount; i++)
|
||||
{
|
||||
strainMultiplier = baseLine + Math.Log10(i+1) * (1.0 - baseLine);
|
||||
strainMultiplier = ReducedStrainBaseline + Math.Log10(i * 9.0 / ReducedSectionCount + 1) * (1.0 - ReducedStrainBaseline);
|
||||
strains[i] = strains[i] * strainMultiplier;
|
||||
}
|
||||
|
||||
@ -38,7 +40,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
||||
weight *= DecayWeight;
|
||||
}
|
||||
|
||||
return difficulty * 1.06;
|
||||
return difficulty * DifficultyMultiplier;
|
||||
}
|
||||
}
|
||||
}
|
@ -13,7 +13,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
||||
/// <summary>
|
||||
/// Represents the skill required to press keys with regards to keeping up with the speed at which objects need to be hit.
|
||||
/// </summary>
|
||||
public class Speed : OsuSkill
|
||||
public class Speed : OsuStrainSkill
|
||||
{
|
||||
private const double single_spacing_threshold = 125;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user