tsunyoku
ce5c666c34
bump global multiplier
2024-09-24 11:28:15 +01:00
tsunyoku
98d9b5eec8
correct distanceBonus
code comment
2024-09-24 11:23:34 +01:00
James Wilson
ac9c1508b1
update incorrect code comment
...
Co-authored-by: StanR <castl@inbox.ru>
2024-09-24 11:22:46 +01:00
tsunyoku
4da78a8c00
make speed bonuses additive, scale distanceBonus
2024-09-24 10:06:07 +01:00
StanR
08bded82fd
Remove GetHashCode
2024-09-23 16:30:02 +05:00
StanR
6ed151ccf5
Merge branch 'master' into rhythm-fixes
2024-09-23 14:25:32 +05:00
StanR
e04b88a9b0
Replace speed buff with aim buff
2024-09-23 13:49:25 +05:00
Givikap120
1b77b3912b
initial commit
2024-09-22 15:01:58 +03:00
StanR
e986a7dfe1
Fix repetition nerf not updating the counts
2024-09-19 19:15:54 +05:00
StanR
202364be5e
Use List
instead of Dictionary
for island counting, minor adjustments
2024-09-19 17:52:55 +05:00
StanR
732a114b95
Slight refactoring
2024-09-19 15:53:18 +05:00
StanR
0bad5e4684
Move slider-related ratio multiplier out of the delta switch block, add nerf for ratios with delta difference fractions that are too big, adjust consts
2024-09-19 04:38:01 +05:00
StanR
c9ce7d29e6
Adjust multipliers
2024-09-16 01:04:46 +05:00
StanR
bee18b03e7
Reduce history max overall instead of using clock rate
2024-09-16 00:49:36 +05:00
StanR
145731bdef
More balancing
2024-09-15 02:48:41 +05:00
StanR
863a74f980
Balancing
2024-09-15 02:08:37 +05:00
StanR
738d4bcb80
Reduce ratio if we're starting island counting after a slider
2024-09-15 01:49:52 +05:00
StanR
db626f168a
Refactor
2024-09-15 01:12:41 +05:00
StanR
5e8174faa8
Reduce ratio for island size 1
2024-09-14 22:03:01 +05:00
StanR
d544498e8d
Merge branch 'master' into rhythm-fixes
2024-09-12 15:29:20 +05:00
Dan Balasescu
d54c6aefbe
Merge branch 'master' into pp_refactoring_osustrainskill
2024-09-12 17:28:24 +09:00
StanR
3398497d4b
Remove kickslider changes
2024-09-12 01:04:07 +05:00
Dan Balasescu
d935ed949c
Merge branch 'master' into pp_refactoring_speed_eval_change
2024-09-11 23:45:10 +09:00
StanR
7fda8bc95b
Reduce repetition nerf for non-consecutive islands
2024-08-27 23:48:15 +05:00
StanR
ed45c947fc
Adjust max history by clockrate to make rhythm calculation more consistent between rates
2024-08-27 15:50:08 +05:00
StanR
ce8286d299
Scale difficulty with doubletapness, make kicksliders not reduce the difficulty of the next object, adjust balancing
2024-08-24 04:37:58 +05:00
StanR
f1adc6f98c
Don't cap max island size, make repetition nerf more lenient on high bpm, adjust balancing
2024-08-22 15:59:13 +05:00
StanR
3acd00b9b7
Tweak some values
2024-08-10 22:30:24 +05:00
Givikap120
a28913af7a
multiplied numbers in multipliers
2024-08-06 14:47:05 +03:00
Givikap120
ace1a57242
Update SpeedEvaluator.cs
2024-08-05 16:53:06 +03:00
Givikap120
ac57cdd1b3
speed eval refactoring
2024-08-05 16:50:06 +03:00
Givikap120
8431e62c47
fixed CI
2024-08-05 16:14:32 +03:00
Givikap120
251d009394
moved conversion formulas to respective classes
2024-08-05 16:08:30 +03:00
Givikap120
0a9b11d3a7
removed default difficulty multiplier
2024-08-05 15:57:02 +03:00
StanR
c1532bcb57
Reduce base ratio a bit
2024-07-19 11:01:42 +05:00
StanR
bae9625b0b
Make repetition nerf harsher, buff initial rhythm ratio, small refactoring
2024-07-19 10:13:50 +05:00
Dan Balasescu
ced11e6949
Even better readability
2024-07-16 12:23:46 +09:00
Dan Balasescu
fcc8e7be8a
Invert condition to reduce number of brain flips required
2024-07-16 12:09:09 +09:00
StanR
67cb4a2d02
InspectCode
2024-07-15 22:54:25 +05:00
StanR
e25642b484
Implement a bunch of rhythm difficulty calculation fixes
2024-07-15 14:45:31 +05:00
Bartłomiej Dach
b2722521fa
Merge branch 'master' into account-for-sliders-in-accuracy-pp
2024-05-31 07:41:04 +02:00
js1086
c25e1bdeb5
Use correct operation for 0 difficulty case
2024-05-26 14:21:47 +01:00
js1086
61afda1089
Fix NaN case when difficulty is 0
2024-05-26 11:24:06 +01:00
Fina
8dea601329
Merge branch 'master' into estimation-removal
2024-05-25 14:21:34 -07:00
Fina
6c9e906b2d
Revert "merged givi's accuracy changes"
...
This reverts commit 1f55c1413b
.
2024-05-24 14:00:42 -07:00
Fina
1f55c1413b
merged givi's accuracy changes
...
stat acc save me
2024-05-24 13:50:26 -07:00
js1086
20c54ab697
Apply code quality changes
2024-05-23 19:08:32 +01:00
danielthirtle
c1efcc054c
Change miss penalty (nerf longer maps)
2024-05-21 21:03:53 +12:00
Dan Balasescu
976c6c4f25
Merge pull request #28235 from tsunyoku/optimise-rhythm-evaluator-loop-logic
...
Reduce `Previous` calls in `RhythmEvaluator` by optimising loop logic
2024-05-20 20:31:46 +09:00
James Wilson
f31928875b
Reduce Previous
calls in RhythmEvaluator
by optimising loop logic
2024-05-19 16:26:51 +01:00
James Wilson
609268786f
remove unneeded extra Previous
calls from RhythmEvaluator
2024-05-19 13:29:49 +01:00
apollo-dw
9b60abe486
Merge branch 'ppy:master' into no-combo-scaling
2024-05-11 13:24:16 +01:00
Fina
4fe55d437a
Renamed useSliderHead to useClassicSlider (and refactored code accordingly)
2024-04-20 14:16:02 -07:00
Fina
d1dcac08c6
fix code formatting
2024-04-19 16:11:26 -07:00
Fina
4a7b8138ae
Re-add bool useSliderHead
...
oops
2024-04-19 16:07:54 -07:00
Fina
759a82655c
Clamp estimatedSliderEndsDrop
2024-04-19 16:04:49 -07:00
Fina
77814ec69f
Fix getting slider head drops
2024-04-19 16:04:17 -07:00
Fina
ca246015d5
Add bool useSliderHead
2024-04-19 16:03:46 -07:00
TextAdventurer12
e2a5d1904b
adjust count difficult strains formula
2024-04-17 01:21:06 +12:00
Dan Balasescu
0e218ee271
Merge pull request #27148 from Givikap120/traceable_pp
...
Add Traceable performance calculation support
2024-04-16 04:54:57 +09:00
Givikap120
4a21ff9726
removed duplication
2024-04-13 13:59:09 +03:00
Givikap120
feb9b5bdb8
Make traceable pp match HD
2024-04-13 13:42:57 +03:00
TextAdventurer12
b32d73ec9b
adjust weighting function
2024-04-13 02:43:33 +12:00
Fina
dd17c898b3
removed large tick misses from effectivemisscount
2024-04-11 19:07:48 -07:00
Fina
2dd49036ed
Cap Buzz Slider Related Misses
...
After letting the comments @Flamiii left brew for a while, I realized they were very much right about the buzz slider thing. As such, I've implemented a quick and dirty untested fix that will hopefully have zero unintended side-effects :)
I don't see this as a permanent or final solution yet. There's definitely some potential issues/inaccuracies that could arise with maps like Notch Hell or IOException's Black Rover, but afaik this implementation would not cause any issues that stable doesn't already have.
2024-04-10 20:31:52 -07:00
TextAdventurer12
9f5f6b5d37
stop capping difficult strains per note
2024-04-06 21:39:27 +13:00
Fina
58bc184e0a
Use sliderend data for all non-legacy scores
...
As per suggestion by givikap, I was not aware that non-legacy cl scores stored this data
2024-03-23 14:43:26 -07:00
Fina
6fe478c865
Add slider ticks and reverse arrows to effective misscount
...
Very much open to discussion on if these should be weighed differently
2024-03-21 23:49:54 -07:00
Fina
b0d20e68ae
Update OsuPerformanceCalculator.cs
2024-03-21 23:31:45 -07:00
Fina
eb30b4aa38
Merge branch 'estimation-removal' into dropped-tail-fix
2024-03-21 23:29:45 -07:00
Fina
840845527f
Use miss count for effective miss count
...
No need to estimate misses for non-CL scores.
2024-03-21 23:24:37 -07:00
Fina
3dafdc01bb
Revert "Make length bonus account for sliders, use proper misscount for classic"
...
This reverts commit 941c0487a4
.
2024-03-21 23:17:10 -07:00
Fina
4db6f288d3
Use actual sliderends dropped instead of estimating
...
Score data for non-CL scores includes sliderends dropped, meaning no need to estimate.
CL scores are still estimated.
2024-03-21 23:15:36 -07:00
Fina
941c0487a4
Make length bonus account for sliders, use proper misscount for classic
2024-03-21 19:02:36 -07:00
TextAdventurer12
0db910deb9
cap each note at adding 1 difficult strain count
2024-02-22 15:20:32 +13:00
TextAdventurer12
7d34542c12
use difficulty instead of topstrain
2024-02-22 15:14:56 +13:00
Andrei Zavatski
22f5a66c02
Reduce allocations during beatmap selection
2024-02-17 15:46:38 +03:00
Givikap120
6402f23f02
Added Traceable support for pp
2024-02-12 21:00:15 +02:00
tsunyoku
c5f392c17d
only compute flashlight in osu! difficulty calculations when required
2024-02-10 15:25:03 +00:00
Berkan Diler
6adf0ac01e
Use new LINQ Order() instead of OrderBy() when possible
2024-02-08 18:01:00 +01:00
tsunyoku
8ccb14f19f
include slider count in accuracy pp if slider head accuracy is in use
2024-02-06 13:08:17 +00:00
Bartłomiej Dach
7c9adc7ad3
Fix incorrect score conversion on selected beatmaps due to incorrect difficultyPeppyStars
rounding
...
Fixes issue that occurs on *about* 246 beatmaps and was first described
by me on discord:
https://discord.com/channels/188630481301012481/188630652340404224/1154367700378865715
and then rediscovered again during work on
https://github.com/ppy/osu/pull/26405 :
https://gist.github.com/bdach/414d5289f65b0399fa8f9732245a4f7c#venenog-on-ultmate-end-by-blacky-overdose-631
It so happens that in stable, due to .NET Framework internals, float
math would be performed using x87 registers and opcodes.
.NET (Core) however uses SSE instructions on 32- and 64-bit words.
x87 registers are _80 bits_ wide. Which is notably wider than _both_
float and double. Therefore, on a significant number of beatmaps,
the rounding would not produce correct values due to insufficient
precision.
See following gist for corroboration of the above:
https://gist.github.com/bdach/dcde58d5a3607b0408faa3aa2b67bf10
Thus, to crudely - but, seemingly accurately, after checking across
all ranked maps - emulate this, use `decimal`, which is slow, but has
bigger precision than `double`. The single known exception beatmap
in whose case this results in an incorrect result is
https://osu.ppy.sh/beatmapsets/1156087#osu/2625853
which is considered an "acceptable casualty" of sorts.
Doing this requires some fooling of the compiler / runtime (see second
inline comment in new method). To corroborate that this is required,
you can try the following code snippet:
Console.WriteLine(string.Join(' ', BitConverter.GetBytes(1.3f).Select(x => x.ToString("X2"))));
Console.WriteLine(string.Join(' ', BitConverter.GetBytes(1.3).Select(x => x.ToString("X2"))));
Console.WriteLine();
decimal d1 = (decimal)1.3f;
decimal d2 = (decimal)1.3;
decimal d3 = (decimal)(double)1.3f;
Console.WriteLine(string.Join(' ', decimal.GetBits(d1).SelectMany(BitConverter.GetBytes).Select(x => x.ToString("X2"))));
Console.WriteLine(string.Join(' ', decimal.GetBits(d2).SelectMany(BitConverter.GetBytes).Select(x => x.ToString("X2"))));
Console.WriteLine(string.Join(' ', decimal.GetBits(d3).SelectMany(BitConverter.GetBytes).Select(x => x.ToString("X2"))));
which will print
66 66 A6 3F
CD CC CC CC CC CC F4 3F
0D 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
0D 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
8C 5D 89 FB 3B 76 00 00 00 00 00 00 00 00 0E 00
Note that despite `d1` being converted from a less-precise floating-
-point value than `d2`, it still is represented 100% accurately as
a decimal number.
After applying this change, recomputation of legacy scoring attributes
for *all* rulesets will be required.
2024-01-10 19:30:18 +01:00
Dan Balasescu
6b4b2a57fc
Expose only as one method
2023-12-21 14:58:23 +09:00
Dan Balasescu
4e3b994142
Relocate HitResult numeric score to ScoreProcessor
2023-12-21 14:52:31 +09:00
Bartłomiej Dach
ca37e1afc2
Merge branch 'master' into scorev3
2023-11-24 10:37:10 +09:00
Samuel Cattini-Schultz
c9ee29028f
Fix implicitly used method being named incorrectly
2023-11-21 16:54:20 +11:00
Zyf
cadd9b4ace
Merge remote-tracking branch 'upstream/master' into scorev3
2023-11-19 23:53:05 +01:00
Dan Balasescu
939b55020c
Merge branch 'master' into legacy-tick-test-coverage
2023-10-18 15:21:31 +09:00
Dean Herbert
a3b21281e6
Add reordering support to match existing diffcalc 100%
2023-10-13 14:25:38 +09:00
Dean Herbert
5ffc25c8e8
Fix potential failure when slider has no ticks
2023-10-12 03:19:43 +09:00
Dean Herbert
63843c79c3
Amend diffcalc to use something closer to the original calculation for now
2023-10-11 21:12:04 +09:00
Dean Herbert
8d91991214
Fix difficulty calculation not correct handling slider leniency anymore
2023-10-04 13:45:26 +09:00
Dean Herbert
c4992d3479
Fix one case of difficulty calculation no longer accounting for leniency
2023-10-03 19:37:13 +09:00
Dean Herbert
70ec4b060a
Rename weird diffcalc parameter name
2023-10-03 19:20:39 +09:00
Dan Balasescu
da2a4681d9
Add method to retrieve legacy score multiplier
2023-10-02 16:52:01 +09:00
Dan Balasescu
2abef4ade5
Expand comment to justify maximising bonus score
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-09-15 18:35:17 +09:00
Dan Balasescu
ed295effc5
Maximise bonus score
2023-09-15 15:51:05 +09:00
Dan Balasescu
86330a7cc4
Adjust comment
2023-09-11 18:01:53 +09:00
Dan Balasescu
628517569b
Fix another difficulty-specific value
2023-09-08 21:08:09 +09:00
Dan Balasescu
2334be1987
Split legacy scoring attributes into a separate object
2023-09-07 21:10:38 +09:00