mirror of
https://github.com/ppy/osu.git
synced 2025-03-26 13:47:28 +08:00
Slight balancing
Added diffspike nerf to reading (accounting to memorization of one hard part)
This commit is contained in:
parent
f429f213d9
commit
77ce1aef42
@ -15,7 +15,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
|
||||
{
|
||||
private const double reading_window_size = 3000;
|
||||
|
||||
private const double overlap_multiplier = 1;
|
||||
private const double overlap_multiplier = 0.8;
|
||||
|
||||
public static double EvaluateDensityDifficultyOf(DifficultyHitObject current)
|
||||
{
|
||||
|
@ -71,6 +71,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
||||
|
||||
double baseReadingLowARPerformance = Math.Pow(readingLowARRating, 2.5) * 17.0;
|
||||
double baseReadingHighARPerformance = Math.Pow(5 * Math.Max(1, readingHighARRating / 0.0675) - 4, 3) / 100000;
|
||||
|
||||
double baseReadingHiddenPerformance = Math.Pow(readingHiddenRating, 2.0) * 25.0;
|
||||
|
||||
double basePerformance =
|
||||
|
@ -258,7 +258,10 @@ namespace osu.Game.Rulesets.Osu.Difficulty
|
||||
private double computeReadingValue(ScoreInfo score, OsuDifficultyAttributes attributes)
|
||||
{
|
||||
// Taking the highest value for AR reading
|
||||
double readingARValue = Math.Max(computeReadingLowARValue(score, attributes), computeReadingHighARValue(score, attributes));
|
||||
//double readingARValue = Math.Max(computeReadingLowARValue(score, attributes), computeReadingHighARValue(score, attributes));
|
||||
double readingARValue = Math.Pow(
|
||||
Math.Pow(computeReadingLowARValue(score, attributes), SumPower) +
|
||||
Math.Pow(computeReadingHighARValue(score, attributes), SumPower), 1.0 / SumPower);
|
||||
double readingHDValue = computeReadingHiddenValue(score, attributes);
|
||||
// Here would be also readingSliderValue
|
||||
|
||||
|
@ -4,6 +4,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using osu.Framework.Utils;
|
||||
using osu.Game.Rulesets.Difficulty.Preprocessing;
|
||||
using osu.Game.Rulesets.Difficulty.Skills;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
@ -43,6 +44,8 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
||||
CurrentSectionPeak = Math.Max(currentDifficulty, CurrentSectionPeak);
|
||||
}
|
||||
|
||||
private double reducedNoteCount => 5;
|
||||
private double reducedNoteBaseline => 0.7;
|
||||
public override double DifficultyValue()
|
||||
{
|
||||
double difficulty = 0;
|
||||
@ -53,6 +56,12 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
||||
|
||||
List<double> values = peaks.OrderByDescending(d => d).ToList();
|
||||
|
||||
for (int i = 0; i < Math.Min(values.Count, reducedNoteCount); i++)
|
||||
{
|
||||
double scale = Math.Log10(Interpolation.Lerp(1, 10, Math.Clamp(i / reducedNoteCount, 0, 1)));
|
||||
values[i] *= Interpolation.Lerp(reducedNoteBaseline, 1.0, scale);
|
||||
}
|
||||
|
||||
// Difficulty is the weighted sum of the highest strains from every section.
|
||||
// We're sorting from highest to lowest strain.
|
||||
for (int i = 0; i < values.Count; i++)
|
||||
@ -121,7 +130,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
||||
private double currentStrain;
|
||||
// private double currentRhythm;
|
||||
|
||||
private double skillMultiplier => 12;
|
||||
private double skillMultiplier => 13;
|
||||
private double strainDecayBase => 0.15;
|
||||
|
||||
private double strainDecay(double ms) => Math.Pow(strainDecayBase, ms / 1000);
|
||||
@ -145,7 +154,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
||||
|
||||
public class HighARSpeedComponent : OsuStrainSkill
|
||||
{
|
||||
private double skillMultiplier => 900;
|
||||
private double skillMultiplier => 650;
|
||||
private double strainDecayBase => 0.3;
|
||||
|
||||
private double currentStrain;
|
||||
|
Loading…
x
Reference in New Issue
Block a user