See
https://discord.com/channels/188630481301012481/1097318920991559880/1334716356582572074.
On `master` this is actually worse and shows thousands of pp points, so
I guess `pp-dev` is a comparable improvement, but still flagrantly
wrong. The reason why `pp-dev` is better is the `speedDeviation == null`
guard at the start of `computeSpeedValue()` which turns off the rest of
the calculation, therefore not exposing the bug where
`relevantTotalDiff` can go negative. I still guarded it in this commit
just for safety's sake given it is clear it can do very wrong stuff.
* Calculate hit windows in performance calculator instead of databased difficulty attributes
* Apply mods to beatmap difficulty in osu! performance calculator
* Remove `GreatHitWindow` difficulty attribute for osu!mania
* Remove use of approach rate and overall difficulty attributes for osu!
* Remove use of hit window difficulty attributes in osu!taiko
* Remove use of approach rate attribute in osu!catch
* Remove unused attribute IDs
* Code quality
* Fix `computeDeviationUpperBound` being called before `greatHitWindow` is set
* Make aim accuracy scaling harsher
* Use deviation-based scaling
* Bring the balancing multiplier down
* Adjust multipliers, fix incorrect deviation when using slider accuracy
* Adjust multipliers
* Update osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceAttributes.cs
Co-authored-by: James Wilson <tsunyoku@gmail.com>
* Change high speed deviation threshold to 22-27 instead of 20-24
* Update tests
---------
Co-authored-by: James Wilson <tsunyoku@gmail.com>
* Set speed distance to 0
* Reduce speed & flashlight, remove aim
* Remove speed AR bonus
* cleanup autopilot mod check in `SpeedEvaluator`
* further decrease speed rating for extra hand availability
* Pass all mods to the speed evaluator, zero out distance bonus instead of distance
---------
Co-authored-by: tsunyoku <mbruhyo@gmail.com>
Co-authored-by: StanR <hi@stanr.info>
* Change slider drop penalty to use actual number of difficult sliders, fix slider nerf being too lenient
* Move cubing to performance calculation
* Add separate list for slider strains
* Rename difficulty atttribute
* Rename attribute in perfcalc
* Check if AimDifficultSliderCount is more than 0, code quality fixes
* Add `AimDifficultSliderCount` to the list of databased attributes
* Code quality
---------
Co-authored-by: James Wilson <tsunyoku@gmail.com>
* Simplify osu! high-bpm acute angle jumps bonus
* Add aim wiggle bonus
* Add hitwindow-based aim velocity decrease
* Revert "Add hitwindow-based aim velocity decrease"
This reverts commit bcebe9662cfcb7a72805e48712525ef54ec9820e.
* Move wiggle multiplier to a const, slightly decrease acute bonus multiplier
* Make sure the previous object in the wiggle bonus is also part of the wiggle
* Scale the wiggle bonus multiplayer down
* Increase the acute angle jump bonus multiplier
* Make wiggle bonus only apply on >150 bpm streams, make repetitive angle penalty
* Reduce wiggle bonus multiplier to not break velocity>difficulty relation
* Adjust wiggle falloff function to fix stability issues
* Adjust wiggle consts
* Update tests