mirror of
https://github.com/ppy/osu.git
synced 2024-12-05 10:23:20 +08:00
Merge 6414268659
into be05f2a1c2
This commit is contained in:
commit
f75141b753
@ -122,6 +122,15 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
|
|||||||
sliderBonus = osuLastObj.TravelDistance / osuLastObj.TravelTime;
|
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.
|
// 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);
|
aimStrain += Math.Max(acuteAngleBonus * acute_angle_multiplier, wideAngleBonus * wide_angle_multiplier + velocityChangeBonus * velocity_change_multiplier);
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Evaluators
|
|||||||
distance = Math.Min(distance, single_spacing_threshold);
|
distance = Math.Min(distance, single_spacing_threshold);
|
||||||
|
|
||||||
// Max distance bonus is 1 * `distance_multiplier` at 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
|
// Base difficulty with all bonuses
|
||||||
double difficulty = (1 + speedBonus + distanceBonus) * 1000 / strainTime;
|
double difficulty = (1 + speedBonus + distanceBonus) * 1000 / strainTime;
|
||||||
|
@ -15,7 +15,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty.Skills
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class Speed : OsuStrainSkill
|
public class Speed : OsuStrainSkill
|
||||||
{
|
{
|
||||||
private double skillMultiplier => 1.430;
|
private double skillMultiplier => 1.58;
|
||||||
private double strainDecayBase => 0.3;
|
private double strainDecayBase => 0.3;
|
||||||
|
|
||||||
private double currentStrain;
|
private double currentStrain;
|
||||||
|
Loading…
Reference in New Issue
Block a user