mirror of
https://github.com/ppy/osu.git
synced 2024-12-13 08:32:57 +08:00
Use HitWindows
data directly for computing effective OD
This commit is contained in:
parent
605269f65f
commit
0f4d054bfe
@ -342,9 +342,10 @@ namespace osu.Game.Rulesets.Osu
|
|||||||
preempt /= rate;
|
preempt /= rate;
|
||||||
adjustedDifficulty.ApproachRate = (float)IBeatmapDifficultyInfo.InverseDifficultyRange(preempt, OsuHitObject.PREEMPT_MAX, OsuHitObject.PREEMPT_MID, OsuHitObject.PREEMPT_MIN);
|
adjustedDifficulty.ApproachRate = (float)IBeatmapDifficultyInfo.InverseDifficultyRange(preempt, OsuHitObject.PREEMPT_MAX, OsuHitObject.PREEMPT_MID, OsuHitObject.PREEMPT_MIN);
|
||||||
|
|
||||||
double greatHitWindow = IBeatmapDifficultyInfo.DifficultyRange(adjustedDifficulty.OverallDifficulty, 80, 50, 20);
|
var greatHitWindowRange = OsuHitWindows.OSU_RANGES.Single(range => range.Result == HitResult.Great);
|
||||||
|
double greatHitWindow = IBeatmapDifficultyInfo.DifficultyRange(adjustedDifficulty.OverallDifficulty, greatHitWindowRange.Min, greatHitWindowRange.Average, greatHitWindowRange.Max);
|
||||||
greatHitWindow /= rate;
|
greatHitWindow /= rate;
|
||||||
adjustedDifficulty.OverallDifficulty = (float)IBeatmapDifficultyInfo.InverseDifficultyRange(greatHitWindow, 80, 50, 20);
|
adjustedDifficulty.OverallDifficulty = (float)IBeatmapDifficultyInfo.InverseDifficultyRange(greatHitWindow, greatHitWindowRange.Min, greatHitWindowRange.Average, greatHitWindowRange.Max);
|
||||||
|
|
||||||
return adjustedDifficulty;
|
return adjustedDifficulty;
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ namespace osu.Game.Rulesets.Osu.Scoring
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public const double MISS_WINDOW = 400;
|
public const double MISS_WINDOW = 400;
|
||||||
|
|
||||||
private static readonly DifficultyRange[] osu_ranges =
|
internal static readonly DifficultyRange[] OSU_RANGES =
|
||||||
{
|
{
|
||||||
new DifficultyRange(HitResult.Great, 80, 50, 20),
|
new DifficultyRange(HitResult.Great, 80, 50, 20),
|
||||||
new DifficultyRange(HitResult.Ok, 140, 100, 60),
|
new DifficultyRange(HitResult.Ok, 140, 100, 60),
|
||||||
@ -34,6 +34,6 @@ namespace osu.Game.Rulesets.Osu.Scoring
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override DifficultyRange[] GetRanges() => osu_ranges;
|
protected override DifficultyRange[] GetRanges() => OSU_RANGES;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ namespace osu.Game.Rulesets.Taiko.Scoring
|
|||||||
{
|
{
|
||||||
public class TaikoHitWindows : HitWindows
|
public class TaikoHitWindows : HitWindows
|
||||||
{
|
{
|
||||||
private static readonly DifficultyRange[] taiko_ranges =
|
internal static readonly DifficultyRange[] TAIKO_RANGES =
|
||||||
{
|
{
|
||||||
new DifficultyRange(HitResult.Great, 50, 35, 20),
|
new DifficultyRange(HitResult.Great, 50, 35, 20),
|
||||||
new DifficultyRange(HitResult.Ok, 120, 80, 50),
|
new DifficultyRange(HitResult.Ok, 120, 80, 50),
|
||||||
@ -27,6 +27,6 @@ namespace osu.Game.Rulesets.Taiko.Scoring
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override DifficultyRange[] GetRanges() => taiko_ranges;
|
protected override DifficultyRange[] GetRanges() => TAIKO_RANGES;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -270,9 +270,10 @@ namespace osu.Game.Rulesets.Taiko
|
|||||||
{
|
{
|
||||||
BeatmapDifficulty adjustedDifficulty = new BeatmapDifficulty(difficulty);
|
BeatmapDifficulty adjustedDifficulty = new BeatmapDifficulty(difficulty);
|
||||||
|
|
||||||
double greatHitWindow = IBeatmapDifficultyInfo.DifficultyRange(adjustedDifficulty.OverallDifficulty, 50, 35, 20);
|
var greatHitWindowRange = TaikoHitWindows.TAIKO_RANGES.Single(range => range.Result == HitResult.Great);
|
||||||
|
double greatHitWindow = IBeatmapDifficultyInfo.DifficultyRange(adjustedDifficulty.OverallDifficulty, greatHitWindowRange.Min, greatHitWindowRange.Average, greatHitWindowRange.Max);
|
||||||
greatHitWindow /= rate;
|
greatHitWindow /= rate;
|
||||||
adjustedDifficulty.OverallDifficulty = (float)IBeatmapDifficultyInfo.InverseDifficultyRange(greatHitWindow, 50, 35, 20);
|
adjustedDifficulty.OverallDifficulty = (float)IBeatmapDifficultyInfo.InverseDifficultyRange(greatHitWindow, greatHitWindowRange.Min, greatHitWindowRange.Average, greatHitWindowRange.Max);
|
||||||
|
|
||||||
return adjustedDifficulty;
|
return adjustedDifficulty;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user