Implement a bunch of rhythm difficulty calculation fixes
This PR addresses a couple of rhythm evaluation issues in osu!:
- Removes island length size bonus completely
- Heavily nerf repeated islands (https://www.desmos.com/calculator/gng9y2wfjl)
- Changes delta difference comparisons to use hitwindow-based epsilon
- Buffs initial rhythm ratio
!diffcalc
Target: https://github.com/ppy/osu/pull/28871 Spreadsheet: https://docs.google.com/spreadsheets/d/1RjFSJwUQ_LW1wHNSeap2CwOXwwM9rm13hEqz_krZobY/edit
!diffcalc
Difficulty calculation failed: https://github.com/ppy/osu/actions/runs/10018306415
@smoogipoo this change is good to go
@ppy/osu-pp-committee please advise how to fix merge conflict with https://github.com/ppy/osu/pull/29980
...also https://github.com/ppy/osu/pull/29998 touches this same thing again? what is going on here???
@ppy/osu-pp-committee please advise how to fix merge conflict with #29980
Can use any value here, you can ignore any merge conflicts in Aim skillMultiplier as long as https://github.com/ppy/osu/pull/29998 is the final pr that's getting merged. It was adjusted in half of prs to make individual changes more balanced in testing
?_?
i guess i'm going to merge https://github.com/ppy/osu/pull/29998 into this instead if that is the case, after https://github.com/ppy/osu/pull/29980#issuecomment-2396024786 sheet is done
Any reason for waiting on the sheet? I only requested a sheet to be queued, but is not required for merge.
well i mean if i run a sheet for the sake of running the sheet i can, but given that this touches the same code the preceding pull touched, it would make sense to verify that one doesn't do anything obviously broken before going forward? or not? but in that case we might as well run one sheet at the end of everything?
this is a complete mess to manage.
If you're expecting branches to be working 100% as expected from the get-go, then sheets must look good before merge with no exceptions.
But, as we discussed, I'm fine not doing that in order to keep things moving at a rapid pace. My only requirement is for a sheet to be queued for each PR. It leaves a bit of a paper trail, if not to figure out where things went wrong / if a change has some edge case that was not known during rapid-merge, then to potentially be referenced if numbers are required to understand the change.
I will check every sheet myself, it's just for my own sanity :)
Alright well I'm merging master into this, then merging https://github.com/ppy/osu/pull/29998 into this, then fixing tests, then queueing sheet. Means we can skip one sheet for https://github.com/ppy/osu/pull/29998.
!diffcalc
Queueing again with explicit OSU_A spec since I realised this might not work as intended if I do it as above.
!diffcalc OSU_A=https://github.com/ppy/osu/commit/cf66d40b008ba70ec3037d11713bbaa0bda04e91
Target: https://github.com/ppy/osu/pull/28871 Spreadsheet: https://docs.google.com/spreadsheets/d/1hzKVQpCxsOXM3T83nby6AhnLSifSlo0m8Y3hmIDT_zg/edit
