1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-05 09:42:54 +08:00

Compare commits

...

14 Commits

Author SHA1 Message Date
KermitNuggies
ae3472c6b2
Merge a60088c5ee into aa0ee5cf3a 2024-12-04 10:23:34 -05:00
Salman Alshamrani
aa0ee5cf3a
Merge pull request #30970 from peppy/results-screen-quick-retry-transition
Fix quick retry transition from results screen
2024-12-04 07:12:38 -05:00
Salman Alshamrani
a7586c52d0
Merge branch 'master' into results-screen-quick-retry-transition 2024-12-04 06:31:14 -05:00
Dean Herbert
a4d58648e2
Fix quick retry transition from results screen 2024-12-04 14:31:39 +09:00
KermitNuggies
a60088c5ee
Merge branch 'ppy:master' into strain-reduction-removal 2024-11-30 12:05:44 +13:00
TextAdventurer12
8b18be6214 change global mult 2024-11-27 23:54:20 +13:00
TextAdventurer12
1c289503e2 Merge branch 'master' into early-strain 2024-11-27 23:48:21 +13:00
TextAdventurer12
2ae65734fa Merge branch 'master' into strain-reduction 2024-10-03 22:20:45 +13:00
danielthirtle
10d1b8f39a remove to list 2024-07-16 23:49:37 +12:00
danielthirtle
7b077255fe stop nerfing early strains 2024-07-16 23:48:38 +12:00
KermitNuggies
9031b8eb94
Merge branch 'ppy:master' into early-strain 2024-07-13 13:31:30 +12:00
danielthirtle
2d255f86f9 clean up 2024-07-13 12:15:55 +12:00
danielthirtle
601ecd35f2 make speed normal 2024-07-04 20:55:14 +12:00
danielthirtle
e25e507d09 reduce the first strains in the map 2024-07-03 21:42:51 +12:00
4 changed files with 7 additions and 24 deletions

View File

@ -14,7 +14,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty
{
public class OsuPerformanceCalculator : PerformanceCalculator
{
public const double PERFORMANCE_BASE_MULTIPLIER = 1.15; // This is being adjusted to keep the final pp value scaled around what it used to be when changing things.
public const double PERFORMANCE_BASE_MULTIPLIER = 1.06; // This is being adjusted to keep the final pp value scaled around what it used to be when changing things.
private bool usingClassicSliderAccuracy;

View File

@ -12,16 +12,6 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
{
public abstract class OsuStrainSkill : StrainSkill
{
/// <summary>
/// The number of sections with the highest strains, which the peak strain reductions will apply to.
/// This is done in order to decrease their impact on the overall difficulty of the map for this skill.
/// </summary>
protected virtual int ReducedSectionCount => 10;
/// <summary>
/// The baseline multiplier applied to the section with the biggest strain.
/// </summary>
protected virtual double ReducedStrainBaseline => 0.75;
protected OsuStrainSkill(Mod[] mods)
: base(mods)
@ -37,18 +27,9 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
// These sections will not contribute to the difficulty.
var peaks = GetCurrentStrainPeaks().Where(p => p > 0);
List<double> strains = peaks.OrderDescending().ToList();
// We are reducing the highest strains first to account for extreme difficulty spikes
for (int i = 0; i < Math.Min(strains.Count, ReducedSectionCount); i++)
{
double scale = Math.Log10(Interpolation.Lerp(1, 10, Math.Clamp((float)i / ReducedSectionCount, 0, 1)));
strains[i] *= Interpolation.Lerp(ReducedStrainBaseline, 1.0, scale);
}
// Difficulty is the weighted sum of the highest strains from every section.
// We're sorting from highest to lowest strain.
foreach (double strain in strains.OrderDescending())
foreach (double strain in peaks.OrderDescending())
{
difficulty += strain * weight;
weight *= DecayWeight;

View File

@ -21,8 +21,6 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
private double currentStrain;
private double currentRhythm;
protected override int ReducedSectionCount => 5;
public Speed(Mod[] mods)
: base(mods)
{

View File

@ -55,6 +55,8 @@ namespace osu.Game.Screens.Ranking
[Resolved]
private Player? player { get; set; }
private bool skipExitTransition;
[Resolved]
private IAPIProvider api { get; set; } = null!;
@ -203,6 +205,7 @@ namespace osu.Game.Screens.Ranking
{
if (!this.IsCurrentScreen()) return;
skipExitTransition = true;
player?.Restart(true);
},
});
@ -313,7 +316,8 @@ namespace osu.Game.Screens.Ranking
// HitObject references from HitEvent.
Score?.HitEvents.Clear();
this.FadeOut(100);
if (!skipExitTransition)
this.FadeOut(100);
return false;
}