1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-31 19:10:43 +08:00

osu!taiko new rhythm penalty for long intervals using stamina difficulty (#31573)

* Replace long interval nerf with a new one that uses stamina difficulty

* Turn tabs into spaces

* Update unit tests

---------

Co-authored-by: StanR <hi@stanr.info>
This commit is contained in:
Eloise
2025-01-20 08:40:52 +00:00
committed by GitHub
Unverified
parent 2d0bc6cb62
commit e57565435e
2 changed files with 6 additions and 5 deletions
@@ -14,13 +14,13 @@ namespace osu.Game.Rulesets.Taiko.Tests
{
protected override string ResourceAssembly => "osu.Game.Rulesets.Taiko";
[TestCase(3.3056113401782845d, 200, "diffcalc-test")]
[TestCase(3.3056113401782845d, 200, "diffcalc-test-strong")]
[TestCase(3.305554470092722d, 200, "diffcalc-test")]
[TestCase(3.305554470092722d, 200, "diffcalc-test-strong")]
public void Test(double expectedStarRating, int expectedMaxCombo, string name)
=> base.Test(expectedStarRating, expectedMaxCombo, name);
[TestCase(4.4473902679506896d, 200, "diffcalc-test")]
[TestCase(4.4473902679506896d, 200, "diffcalc-test-strong")]
[TestCase(4.4472572672057815d, 200, "diffcalc-test")]
[TestCase(4.4472572672057815d, 200, "diffcalc-test-strong")]
public void TestClockRateAdjusted(double expectedStarRating, int expectedMaxCombo, string name)
=> Test(expectedStarRating, expectedMaxCombo, name, new TaikoModDoubleTime());
@@ -30,7 +30,8 @@ namespace osu.Game.Rulesets.Taiko.Difficulty.Skills
double difficulty = RhythmEvaluator.EvaluateDifficultyOf(current, greatHitWindow);
// To prevent abuse of exceedingly long intervals between awkward rhythms, we penalise its difficulty.
difficulty *= DifficultyCalculationUtils.Logistic(current.DeltaTime, 350, -1 / 25.0, 0.5) + 0.5;
double staminaDifficulty = StaminaEvaluator.EvaluateDifficultyOf(current) - 0.5; // Remove base strain
difficulty *= DifficultyCalculationUtils.Logistic(staminaDifficulty, 1 / 15.0, 50.0);
return difficulty;
}