mirror of
https://github.com/ppy/osu.git
synced 2026-05-25 10:30:16 +08:00
osu!taiko changes to length bonus using consistency factor (#33582)
* Implement new formulas for length bonus * Add comment(s) * Fix up HDFL thing
This commit is contained in:
committed by
GitHub
Unverified
parent
699fbb1a85
commit
7066f3def7
@@ -86,7 +86,9 @@ namespace osu.Game.Rulesets.Taiko.Difficulty
|
||||
|
||||
difficultyValue *= 1 + 0.10 * Math.Max(0, attributes.StarRating - 10);
|
||||
|
||||
double lengthBonus = 1 + 0.1 * Math.Min(1.0, totalHits / 1500.0);
|
||||
// Applies a bonus to maps with more total difficulty, calculating this with a map's total hits and consistency factor.
|
||||
double totalDifficultHits = totalHits * Math.Pow(attributes.ConsistencyFactor, 0.5);
|
||||
double lengthBonus = 1 + 0.25 * totalDifficultHits / (totalDifficultHits + 4000);
|
||||
difficultyValue *= lengthBonus;
|
||||
|
||||
// Scales miss penalty by the total hits of a map, making misses more punishing on maps with fewer objects.
|
||||
@@ -119,11 +121,16 @@ namespace osu.Game.Rulesets.Taiko.Difficulty
|
||||
if (score.Mods.Any(m => m is ModHidden) && !isConvert)
|
||||
accuracyValue *= 1.075;
|
||||
|
||||
double lengthBonus = Math.Min(1.15, Math.Pow(totalHits / 1500.0, 0.3));
|
||||
// Applies a bonus to maps with more total difficulty, calculating this with a map's total hits and consistency factor.
|
||||
double totalDifficultHits = totalHits * Math.Pow(attributes.ConsistencyFactor, 0.5);
|
||||
double lengthBonus = 1 + 0.4 * totalDifficultHits / (totalDifficultHits + 4000);
|
||||
accuracyValue *= lengthBonus;
|
||||
|
||||
// Applies a bonus to maps with more total memory required with HDFL.
|
||||
double memoryLengthBonus = Math.Min(1.15, Math.Pow(totalHits / 1500.0, 0.3));
|
||||
|
||||
// Slight HDFL Bonus for accuracy. A clamp is used to prevent against negative values.
|
||||
if (score.Mods.Any(m => m is ModFlashlight<TaikoHitObject>) && score.Mods.Any(m => m is ModHidden) && !isConvert)
|
||||
accuracyValue *= Math.Max(1.0, 1.05 * lengthBonus);
|
||||
accuracyValue *= Math.Max(1.0, 1.05 * memoryLengthBonus);
|
||||
|
||||
return accuracyValue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user