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