mirror of
https://github.com/ppy/osu.git
synced 2024-12-18 02:02:54 +08:00
Reduce ratio for island size 1
This commit is contained in:
parent
d544498e8d
commit
5e8174faa8
@ -66,7 +66,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
|
||||
|
||||
private const int history_time_max = 5 * 1000; // 5 seconds of calculatingRhythmBonus max.
|
||||
private const int history_objects_max = 32;
|
||||
private const double rhythm_multiplier = 1.2;
|
||||
private const double rhythm_multiplier = 1.3;
|
||||
|
||||
/// <summary>
|
||||
/// Calculates a rhythm multiplier for the difficulty of the tap associated with historic data of the current <see cref="OsuDifficultyHitObject"/>.
|
||||
@ -113,7 +113,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
|
||||
double prevDelta = prevObj.StrainTime;
|
||||
double lastDelta = lastObj.StrainTime;
|
||||
|
||||
double currRatio = 1.0 + 5.8 * Math.Min(0.5, Math.Pow(Math.Sin(Math.PI / (Math.Min(prevDelta, currDelta) / Math.Max(prevDelta, currDelta))), 2)); // fancy function to calculate rhythmbonuses.
|
||||
double currRatio = 1.0 + 6.0 * Math.Min(0.5, Math.Pow(Math.Sin(Math.PI / (Math.Min(prevDelta, currDelta) / Math.Max(prevDelta, currDelta))), 2)); // fancy function to calculate rhythmbonuses.
|
||||
|
||||
double windowPenalty = Math.Min(1, Math.Max(0, Math.Abs(prevDelta - currDelta) - deltaDifferenceEpsilon) / deltaDifferenceEpsilon);
|
||||
|
||||
@ -137,7 +137,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
|
||||
if (prevObj.BaseObject is Slider)
|
||||
effectiveRatio *= 0.2;
|
||||
|
||||
// repeated island polartiy (2 -> 4, 3 -> 5)
|
||||
// repeated island polarity (2 -> 4, 3 -> 5)
|
||||
if (island.IsSimilarPolarity(previousIsland))
|
||||
effectiveRatio *= 0.3;
|
||||
|
||||
@ -145,6 +145,10 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
|
||||
if (lastDelta > prevDelta + deltaDifferenceEpsilon && prevDelta > currDelta + deltaDifferenceEpsilon)
|
||||
effectiveRatio *= 0.125;
|
||||
|
||||
// singletaps are easier to control
|
||||
if (island.Deltas.Count == 1)
|
||||
effectiveRatio *= 0.7;
|
||||
|
||||
if (!islandCounts.TryAdd(island, 1))
|
||||
{
|
||||
// only add island to island counts if they're going one after another
|
||||
|
Loading…
Reference in New Issue
Block a user