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
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
StanR
9c9f32b435
Merge branch 'master' into pp-balancing
2022-07-20 15:40:29 +03:00
StanR
633f6fe620
Increase global multiplier
2022-07-18 21:58:11 +03:00
MBmasher
42b9dc877d
Divide slider bonus by repeat count
2022-07-18 16:14:06 +10:00
MBmasher
72c096f9af
Update xmldoc
2022-07-18 15:59:20 +10:00
MBmasher
7c680afc3c
Change initialisation of osuSlider
2022-07-18 15:59:00 +10:00
MBmasher
204fbde07b
Remove debug code
2022-07-18 15:58:32 +10:00
MBmasher
8413c40442
Remove debug code
2022-07-18 15:58:09 +10:00
MBmasher
68caafa210
Update xmldoc
2022-07-17 17:02:30 +10:00
MBmasher
dae698638c
Add repeat bonus to Flashlight, move repeat multiplier to AimEvaluator
2022-07-17 16:56:05 +10:00
MBmasher
a950deb7db
Re-implement slider changes to FlashlightEvaluator
2022-07-17 16:27:55 +10:00
Jamieson Berida
a0dd6cbab3
Merge branch 'master' into fl-slider
2022-07-17 16:18:18 +10:00
StanR
760742e358
Move relax global multiplier to diffcalc
2022-07-14 00:42:50 +03:00
StanR
0983e4f81e
Increase 50s nerf again
2022-07-12 17:57:00 +03:00
StanR
58c687172b
Reduce low AR bonus
2022-07-12 10:52:44 +03:00
apollo-dw
5b96f67a8b
Remove non-overlapping velocity buff
2022-07-04 20:49:26 +01:00
StanR
4f77637946
Update desmos
2022-07-04 21:52:57 +03:00
StanR
bf738aa04f
Account for extreme ODs in relax multipliers
2022-07-04 21:49:45 +03:00
StanR
afa3f8cda3
Make relax ok/meh multipliers dependent on OD
2022-07-04 20:53:20 +03:00
StanR
11eb344476
Reduce 50s nerf further
2022-07-04 20:28:15 +03:00
StanR
db8bb07c78
Reduce 50s nerf effect
2022-07-04 20:10:26 +03:00
StanR
212360f67e
Make relax ok/meh nerfs less drastic, add flashlight nerf, remove ar bonus for relax
2022-07-04 19:59:30 +03:00
StanR
45258b3f14
Buff aim slightly
2022-07-04 19:53:34 +03:00
Dan Balasescu
d4aa18112b
Merge pull request #15035 from emu1337/speed-acc-scaling
...
Change speed accuracy scaling to be closer to worst case scenario
2022-06-29 18:04:23 +09:00
Dan Balasescu
6d91c0f375
Resolve inspection issue
2022-06-29 16:57:11 +09:00
Dan Balasescu
ad95f037de
Prevent another case of potential div-by-0
2022-06-29 16:42:53 +09:00
Dan Balasescu
e6ccca8045
Fix inspection
2022-06-29 16:29:17 +09:00
Dan Balasescu
0211fe7ae8
Fix exception + possible div-by-0
2022-06-29 16:29:14 +09:00
Dan Balasescu
2989803b71
Merge branch 'master' into speed-acc-scaling
2022-06-29 16:15:20 +09:00
Dan Balasescu
34b9118fb3
Cleanup by using const value
2022-06-29 16:10:06 +09:00
Dan Balasescu
7d743994bc
Merge branch 'master' into FL-diffspike
2022-06-29 16:05:53 +09:00
Dan Balasescu
0fd2c010e5
Remove NRT disables from attributes classes
2022-06-27 16:07:15 +09:00
Dan Balasescu
0579780bb8
Add IBeatmapOnlineInfo parameter and use to extract more data
2022-06-27 16:07:15 +09:00
Dan Balasescu
a7de43ade6
Add attribute ID
2022-06-21 19:31:45 +09:00
apollo-dw
630bd244d5
Inherit StrainSkill instead
2022-06-21 10:01:11 +01:00
apollo-dw
0f6f000188
Remove difficulty spike nerf
2022-06-21 09:13:44 +01:00
emu1337
26b0815fc8
fixed casting the wrong skill
2022-06-20 04:19:07 +02:00
emu1337
ecbbd29c9b
Merge branch 'master' into speed-acc-scaling
...
# Conflicts:
# osu.Game.Rulesets.Osu/Difficulty/OsuDifficultyAttributes.cs
# osu.Game.Rulesets.Osu/Difficulty/OsuDifficultyCalculator.cs
# osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs
# osu.Game.Rulesets.Osu/Difficulty/Skills/Speed.cs
2022-06-20 04:15:35 +02:00
Dan Balasescu
1bd6198da2
Merge pull request #18692 from apollo-dw/dbltap
...
Rework doubletap detection in osu!'s Speed evaluator
2022-06-19 11:03:16 +09:00
apollo-dw
c4d69405bf
Adjust speed ratio fraction to avoid division by 0
2022-06-17 21:18:16 +01:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
apollo-dw
2634e56944
Further adjustments
2022-06-14 16:16:12 +01:00
apollo-dw
737197591d
Change doubletap algorithm
2022-06-13 17:49:56 +01:00
Dan Balasescu
f73142c50f
Remove for loop
2022-06-13 20:43:56 +09:00
Dan Balasescu
b300bc1e24
Fix ever-increasing flashlight-strain
2022-06-13 20:41:32 +09:00
apollo-dw
4e3dd1ce18
Merge remote-tracking branch 'master/master' into evaluators
2022-06-13 12:27:02 +01:00
apollo-dw
e7602563fb
Fetch lastlast object from beatmap, not objects list
2022-06-10 10:28:14 +01:00
Dan Balasescu
6d2a2ba7d6
Rename Position -> Index
2022-06-09 18:49:11 +09:00
apollo-dw
774ac13900
Add xmldocs
2022-05-28 14:09:08 +01:00
apollo-dw
b631cefc55
Move object difficulty calculation to evaluator methods
2022-05-28 13:29:09 +01:00
apollo-dw
777d9af0f5
Move object difficulty calculation to evaluator methods
2022-05-28 13:28:04 +01:00
apollo-dw
66a6467403
Pass object position to the object
2022-05-26 19:26:14 +01:00
Dan Balasescu
8a4f52287c
Re-invert distances, cleanup, use actual normalised distance
2022-05-25 13:38:36 +09:00
Dan Balasescu
cde06ecf17
Apply code reviews
2022-05-25 13:03:08 +09:00
Dan Balasescu
7b2a5d4f76
Adjust xmldoc for correctness
2022-05-25 13:01:27 +09:00
apollo-dw
1ef711de41
Return null for out of range objects
2022-05-24 16:40:24 +01:00
apollo-dw
30b9e0e7ab
Use object list size for object position
2022-05-24 16:30:25 +01:00
apollo-dw
5dbec92d9e
Update comments
2022-05-23 22:17:29 +01:00
Jamieson Berida
c9b00a2302
Merge branch 'master' into fl-slider
2022-05-23 17:42:12 +10:00
apollo-dw
26985ca8af
Store hitobject history in the hitobject
2022-05-22 16:26:22 +01:00