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

Compare commits

...

3 Commits

Author SHA1 Message Date
KermitNuggies
7abbfb4a0a
Merge 6414268659 into ce8e4120b7 2024-12-02 10:20:24 -05:00
KermitNuggies
6414268659
Merge branch 'ppy:master' into clean-flow 2024-11-30 12:05:21 +13:00
TextAdventurer12
948c9901e6 create clean branch with flow aim changes 2024-11-28 01:20:11 +13:00
3 changed files with 11 additions and 2 deletions

View File

@ -122,6 +122,15 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
sliderBonus = osuLastObj.TravelDistance / osuLastObj.TravelTime;
}
// The spacing bonus in speed evaluation
double currFlowBonus = Math.Pow((osuLastObj?.MinimumJumpDistance?? 0) / 125, 3.6);
double prevFlowBonus = Math.Pow((osuLastLastObj?.MinimumJumpDistance?? 0) / 125, 3.6);
double flowBonus = Math.Max(prevFlowBonus, currFlowBonus);
// Part of the aiming difficulty for this object is accounted for in the speed evaluator, so reduce aim difficulty here
if (flowBonus < 1)
{
aimStrain *= 0.5 + 0.5 * Math.Sqrt(flowBonus);
}
// Add in acute angle bonus or wide angle bonus + velocity change bonus, whichever is larger.
aimStrain += Math.Max(acuteAngleBonus * acute_angle_multiplier, wideAngleBonus * wide_angle_multiplier + velocityChangeBonus * velocity_change_multiplier);

View File

@ -54,7 +54,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
distance = Math.Min(distance, single_spacing_threshold);
// Max distance bonus is 1 * `distance_multiplier` at single_spacing_threshold
double distanceBonus = Math.Pow(distance / single_spacing_threshold, 3.95) * distance_multiplier;
double distanceBonus = Math.Pow(distance / single_spacing_threshold, 3.6) * distance_multiplier;
// Base difficulty with all bonuses
double difficulty = (1 + speedBonus + distanceBonus) * 1000 / strainTime;

View File

@ -15,7 +15,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
/// </summary>
public class Speed : OsuStrainSkill
{
private double skillMultiplier => 1.430;
private double skillMultiplier => 1.58;
private double strainDecayBase => 0.3;
private double currentStrain;