1
0
mirror of https://github.com/ppy/osu.git synced 2025-03-11 04:59:58 +08:00

811 Commits

Author SHA1 Message Date
Dean Herbert
bdd2808fb5
Bump difficulty calculator versions in preparation for release 2025-03-06 16:05:51 +09:00
Bartłomiej Dach
4e66536ae8
Fix failed scores with no hits on beatmaps with ridiculous mod combinations showing hundreds of pp points awarded (#31741)
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.
2025-02-14 14:52:05 +00:00
James Wilson
9f90ebb2f7
Calculate hit windows in performance calculator instead of databased difficulty attributes (#31735)
* 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
2025-02-07 19:21:12 +09:00
James Wilson
2ee480c442
Clamp estimateImproperlyFollowedDifficultSliders between 0 and attributes.AimDifficultSliderCount (#31736) 2025-01-30 13:58:38 +00:00
Rian (Reza Mouna Hendrian)
46144960e5
Remove unnecessary strain sorting in difficult slider count (#31724) 2025-01-29 19:06:05 +00:00
StanR
22e839d62b
Replace indexed skill access with skills.OfType<...>().Single() (#30034)
* Replace indexed skill access with `skills.First(s is ...)`

* Fix comment

* Further refactoring to remove casts

---------

Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2025-01-20 09:39:35 +00:00
James Wilson
e320f17faf
Remove redundant angle check (#31566) 2025-01-19 18:47:39 +03:00
Natelytle
5b4ba9225d
Move error function from osu.Game.Utils to osu.Game.Rulesets.Difficulty.Utils (#31520)
* Move error function implementation to osu.Game.Rulesets.Difficulty.Utils

* Rename ErrorFunction.cs to DifficultyCalculationUtils_ErrorFunction.cs
2025-01-17 19:37:34 +00:00
molneya
974fa76987
fix spinners not increasing cumulative strain time (#31525)
Co-authored-by: StanR <hi@stanr.info>
2025-01-16 09:08:47 +00:00
James Wilson
6cf15e3e5a
Remove problematic total deviation scaling, rebalance aim (#31515)
* Remove problematic total deviation scaling, rebalance aim

* Fix tests
2025-01-14 18:27:25 +00:00
StanR
c53188cf45
Use total deviation to scale accuracy on aim, general aim buff (#31498)
* 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>
2025-01-14 13:18:02 +00:00
Givikap120
b21c6457b1
Punish speed PP for scores with high deviation (#30907) 2025-01-09 13:27:54 +00:00
StanR
db58ec8645
Apply a bunch of balancing changes to aim (#31456)
* Apply a bunch of balancing changes to aim

* Update tests

---------

Co-authored-by: James Wilson <tsunyoku@gmail.com>
2025-01-09 09:57:48 +00:00
StanR
392bb5718c
Simplify angle bonus formula (#31449)
* Simplify angle bonus formula

* Simplify further

* Simplify acute too

* Tests
2025-01-08 10:03:22 +00:00
StanR
3b58d5e435
Clamp OD in performance calculation to fix negative OD gaining pp (#31447)
Co-authored-by: James Wilson <tsunyoku@gmail.com>
2025-01-07 12:49:55 +00:00
StanR
76ac11ff59
Fix angle bonuses calculating repetition incorrectly, apply distance scaling to wide bonus (#31320)
* Fix angle bonuses calculating repetition incorrectly, apply distance scaling to wide bonus

* Buff speed to compensate for streams losing pp

* Adjust speed multiplier

* Adjust wide scaling

* Fix tests
2025-01-06 15:08:14 +00:00
James Wilson
988ed374ae
Add basic difficulty & performance calculation for Autopilot mod on osu! ruleset (#21211)
* 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>
2024-12-29 19:29:57 +00:00
James Wilson
3ddeaf8460
Use lastAngle when nerfing repeated angles on acute bonus (#31245)
* Use `lastAngle` when nerfing repeated angles on acute bonus

* Bump acute multiplier

* Correct outdated wiggle bonus comment

* Update test

---------

Co-authored-by: StanR <hi@stanr.info>
2024-12-24 12:43:44 +03:00
StanR
6808a5a77c
Change slider drop penalty to use actual number of difficult sliders, fix slider drop penalty being too lenient (#31055)
* 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>
2024-12-21 23:45:29 +00:00
StanR
f722f94f26
Simplify osu! high-bpm acute angle jumps bonus (#30902)
* 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
2024-12-20 23:32:51 +00:00
Givikap120
b086c276ad moved back to the top 2024-11-14 09:03:08 +02:00
Givikap120
9fcf8342f0 initial commit 2024-11-14 08:59:03 +02:00
Dan Balasescu
60d45d44bb
Merge pull request #30536 from stanriders/add-diffcalc-helpers
Add `DifficultyCalculationUtils`
2024-11-13 17:49:40 +09:00
Dan Balasescu
678d14aa60
Merge pull request #30534 from Lawtrohux/difficult-strain
Globalise `CountDifficultStrains` within StrainSkill
2024-11-12 14:50:18 +09:00
Dan Balasescu
f746999d58
Merge pull request #30544 from Finadoggie/clamp-slider 2024-11-11 19:22:34 +09:00
finadoggie
70be82b048
Clamp estimateImproperlyFollowedDifficultSliders for lazer scores 2024-11-07 22:42:41 -08:00
StanR
c9d3b6557d Fix code issues 2024-11-07 21:23:26 +05:00
StanR
78c97d2cd7 Add DifficultyCalculationUtils 2024-11-07 20:36:00 +05:00
Jay Lawton
7c3a3c4d10 rename DifficultStrains for clarity 2024-11-07 21:56:42 +10:00
Jay Lawton
748055ab29 remove double instance of array 2024-11-07 20:15:59 +10:00
Jay Lawton
177781aca5 remove localised instance of difficultstrains 2024-11-07 19:57:37 +10:00
Givikap120
f3251bfcfd reset to miss instead of 0 2024-11-05 22:15:18 +02:00
Givikap120
ec046651b2 Update OsuPerformanceCalculator.cs 2024-11-05 22:08:43 +02:00
Dan Balasescu
c1a40388ff
Cap effective miss count to total hits 2024-10-30 23:47:56 +09:00
StanR
acf282dddd Fix effectiveMissCount being calculated wrong 2024-10-21 15:06:34 +05:00
StanR
bcb997028e Refactor and add comments 2024-10-21 14:38:03 +05:00
finadoggie
98800fea71
Fix variables being used before being assigned
slightly miffed by the lack of build errors but oh well
2024-10-21 00:34:26 -07:00
finadoggie
5907c2a1c4
Only clamp estimated miss count with relevant statistics 2024-10-20 22:47:02 -07:00
finadoggie
3778246a55
Addressed code quality concerns 2024-10-20 22:15:15 -07:00
finadoggie
e31e10d616
merge effectivemisscount functions
having two functions was unnecessary
2024-10-20 21:47:01 -07:00
finadoggie
31e0853641
add large tick misses back into effectivemisscount 2024-10-20 21:39:15 -07:00
finadoggie
6d4cb608ab
Revert "use LargeTickHit instead of LargeTickMiss"
This reverts commit 1337b7eb41d8a3e225bf7e8e1d0b9138dca88927.
2024-10-19 05:43:10 -07:00
finadoggie
1337b7eb41
use LargeTickHit instead of LargeTickMiss
LargeTickMiss appears to not be stored
2024-10-17 15:58:42 -07:00
finadoggie
6bcfed8963
Revert "remove score debugging code I accidentally left in"
This reverts commit 5192599543a17a9d47a92627d0128051c6904e56.
2024-10-12 16:53:32 -07:00
finadoggie
5192599543
remove score debugging code I accidentally left in 2024-10-12 16:45:34 -07:00
finadoggie
88af57818c
only assign countLargeTickMiss for slider accuracy scores
helps indicate it should only be used for slider acc scores
2024-10-12 15:36:42 -07:00
finadoggie
29b1697a70
consolidated if statements for getting effectiveMissCount and countSliderEndsDropped 2024-10-12 15:34:04 -07:00
finadoggie
3ac6a9f0ae
Join variable assignments with declarations 2024-10-12 15:30:02 -07:00
finadoggie
3b517e03aa
Convert estimateSliderEndsDropped assignment into '?:' expression
I would just like to say that I don't know why anyone would ever want this but github told me to do it
2024-10-12 01:08:39 -07:00
finadoggie
b921424461
Update to use variable usingClassicSliderAccuracy 2024-10-12 01:00:15 -07:00