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
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
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
TextAdventurer12
9f5f6b5d37
stop capping difficult strains per note
2024-04-06 21:39:27 +13: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
Zyf
b672b49e02
Scoring : Implement v1 to v3 conversion.
2023-07-15 23:20:49 +02:00
Dean Herbert
1629024111
ILegacyScoreProcessor
-> ILegacyScoreSimulator
2023-07-04 17:32:54 +09:00
Dan Balasescu
09bc8e45de
Refactoring
2023-06-28 16:14:32 +09:00
Dan Balasescu
5f350aa66f
Fix float division
...
Firstly, this is intended to be a float division.
Secondly, dividing integers by 0 results in an exception, but dividing
non-zero floats by 0 results in +/- infinity which will be clamped to
the upper range.
In particular, this occurs when the beatmap has 1 hitobject (0 drain
length).
2023-06-27 17:14:35 +09:00
Dan Balasescu
a9c65d200a
Initial conversion of scores
2023-06-26 22:19:01 +09:00
Dan Balasescu
e1d723a2cc
Merge branch 'master' into diffcalc-total-scorev1
2023-06-26 14:32:14 +09:00
Bartłomiej Dach
e3a89a6273
Fix remaining obvious CI inspections
2023-06-24 16:07:01 +02:00
Dean Herbert
df5b389629
Manual fixes to reduce warnings to zero
2023-06-24 01:52:53 +09:00
Dan Balasescu
06565871d6
Add flag to disable computing legacy scoring values
2023-06-24 01:03:18 +09:00
Dean Herbert
0ab0c52ad5
Automated pass
2023-06-24 01:00:03 +09:00
Dan Balasescu
87447f41d0
Fix incorrect calculation of difficulty
2023-06-24 00:58:45 +09:00
Dan Balasescu
bfa449e47a
Adjust attribute data
2023-06-19 21:38:13 +09:00
Dan Balasescu
b9f485b551
Merge classes + split out
2023-06-13 02:32:54 +09:00
Dan Balasescu
446807e7f6
Add combo score / bonus score attributes
2023-06-12 23:00:29 +09:00
Dan Balasescu
d10c63ed2d
Fix difficulty calculation when mods are involved
2023-06-08 16:29:34 +09:00
Dan Balasescu
77c745cc94
"TotalScoreV1" -> "LegacyTotalScore"
2023-06-06 17:25:28 +09:00
Dan Balasescu
e402c6d2b4
Write max combo attribute from base class
2023-06-02 21:53:25 +09:00
Dan Balasescu
02111e3854
Implement ScoreV1 calculation for OsuRuleset
2023-06-02 17:36:45 +09:00
apollo-dw
23d0c03fc8
Merge branch 'master' into no-combo-scaling
2022-10-24 02:17:39 +01:00
abstrakt
6e1edc4d8d
Use the StackedEndPosition
to determine the jump distance in the FlashlightEvaluator
.
...
Signed-off-by: abstrakt <abstrakt.osu@gmail.com>
2022-09-26 14:06:35 +02:00
Dan Balasescu
1e9b60f07f
Merge pull request #16524 from stanriders/move-td-reduction
...
Fix touch device difficulty reduction not affecting star rating
2022-09-21 12:51:14 +09:00
StanR
1801ae3c6a
Move flashlight TD difficulty reduction to diffcalc
2022-09-14 17:40:22 +03:00
StanR
6338b87c63
attributes
2022-09-09 17:31:52 +03:00
StanR
c2e3fcfa3f
Merge branch 'master' into move-td-reduction
2022-09-09 17:24:58 +03:00
apollo-dw
1997519364
Don't use full hit window in rhythm
2022-09-07 13:25:35 +01:00
apollo-dw
b5779508d0
Retrieve great hit window from the hit object
2022-09-06 17:10:32 +01:00
Dan Balasescu
9645bfe708
Bump difficulty calculator versions
2022-09-02 16:27:25 +09:00
apollo-dw
ad650adab0
Fix speed note count sum
2022-08-30 18:03:44 +01:00
Dan Balasescu
e34c8e4975
Merge pull request #19716 from MBmasher/fl-grid
...
Nerf repeated angles in Flashlight skill
2022-08-29 21:15:45 +09:00
MBmasher
b082dc1fe4
Slightly buff flashlight multiplier
2022-08-27 18:31:07 +10:00
MBmasher
454d868dd5
Remove unnecessary using call
2022-08-26 20:42:02 +10:00
MBmasher
249c3f868f
Compare raw angle values instead of rounding angles
2022-08-26 20:40:18 +10:00
MBmasher
5082ee26cf
Ensure a negative value cannot be added to angleRepeatCount
2022-08-26 20:30:14 +10:00
MBmasher
08cb70b093
Lessen repeated angle nerf for objects further back in time
2022-08-26 20:27:31 +10:00
MBmasher
d8854413cb
Add newline
2022-08-26 12:38:36 +10:00
MBmasher
6651e76e2e
Remove whitespace
2022-08-26 12:37:56 +10:00
MBmasher
b0e7f63361
Update angle multiplier to nerf repeated angles
2022-08-26 12:34:33 +10:00
StanR
43e471c2a5
Clamp effective miss count to maximum amount of possible braks
2022-08-16 16:12:13 +03:00
MBmasher
21c5fed45f
Adjust capitalisation
2022-08-12 14:09:16 +10:00
MBmasher
f70588a423
Add newline before brace
2022-08-12 14:08:32 +10:00
MBmasher
037f56077b
Apply Flashlight grid nerf
2022-08-12 13:29:04 +10:00
Dan Balasescu
61a3758cd9
Merge branch 'master' into pp-balancing
2022-08-11 19:46:16 +09:00
Dan Balasescu
7cac089246
Merge branch 'master' into fl-slider
2022-08-10 21:19:05 +09:00
Dan Balasescu
2c6c315e3a
Merge branch 'master' into pp-balancing
2022-08-04 15:40:46 +09:00
MBmasher
267d55a6a8
Remove osuSlider from statement
2022-07-23 14:48:39 +10:00
MBmasher
230943f698
Merge branch 'fl-slider' of https://github.com/mbmasher/osu into fl-slider
2022-07-23 14:40:54 +10:00
MBmasher
f44a5def90
Move repeat bonus to TravelDistance
2022-07-23 14:40:16 +10:00
Dan Balasescu
71912e10c4
Merge branch 'master' into fl-slider
2022-07-22 15:22:50 +09:00
Dean Herbert
aca19a005e
Add versioning to difficulty calculators
2022-07-21 18:15:25 +09:00
StanR
163c3f9c2d
Adjust multipliers to account for speed changes
2022-07-20 16:10:34 +03:00
StanR
35e841de95
Move base performance multiplier to a const
2022-07-20 15:54:49 +03:00