Skip to content

Commit

Permalink
Merge pull request ppy#10 from kwotaq/difficultStrainLengthWithObject…
Browse files Browse the repository at this point in the history
…Count

Balance update
  • Loading branch information
TextAdventurer12 authored Oct 1, 2024
2 parents 3e30341 + a118095 commit 57e706c
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 7 deletions.
11 changes: 6 additions & 5 deletions osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ namespace osu.Game.Rulesets.Osu.Difficulty
{
public class OsuPerformanceCalculator : PerformanceCalculator
{
public const double PERFORMANCE_BASE_MULTIPLIER = 1.14; // 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.195; // This is being adjusted to keep the final pp value scaled around what it used to be when changing things.

private double accuracy;
private int scoreMaxCombo;
Expand Down Expand Up @@ -90,9 +90,10 @@ private double computeAimValue(ScoreInfo score, OsuDifficultyAttributes attribut
double aimValue = OsuStrainSkill.DifficultyToPerformance(attributes.AimDifficulty);

double lengthObjectCount = attributes.AimDifficultStrainCount * 3;
double lengthBonus = 0.9 + lengthObjectCount / 2000.0;
double lengthBonus = 0.9 + Math.Min(1.0, lengthObjectCount / 2000.0) +
(lengthObjectCount > 2000 ? Math.Log10(lengthObjectCount / 2000.0) : 0.0);
aimValue *= lengthBonus;

if (effectiveMissCount > 0)
aimValue *= 0.97 * Math.Pow(1 - Math.Pow(effectiveMissCount / totalHits, 0.775), Math.Pow(effectiveMissCount, .875));

Expand Down Expand Up @@ -143,12 +144,12 @@ private double computeSpeedValue(ScoreInfo score, OsuDifficultyAttributes attrib

double lengthObjectCount = (totalHits + attributes.SpeedDifficultStrainCount) / 2;
double lengthBonus = 0.9 + 0.45 * Math.Min(1.0, lengthObjectCount / 2000.0) +
(lengthObjectCount > 2000 ? Math.Log10(lengthObjectCount / 2000.0) * 0.4 : 0.0);
(lengthObjectCount > 2000 ? Math.Log10(lengthObjectCount / 2000.0) * 0.3 : 0.0);
speedValue *= lengthBonus;

if (effectiveMissCount > 0)
speedValue *= 0.97 * Math.Pow(1 - Math.Pow(effectiveMissCount / totalHits, 0.775), Math.Pow(effectiveMissCount, .875));

speedValue *= getComboScalingFactor(attributes);

double approachRateFactor = 0.0;
Expand Down
4 changes: 2 additions & 2 deletions osu.Game.Rulesets.Osu/Difficulty/Skills/OsuStrainSkill.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,8 @@ public double CountDifficultStrains()
// Use a weighted sum of all strains. Constants are arbitrary and give nice values

double totalStrains = ObjectStrains.Count;
double rateOfChange = 10 + 13000.0 / totalStrains;
return ObjectStrains.Sum(s => 1.1 / (1 + Math.Exp(-10 * (s / consistentTopStrain - 0.86 - (rateOfChange / totalStrains)))));
double rateOfChange = 50 + 15000.0 / totalStrains;
return ObjectStrains.Sum(s => 1.1 / (1 + Math.Exp(-10 * (s / consistentTopStrain - 0.88 - (rateOfChange / totalStrains)))));
}

public static double DifficultyToPerformance(double difficulty) => Math.Pow(5.0 * Math.Max(1.0, difficulty / 0.0675) - 4.0, 3.0) / 100000.0;
Expand Down

0 comments on commit 57e706c

Please sign in to comment.