1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-21 22:47:24 +08:00

refactored diffspike nerf

This commit is contained in:
emu1337 2021-06-14 19:18:49 +02:00
parent 4c949d9829
commit fea7b029aa
4 changed files with 13 additions and 11 deletions

View File

@ -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();

View File

@ -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;

View File

@ -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;
}
}
}

View File

@ -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;