2023.924.0
Code Quality
- Rename
SliderVelocity
toSliderVelocityMultiplier
to distinguish fromVelocity
(#24728 by @peppy) - Add debug output for skin configuration lookups (#24726 by @peppy)
- We've struggled with debugging these over the years so I think this was worth a couple of hours of work.
- Clean up
ImportTask
/ArchiveReader
implementations (#24807 by @peppy) - Remove
LegacyDifficultyControlPoint
/LegacyBpmMultiplier
(#24738 by @peppy) - Parse only supported schemes as URIs (#24814 by @LukynkaCZE)
- Refactor storyboard resource lookup to be more streamlined (#24809 by @peppy)
- Fix issues after storyboard resource lookup refactor (#24863 by @bdach)
- General improvements to README (#24875 by @peppy)
Editor
Add ability to toggle velocity change visualisation in osu!taiko and osu!mania editors (#24550 by @smoogipoo)
Stable never had this, and it's more natural to edit in linear speed.
Framework
Bump OpenTabletDriver to 0.6.3.0 (ppy/osu-framework#5999 by @X9VoiD)
Added support for over 30 new tablets. Improved support for many already supported ones. Fixed some bugs.
Smaller changes
- Fix masking broken with TexturedVertex3D (ppy/osu-framework#5987 by @smoogipoo)
- Revert masking SSBO changes (ppy/osu-resources#279 by @smoogipoo)
- Tidy up
InterpolatingFramedClock
(ppy/osu-framework#5992 by @peppy) - Fix opening links potentially causing crashes due to system misconfigurations (and log errors instead) (ppy/osu-framework#5989 by @yesseruser)
- Remove local veldrid-spirv iOS native libraries (ppy/osu-framework#5995 by @frenzibyte)
- Update all dependencies (except for Moq) (#24831 by @peppy)
- Avoid throwing exception when attempting to access
WebRequest
response in fail path (ppy/osu-framework#5998 by @peppy) - Don't block cut/copy platform actions on empty textbox selection (ppy/osu-framework#5997 by @peppy)
- Update clocks in line with framework changes (#24870 by @peppy)
- Fix crash when clicking update notification on iOS (ppy/osu-framework#5991 by @peppy)
Gameplay
- Default to normal bank if invalid sample bank is specified (#24800 by @sw1tchbl4d3r)
- Some existing beatmaps specify an invalid sample bank in the
.osu
file. While stable would fallback to the normal sample bank, lazer would - until now - just refuse to play the sample. This change replicates the behaviour of stable.
- Some existing beatmaps specify an invalid sample bank in the
Gameplay (osu!)
Allow "Difficulty Adjust" mod's extended AR selection to go below zero (#24736 by @isakvik)
Adds the ability to set negative ARs down to -10 to the difficulty adjust mod for osu!standard (for the extended range), and adds millisecond value information to the selection slider when the extended limits are active to explain what "negative AR" even is.
Remove slider head circle movement (and remove setting from "classic" mod) (#24810 by @peppy)
I've gone with the most simple approach animation wise, which feels quite good to me: the snaking path will only begin snaking after the head circle is hit. I can see that others came to roughly the same consensus in the original discussion, so I don't think there will be too much contention over this change.
Things to note:
- I considered having the slider ball not appear until the head is hit, but I don't think a change like this would sit well as it would potentially reduce readability
- I intentionally made the snaking only happen on a successful hit. So if you miss the slider head completely, the outwards snaking will never complete. This could be a good visual cue.
- The original plan I had animation wise was to have the portion of path before the slider ball's current position fade out on slider head hit, but this would mean duplicating the slider path. And I don't think this is a good idea from a performance perspective for such an edge case.
Here's how it looks in slow motion:
It's important to note that in the majority of cases, these kinds of sliders are so fast you can't even catch this visually. It's usually hidden under the head / tail. Even when it's not, it's hard to catch:
Finally, here's what missing a slider head completely looks like:
(basically, as if snaking was not enabled)
Smaller changes
- Apply further fixes to note lock when classic mod is enabled (#24720 by @bdach)
- Apply further fixes to note lock when classic mod is enabled (#24762 by @bdach)
- This change in particular moves across an edge case from stable wherein slider heads will always block input from reaching objects underneath them, until the slider is fully completed.
- Update osu! spinner ticks calculation method to better match osu!(stable) (#24661 by @frenzibyte)
- osu!(stable) calculates the spins requirement for completion in "half spins", meanwhile lazer tried to do roughly the same but applied a slightly overestimated 0.6x factor to "convert" into full spins. This PR updates the number of spins required to be closer to expectations.
- Add two spins gap before awarding bonus score on osu! spinners (#24662 by @frenzibyte)
- As it turns out, in previous lazer versions a player could gain two extra bonus spins on any spinner in any map compared to stable. For the sake of balancing, this PR mimics stable behaviour and adds a gap of two spins which need to be performed after required spins in order to receive bonus score.
- Fix sliders not always being the correct length on some beatmaps (#24739 by @peppy)
- Intentionally reintroduces some floating-point imprecisions from stable to fix a rare case wherein a particular beatmap was missing a slider tick.
- Fix sliders not always being the correct length on some more beatmaps (#24848 by @Magnus-Cosmos)
- Fixes another edge case beatmap wherein some sliders were too short.
- Fix game crash when using "Bubbles" mod on a beatmap with no hit circles (#24889 by @Fabiano1337)
- Fixes bubbles mod crashing when no HitCircle is placed in a map like in Issue #24444
First PR tell me if you want me to change anything
Gameplay (osu!mania)
- Fix osu!mania legacy skin configurations not working when notes are not skinned (#24727 by @peppy)
- Originally disabled a while back, but as far as I can tell this does not look required anymore (we have much better classic fallback support these days).
Platform
Reliability
- Fix
MemoryStreamArchiveReader.GetStream()
failing in some cases (#24846 by @bdach) - Fix broken automatic beatmap download setting migration (#24866 by @bdach)
Song Select
Add star rating / BPM / difficulty display while mod select is open (#24705 by @Givikap120)
Collapse mod presets column slightly when not in use (#24796 by @peppy)
Frees up a bit of space.
Move mod overlay difficulty multiplier display to bottom of screen (#24799 by @peppy)
In order to aid the user in knowing how their mod customisation is affecting the score multiplier, this needs to be displayed at the bottom of the screen.
Simplify multiplier display implementation (#24801 by @peppy)
Rename "difficulty multiplier" to "score multiplier" and add more animation hinting (#24802 by @peppy)
Slight vertical bump indicating direction of change of multiplier, and rename to make the actual text make sense. It's not a difficulty multiplier, it's a score multiplier.
Smaller changes
- Fix rate adjust mods not showing "x" prefix on customisation slider's tooltip (#24795 by @peppy)
- Fix dummy beatmap showing AR 5 on song select (#24828 by @Joehuu)
- Fix shift-delete not working at song select (#24878 by @peppy)
- In combination with ppy/osu-framework#5997, closes #24867
Spectator
Add notification to allow fetching missing beatmap when importing a replay (#24450 by @cdwcgt)
Smaller changes
Testing
- Improve scoring test scene usability (#24790 by @bdach)
- Fix Score V1 simulation in scoring test scene incorrectly applying multiplier (#24792 by @bdach)
- Refactor scoring test scene for ruleset extensibility (and move existing instance to osu! ruleset project) (#24821 by @bdach)
- Add scoring test scene for taiko (#24822 by @bdach)
- Fix crash when loading player instance without exiting previous instance (#24854 by @frenzibyte)
- Add scoring test scene for catch (#24823 by @bdach)
- Add scoring test scene for mania (#24824 by @bdach)
- Fix
TestFriendScore
intermittently failing due to randomness (#24880 by @bdach)
UI
Integrate past usernames tooltip to user profile overlay (#24782 by @ItsShamed)
Highlight friend's scores in gameplay leaderboards (#24730 by @cdwcgt)
Smaller changes
- Add animation support for beatmap status pills (#24722 by @peppy)
- Update badge header background color in line with web (#24735 by @Joehuu)
- Use
@2x
variant of profile badges (#24734 by @Joehuu) - Update localisations (ppy/osu-resources#280 by @peppy)
- Implement "nano" size beatmap card (#24845 by @bdach)
- Used in the new notification fired when attempting to import score without the beatmap present.
New Contributors
- @isakvik made their first contribution in #24736
- @Givikap120 made their first contribution in #24705
Full Changelog: 2023.908.0...2023.924.0