Commit Graph

1949 Commits

Author SHA1 Message Date
Berkan Diler 6adf0ac01e Use new LINQ Order() instead of OrderBy() when possible 2024-02-08 18:01:00 +01:00
Dan Balasescu ee05743921
Bump databased star rating versions 2024-02-06 22:58:11 +09:00
Dan Balasescu c18cd65081
Merge pull request #26694 from chandler14362/hit-object-result-allocations
Avoid closure allocations when applying hit object results
2024-02-06 17:49:26 +09:00
Bartłomiej Dach 26e4b0bacb
Merge branch 'master' into settings-remaining-strings-localisation 2024-02-05 18:07:03 +01:00
Bartłomiej Dach fb80d76b4a
Apply further changes to remove remaining weirdness 2024-02-05 13:37:38 +01:00
Bartłomiej Dach 39fe078984
Merge branch 'master' into hit-object-result-allocations 2024-02-05 13:24:10 +01:00
Bartłomiej Dach efe6bb25b1
Refactor result application around again to remove requirement for fields
Co-authored-by: Dean Herbert <pe@ppy.sh>
2024-02-05 13:21:01 +01:00
Loreos7 4d324a3057 localise remaining parts of the game settings 2024-02-03 00:08:36 +03:00
Dan Balasescu 6e4d52863c
Upgrade to .NET 8 SDK 2024-02-02 21:28:51 +09:00
Dan Balasescu b44f77cee1
Update R# + fix inspections 2024-02-02 21:00:28 +09:00
Salman Ahmed 959cc7c7d9 Rewrite time range computation logic to be completely based on stable code 2024-01-29 21:26:36 +03:00
Bartłomiej Dach 2667cb8b36
Merge pull request #26703 from peppy/smaller-slider-misses
Adjust slider tick / end defaults again
2024-01-29 13:51:07 +01:00
Dean Herbert 68d5e8affc
Use a better constant for playfield positioning 2024-01-26 18:52:36 +09:00
Dean Herbert afc4b63473
Merge branch 'master' into shift-taiko-playfield 2024-01-26 18:15:30 +09:00
Dean Herbert aca1ce9972
Merge branch 'master' into fix-taiko-hit-position-v2 2024-01-26 17:51:06 +09:00
Dean Herbert b84457fd15
Merge branch 'master' into constant-taiko-input-drum-width 2024-01-26 17:18:26 +09:00
Dean Herbert e78f0bc89b
Merge pull request #26631 from frenzibyte/refactor-taiko-playfield-layout
Rewrite osu!taiko playfield adjustment container to keep playfield height constant
2024-01-26 17:17:49 +09:00
Dean Herbert 6cfd2813ed
Fix incorrect cast 2024-01-26 16:52:03 +09:00
Chandler Stowell 682dab5d83 check if parent was hit in taiko's `DrawableDrumRoll.CheckForResult` 2024-01-25 11:30:52 -05:00
Chandler Stowell 93bd3ce5ae update `DrawableHitCircle.ApplyResult` to pass `this` to its callback 2024-01-25 11:25:41 -05:00
Dean Herbert 5aa4235c3d
Simplify `TaikoLegacyHitTarget` container hierarchy 2024-01-25 21:02:22 +09:00
Dean Herbert dda96d7106
Rename `JudgementPiece` to `TextJudgementPiece` 2024-01-25 19:31:57 +09:00
Chandler Stowell d2775680e6 use stack to pass action state when applying hit results
this removes closure allocations
2024-01-24 13:13:45 -05:00
Bartłomiej Dach 20ed7e13e3
Fix back-to-front conditional in taiko processor
Would be weird to degrade a score due to *no* misses wouldn't it?
2024-01-22 19:57:12 +01:00
Bartłomiej Dach cb8ec48717
Make `RankFromScore()`'s dictionary param readonly
Just to make sure nobody tries any "funny" business.
2024-01-22 19:56:30 +01:00
Bartłomiej Dach 5bae9074aa
Merge branch 'master' into s-rank-change 2024-01-22 19:54:53 +01:00
Dean Herbert c8521b49cd
Change S rank to require no miss 2024-01-22 21:43:32 +09:00
Salman Ahmed d8cba1cbfd Move taiko playfield down a nudge to visually match stable 2024-01-20 02:08:11 +03:00
Salman Ahmed 2f618b7f35 Change taiko hit position to always match stable 2024-01-20 01:53:39 +03:00
Salman Ahmed d4fef99e1f Define constant input drum width for osu!taiko 2024-01-20 01:46:15 +03:00
Salman Ahmed 0c03326eaf Update remaining usages of playfield height 2024-01-20 01:45:39 +03:00
Salman Ahmed fa2c33c641 Upscale playfield by difference in game height as well
I honestly don't have much clue about this one but doing so matches master.
2024-01-20 01:15:15 +03:00
Salman Ahmed f5ce9eaf75 Refactor taiko playfield layout to use constant values 2024-01-20 01:15:15 +03:00
Salman Ahmed 3e17d01ceb Rewrite taiko playfield adjustment container to keep height constant 2024-01-20 00:21:34 +03:00
Salman Ahmed ce4fd6aca5 Rename `DEFAULT_HEIGHT` to `BASE_HEIGHT` 2024-01-19 23:58:58 +03:00
mouzedrift cbfc6091af apply proposed changes 2024-01-18 08:22:26 +01:00
mouzedrift a870f99877 ease out input drum animation and add delay before fading out 2024-01-18 07:19:29 +01:00
Bartłomiej Dach d335c01553
Merge pull request #26589 from peppy/key-binding-overlay-ordering
Change key overlay to use the ordering provided by rulesets
2024-01-17 13:37:26 +01:00
Bartłomiej Dach a8970d7642
Jiggle ordering a bit further to fix revert-to-default buttons showing up 2024-01-17 12:24:48 +01:00
Dean Herbert a4c0bfd099
Change taiko's default key ordering to better match display order
Fixes the issue originally fixed via
https://github.com/ppy/osu/pull/10553 in a slightly different way,
allowing more flexibility.
2024-01-17 17:37:56 +09:00
Bartłomiej Dach fc37c5e4c2
Fix taiko maps containing only drum rolls / swells not being passable without mods
Closes https://github.com/ppy/osu/issues/26370.

As was noted in the issue thread stable does not attempt to account for
such maps, and the maps are impassable in stable without No Fail.
Nevertheless that seems like a pretty anti-player behaviour and I
honestly believe that it is fine to change this in lazer.
2024-01-16 20:18:32 +01:00
Dean Herbert 0fbca59523
Fix osu!taiko judgments not being pooled correctly
They weren't being initialised correctly on initial pool.
2024-01-15 20:50:09 +09: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
Dean Herbert 831c273b45
Merge pull request #25887 from smoogipoo/restore-taiko-accuracy
Restore taiko accuracy to ScoreV2 values
2023-12-20 17:29:40 +09:00
OliBomby ec578e1d9f fix near-zero length sliders n stuff being placeable 2023-12-19 21:20:21 +01:00
Dan Balasescu 35c0eaee1c
Make taiko OKs worth 150 points 2023-12-19 14:01:05 +09:00
Dan Balasescu c1b55c7fac
Add ScoreProcessor methods to override numeric result 2023-12-19 13:50:31 +09:00
clayton f84c181573
Don't convert TaikoModRandom to/from legacy mods 2023-12-17 23:47:50 -08:00