Magnus-Cosmos
bd7dab1d86
Add test for slider path edge case
2023-09-18 12:02:20 -04:00
Magnus-Cosmos
83584519e6
Fix extension check using control points instead of path points
2023-09-18 11:40:00 -04:00
Bartłomiej Dach
8b5a851f31
Merge branch 'master' into scoring-test-scene-catch
2023-09-18 15:15:03 +02:00
Dean Herbert
163b6df357
Merge pull request #24846 from bdach/get-reader-regression
...
Fix `MemoryStreamArchiveReader.GetStream()` failing in some cases
2023-09-18 22:06:33 +09:00
Bartłomiej Dach
25e43bd7d7
Auto-close notification after successful download
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
4cdd19bb5a
Use different copy when auto-downloading
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
3bddf4bf9a
Rename spectator-specific settings to more generic (with backwards migration)
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
27471ad170
Make missing beatmap notification simple
...
Progress didn't work for several reasons:
- It was spinning when nothing was actually happening yet
(especially egregious with autodownload off)
- It was blocking exits (as all progress notifications do)
- When actually going to download, two progress notifications would
pertain to one thing
- It wasn't helping much with the actual implementation of score
re-import, cancelling the progress notification would result in
similarly jank UX of beatmap importing but not the score.
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
b2c98da330
Reword and localise copy
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
2709c6cd67
Integrate nano beatmap card into the notification
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
775f96f061
Add very basic visual tests for missing beatmap notification
...
The full-stack test using the whole 9 `OsuGameTest` yards is unusable
for rapid development. I don't really get how you could ever design
anything using it without tossing your computer out the window.
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
47764b3012
Fix OsuTestScene.CreateAPIBeatmapSet()
not backlinking set beatmaps to the set
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
5fcd736332
Redo nano beatmap card design to fit needs better
...
Wanting to use this inside notification, it turns out that the original
design did not work very well at such narrow widths, and additionally
the typical button setup borrowed from elsewhere resulted in teeny tiny
action buttons.
To that end, slim down the design (get rid of thumbnail, audio preview,
make expandable right side slimmer), as well as change the entire panel
so that it has only one action associated with it at all times, and
clicking the panel in any place triggers that action.
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
67b5dfb9cf
Merge branch 'get-reader-regression' into missing-beatmap
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
06d1a2a316
Merge branch 'beatmap-card-nano' into missing-beatmap
2023-09-18 14:56:06 +02:00
Dean Herbert
18c18fef22
Merge pull request #24822 from bdach/scoring-test-scene-taiko
...
Add scoring test scene for taiko
2023-09-18 21:04:40 +09:00
Dean Herbert
41f2644713
Merge branch 'master' into scoring-test-scene-taiko
2023-09-18 19:55:05 +09:00
Dean Herbert
f3b6aa5435
Merge pull request #24821 from bdach/scoring-test-scene-osu
...
Refactor scoring test scene for ruleset extensibility (and move existing instance to osu! ruleset project)
2023-09-18 19:54:14 +09:00
Dean Herbert
4a00795fc5
Merge pull request #24845 from bdach/beatmap-card-nano
...
Implement nano beatmap card
2023-09-18 19:08:27 +09:00
Bartłomiej Dach
e57d7d1205
Fix MemoryStreamArchiveReader.GetStream()
failing in some cases
...
`MemoryStreamArchiveReader` introduced in
0657b55196
would previously use
`MemoryStream.GetBuffer()` to retrieve the underlying byte buffer with
stream data. However, this is not generally the method you would want,
for two reasons:
1. It can fail if the stream wasn't created in the way that supports it.
2. As per
https://learn.microsoft.com/en-us/dotnet/api/system.io.memorystream.getbuffer?view=net-7.0#system-io-memorystream-getbuffer ,
it will return the _raw_ contents of the buffer, including
potentially unused bytes.
To fix, use `MemoryStream.ToArray()` instead, which avoids both
pitfalls. Notably, `ToArray()` always returns the full contents of the
buffer, regardless of `Position`, as documented in:
https://learn.microsoft.com/en-us/dotnet/api/system.io.memorystream.toarray?view=net-7.0#system-io-memorystream-toarray
2023-09-18 11:50:36 +02:00
Bartłomiej Dach
5c2413c06b
Implement nano beatmap card
2023-09-18 11:30:14 +02:00
Bartłomiej Dach
59b9a636d3
Fix grammar in comment
2023-09-18 10:46:14 +02:00
Bartłomiej Dach
0985bb0577
Merge pull request #24739 from peppy/fix-slider-tick-misssing
...
Fix sliders not always being the correct length
2023-09-18 10:21:50 +02:00
Bartłomiej Dach
3709861132
Merge pull request #24814 from LukynkaCZE/parse-only-supported-char-uris
...
Parse only supported schemes as URIs
2023-09-18 10:20:09 +02:00
Bartłomiej Dach
d3cc6dbaa0
Fix link protocol allowlist allowing too much
2023-09-18 09:20:24 +02:00
Bartłomiej Dach
a2df123c6d
Add failing test case for fake (but still incorrectly allowed) protocol
2023-09-18 09:19:12 +02:00
Dean Herbert
be026f7ff1
Bump realm once more
2023-09-17 01:27:43 +09:00
Dean Herbert
56b5f52e83
Update all dependencies (except for Moq)
2023-09-16 15:37:31 +09:00
Dean Herbert
5eebc879d1
Merge pull request #24828 from Joehuu/fix-dummy-ar5
...
Fix dummy beatmap showing AR 5 on song select
2023-09-16 15:01:47 +09:00
Joseph Madamba
c2685da94c
Fix dummy beatmap showing AR 5 on song select
2023-09-15 20:26:17 -07:00
Bartłomiej Dach
5640dd2f74
Add mania scoring test scene
2023-09-15 13:45:05 +02:00
Bartłomiej Dach
aa8aa14a57
Add catch scoring algorithms to test scene
2023-09-15 12:58:29 +02:00
Bartłomiej Dach
c6445a327b
Add taiko scoring test scene
2023-09-15 12:58:29 +02:00
Bartłomiej Dach
ebdc501e5b
Add example scenarios and configurable score multiplier
2023-09-15 12:58:29 +02:00
Bartłomiej Dach
5eccc771c2
Turn off non-perfect judgements for catch scoring test scene
2023-09-15 12:58:29 +02:00
Bartłomiej Dach
0c22ff2a80
Refactor further to allow extensibility to other rulesets
2023-09-15 12:58:29 +02:00
Bartłomiej Dach
27b6bc3062
Add skeleton of catch scoring test
2023-09-15 12:58:29 +02:00
Bartłomiej Dach
45751dd1f2
Minimum viable changes for ruleset-specific scoring test scenes
2023-09-15 12:58:29 +02:00
Bartłomiej Dach
5c6cd879dd
Adjust slider calculations to new method API
...
Code originally read
Velocity = scoringDistance / beatLength
= BASE_SCORING_DISTANCE * SliderMultiplier * GetPrecisionAdjustedSliderVelocityMultiplier() / beatLength
Given (mathematically, floats are not generally as forgiving):
GetPrecisionAdjustedBeatLength() = beatLength / GetPrecisionAdjustedSliderVelocityMultiplier()
it follows that (inverting both sides):
1 / GetPrecisionAdjustedBeatLength() = GetPrecisionAdjustedSliderVelocityMultiplier() / beatLength
and therefore
Velocity = BASE_SCORING_DISTANCE * SliderMultiplier * GetPrecisionAdjustedSliderVelocityMultiplier() / beatLength
= BASE_SCORING_DISTANCE * SliderMultiplier / GetPrecisionAdjustedBeatLength()
and to recover `scoringDistance`
scoringDistance = Velocity * beatLength
2023-09-15 12:30:25 +02:00
Bartłomiej Dach
4275af1343
Merge branch 'master' into fix-slider-tick-misssing
2023-09-15 12:09:54 +02:00
Bartłomiej Dach
86c46a5b3f
Manually reorder objects in expected mapping
...
The test added in 64baa4d01a
was
previously failing despite applying a fix. This was caused by the fact
that in stable, the last `sliderScoreTimingPoint` (i.e. the
`LegacyLastTick` is pulled back by 36ms, but the list of all of them
is not re-sorted afterwards, causing objects to be exported in
non-chronological order to the resultant conversion mapping.
lazer correctly sorts the objects, causing a false positive.
2023-09-15 12:07:59 +02:00
Bartłomiej Dach
1ae8665a08
Merge pull request #24738 from peppy/no-legacy-difficulty-control-point
...
Remove `LegacyDifficultyControlPoint` / `LegacyBpmMultiplier`
2023-09-15 12:01:56 +02: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
Bartłomiej Dach
a6fab28461
Merge branch 'master' into no-legacy-difficulty-control-point
2023-09-15 11:14:28 +02:00
Dean Herbert
56cc2b62f0
Make not extension method
2023-09-15 18:13:04 +09:00
Dean Herbert
0031da76ff
Move to extension method and throw on non-legacy ruleset
2023-09-15 17:38:34 +09:00
Dan Balasescu
ed295effc5
Maximise bonus score
2023-09-15 15:51:05 +09:00
Bartłomiej Dach
b2b18092cf
Merge pull request #24807 from peppy/import-task-improve
...
Clean up `ImportTask` / `ArchiveReader` implementations
2023-09-14 20:24:32 +02:00
Bartłomiej Dach
9b391cd661
Merge branch 'master' into import-task-improve
2023-09-14 19:37:01 +02:00
Bartłomiej Dach
c8b18acd4d
Bring back disposal of stream after copy-out to MemoryStream
...
Was there in previous code and got removed in the refactor. I'd rather
have it than not.
2023-09-14 19:36:35 +02:00