Audio
New new osu!mania ruleset selection sample (ppy/osu-resources#345 by @nekodex)
Smaller changes
- Fix old looping samples not stopping when replacing a
SkinnableSound
'sSamples
(#30389 by @bdach) - Increase ducking duration when selecting osu!mania ruleset (#30423 by @nekodex)
- Extends the duck duration to sit better with the new longer osu!mania selection sample.
Code Quality
- Enable NRT in
LocalisableStringEqualityComparer
(ppy/osu-framework#6386 by @smoogipoo) - Explicitly set S3 timeouts & retry counts (ppy/osu-server-spectator#246 by @bdach)
- Recommend C# Dev Kit extension on VSCode (#30246 by @Joehuu)
- Clamp scale with lower and upper bounds (#30080 by @OliBomby)
- Improve diffcalc workflow with explicit wait + logs (#30318 by @smoogipoo)
- Update SDL3-CS (ppy/osu-framework#6389 by @hwsmm)
- Update translations (ppy/osu-resources#343 by @peppy)
- Fix argument order in diffcalc workflow (#30319 by @smoogipoo)
- Expose no-op constructors as
protected
(#30335 by @peppy) - Refactor
BeatmapAttributeText
to compute values on the fly (#30320 by @smoogipoo) - Change convert-to-ternary warning to hint (#30373 by @smoogipoo)
- Update all dependencies (ppy/osu-server-spectator#247 by @peppy)
- Move TestTouchInputAfterTouchingComposeArea to separate test scene (#30408 by @OliBomby)
- Ignore casing when matching mods acronyms (#30458 by @smoogipoo)
- Add attribute to hide arbitrary drawables from draw visualiser (ppy/osu-framework#6411 by @smoogipoo)
- Fix texture wrapping not updating when atlas is already bound (ppy/osu-framework#6410 by @Jumprocks1)
- Add better support for adding form file parameters to web requests (ppy/osu-framework#6412 by @bdach)
- Fix intermittent beatmap recommendations test (#30526 by @smoogipoo)
- Replace
MultiplayerRoomComposite
with local bindings (#30525 by @smoogipoo) - Fix up + improve CI test reporting workflow (#30543 by @smoogipoo)
- Allow customising
ScrollContainer
's scrollbar mapping (ppy/osu-framework#6415 by @peppy) - Globalise
CountDifficultStrains
within StrainSkill (#30534 by @Lawtrohux) - Make draw visualiser follow proxied drawables to their visual layer (ppy/osu-framework#6420 by @smoogipoo)
- Allow
CachedModelDependencyContainer
to cache models with non-bindable fields (ppy/osu-framework#6416 by @smoogipoo) - Refactor step buttons + improve assertion messages (ppy/osu-framework#6418 by @smoogipoo)
- Fix error triggered in label step execution not being logged (ppy/osu-framework#6421 by @frenzibyte)
- Fix CI test report workflow (ppy/osu-framework#6422 by @bdach)
- Simplify convertible hitobject parsing and add
IHasLegacyHitObjectType
(#30578 by @smoogipoo)
Difficulty
- Remove estimations where score data is available for osu! difficulty calculations (#27691 by @Finadoggie)
- Cap effective miss count to total hits (#30455 by @smoogipoo)
- osu!taiko: Implement stamina consideration for Mono (single-coloured) patterns. (#30460 by @Lawtrohux)
- osu!taiko: Bring back convert nerf to fix overweighted taiko difficulty (#30456 by @smoogipoo)
- Reset
effectiveMissCount
when calculating pp (#30518 by @Givikap120) - Split diffcalc workflow to add concurrency group (#30566 by @smoogipoo)
- Clamp estimateImproperlyFollowedDifficultSliders for lazer scores (#30544 by @Finadoggie)
- Fix NaN PP counter values while SR is 0 (#30618 by @Natelytle)
- Clamp estimateImproperlyFollowedDifficultSliders for lazer scores (#30544 by @Finadoggie)
Editor
Add key binding for cycling grid type (#26303 by @OliBomby)
Using the tool boxes on the right frequently is quite annoying, so I also added a keybind for cycling the grid type (H). I chose this key because its right next to the grid spacing cycle hotkey (G) and unused. It makes sense to group the grid property changing hotkeys physically close on the keyboard. An alternative hotkey could be like Shift+G or Shift+G, Ctrl+G is taken.
There's also a test for the grid placement tool in here which apparently got left behind when I was splitting up this PR into parts. I guess it can't hurt to have it so here it is.
Fix drawing slider with touch inserts a random control point at beginning (#30263 by @frenzibyte)
Add toggles and hotkeys for configuring sample addition bank (#28863 by @OliBomby)
This PR adds a new left toolbox for configuring the sample addition bank of the selected hit objects. The toggles for the sample bank now only affect the hitnormal sample of the selection.
The hotkeys are Alt-Q~R
. This differs from stable's Ctrl-Q~R
because those hotkeys are already taken by other tools in lazer.
Using Alt-Shift-Q~R
sets both sample bank and sample addition bank simultaneously, like previous functionality.
The same hotkeys are also added to the sample edit popover on the timeline.
Improve scale/rotate popover UX to better match user expectation (#30315 by @OliBomby)
Added keyboard step values to the slider bars which match the keyboard step in stable. This is especially nice to use with ppy/osu-framework#6390
Also made the popovers close when you press Enter (or Spacebar). This matches the behaviour in stable so now all the scale/rotate muscle memory should carry over nicely to lazer.
Add support for "auto" sample bank additions in the editor (#29648 by @OliBomby)
Keep sidebars expanded by default (#30387 by @peppy)
They will not only contract if the user chooses to have them contract (new setting in the View
menu) or if the game isn't wide enough to allow full interaction with the playfield while they are expanded.
Allow scaling down to 5% in popover scale dialog (#30482 by @peppy)
Remember origin settings for scale/rotation popover (#30484 by @peppy)
Fix drum roll editor blueprint size & input handling (#30511 by @bdach)
2024-11-05.13-09-55.mp4
Fix effect point scroll speeds below 0.1x not being encoded properly (#30509 by @bdach)
Add ability to hide breaks from timeline (#30505 by @peppy)
This was another IRL request from a mapper / team member. The rationale here is that it can be very annoying to map with break time enabled if you have a large gap in the beatmap you are trying to fill with hitobjects, as you are placing objects on top of a very gray area:
osu.2024-11-05.at.04.06.40.mp4
Add ability to automatically move already-placed objects when changing timing settings (#28382 by @Hecatia-Lapislazuli)
Smaller changes
- Fix split control point context menu option not showing up on newly created control points (#30189 by @OliBomby)
- Ensure at least one scale popover axis is active at any time (#30219 by @bdach)
- Add breathing room to seek back between control points in editor (#30328 by @TaterToes)
- Fix timeline blueprints sometimes causing crashes due to current placement blueprint becoming unsorted (#30377 by @bdach)
- Fix osu!mania flip operations sometimes not preserving selection in mania editor (#30284 by @bdach)
- Fix several cases of deselection not correctly terminating drag operations on slider selection blueprint (#30294 by @bdach)
- Fix editor sidebar resizing on hover repeatedly when polygon popover is opened (#30450 by @Joehuu)
- Fix catcher size and hyperdashes indication on adjusting CircleSize (#30300 by @Darius-Wattimena)
- Fix drum rolls losing width on strong state toggle in editor (#30508 by @bdach)
Gameplay
Fix argon song progress bar tooltip showing during active gameplay (#30199 by @bdach)
Decrease the time it takes to quick retry by ~650 ms (#30261 by @peppy)
Removes an arbitrary delay from the quick retry process. Now it is only limited by load speed (which will improve in the future).
Remove hold-to-confirm delay when pausing using keyboard shortcuts (#30309 by @peppy)
This keeps coming up (latest case) so I think we need to listen to users and make this change. Matches stable behaviour.
Make quick restart even faster (#30603 by @peppy)
This is a second pass at refining the quick restart experience.
- More arbitrarily induced delays are culled
- Settings are hidden now (since interacting with them is nigh impossible given the faster restart speed)
- Some animations are hidden to make the process less jarring
- Parallax is disabled to stop the background displacing weirdly
Smaller changes
- Handle mid-play mod changes (ppy/osu-server-spectator#245 by @bdach)
- Do not fall back to beatmap's original ruleset if conversion fails (#30424 by @bdach)
- Fix break overlay grades not using localised string (#30572 by @Joehuu)
- Fix occasional flash when quick exiting / retrying from player (#30623 by @peppy)
Gameplay (osu!)
Fix slider ticks and repeats incorrectly moved to position of head when strict tracking and any conversion mod that moves objects is active (#30281 by @bdach)
Fix cursor rotating with barrel roll mod active (#30326 by @jhk2601)
Some may argue that cursor rotation is intended behavior but it looks odd and feels pretty janky, especially on abnormal cursors like the issue describes. Would be better if cursor rotation could be adjusted in existing switch statement but didn't want to mess with existing implementation to allow that and this way is simple and readable as well.
Mod Select
Prioritize selecting exact searched acronym with select keybind (#30330 by @jhk2601)
Before, searching "SY" for the synesthesia mod and pressing enter would select EZ, since selection was prioritized by column/descending order instead of accuracy.
The mod which will be selected is also slightly highlighted with this change.
Now Playing
- Fix track restarting when trying to switch track change direction with shuffle active (#30215 by @bdach)
- Fix shuffle not actually changing the track sometimes (#30277 by @bdach)
Online
Fix several cases where beatmaps would lose their online links during import (#30453 by @bdach)
Smaller changes
- Fix discord RPC complaining yet again if given a single space character as activity state / details (#30198 by @bdach)
- Send mods in spectator frame headers (#30137 by @bdach)
- Fix currently online display hitting rate limits (#30146 by @bdach)
Overlays
Add search box to chat overlay (#30382 by @Maks1mio)
2024-10-22.012627.mp4
Add search textbox to friends display (#30499 by @bdach)
2024-11-04.14-38-50.mp4
Add the ability to add/remove friend from profile screens (#30467 by @cdwcgt)
Platform
Use SDL3 windowing by default (ppy/osu-framework#6396 by @smoogipoo)
Things might break. If they do we'll deal with it.
Smaller changes
- Fix game deadlocking on startup when set to single thread mode (#30164 by @bdach)
- Fix android screen orientation locking in portrait mode during gameplay when exiting/re-entering app (#30459 by @Joehuu)
- Add extended logging to NVAPI operations (#30547 by @bdach)
- Fix SDL3 attempting to render IME composition text (ppy/osu-framework#6413 by @bdach)
- Fix incorrectly translated NVAPI ABI (#30560 by @smoogipoo)
Reliability
Settings
Add functionality to mass reset offsets (#30239 by @rozukke)
Quick util to reset offsets, convenient after changing global offset or otherwise messing with your setup audio. Have sorely missed this functionality!
Smaller changes
- Prevent key bind conflict popup when default key is assigned to secondary binding (#30454 by @lukektx)
- Now when restoring key binds to defaults, doesn't check for conflicting key binds from the same action.
- Fix retry button on storage unavailable dialog not reopening realm if retry succeeds (#30545 by @bdach)
Skinning
Add "Use relative size" setting to argon & default song progress (#30334 by @SupDos)
2024-10-18.04-33-57_edit.mp4
Fix playfield skinning layer no longer correctly rotating with the playfield (#30375 by @bdach)
Make BeatmapAttributeText
show values inclusive of mods (#30321 by @smoogipoo)
Smaller changes
- Fix HUD elements shifting in unintended manner when partially off-screen flipped skin elements are present (#30535 by @bdach)
Song Select
Add ranked date and submitted date filtering to song select (#30145 by @WitherFlower)
Implements ranked
and submitted
filters, following the same logic as the osu-web search, which is described in ppy/osu-web#7358
As a brief summary :
- Dates in the formats
yyyy
,yyyy-mm
andyyyy-mm-dd
are accepted. - The valid separators are
-
,/
and.
- Dates are treated as UTC to keep search results consistent between web and client.
- I did not add support for hours, minutes and seconds as I don't think it's really useful, but I can make the addition if deemed necessary
Don't delete scores when deleting beatmaps (#30379 by @peppy)
This means if you delete a beatmap then reimport it, your scores will remain.
Add context menu option to copy link to an online score (#30496 by @bdach)
Reduce semi-opaque layers at song select (#30580 by @peppy)
I've chosen values here that are moving in the direction of the new design without overhauling everything. I figure this will if anything lead to less unexpected change when we finally drop the new design.
- I know that there's still some transparency. I did this because it helps keep all current elements / colours contrasting without too much effort.
- I completely removed the transparency adjustments on the beatmap panels. This always looked bad due to being applied per-layer, and I don't think it added much.
Before | After |
---|---|
Smaller changes
- Fix crashes when attempting to change from a custom ruleset with mods selected to another (#30195 by @bdach)
- Fix beatmap selection being lost during update process (#30385 by @peppy)
- Fix multiplayer song select not correctly applying filter sometimes (#30425 by @bdach)
- Fix top rank display not showing up on beatmaps with many difficulties (#30579 by @peppy)
UI
Allow slider bar to take focus and accept keyboard input while not hovered (ppy/osu-framework#6390 by @OliBomby)
This change allows you to click the slider bar, have it gain focus, and then adjust the slider bar with the keyboard while the cursor is not hovering the slider bar. This matches the user expectation because you can do the same thing in osu! stable.
osu.Game.Rulesets.Osu.Tests_asCoVNwym2.mp4
Adjust slider bar implementations to show focused state (#30413 by @peppy)
Smaller changes
- Fix SelectionBox buttons freezing when button is triggered via key event (#30206 by @minetoblend)
- Do not show daily challenge conclusion notification on disconnection (#30218 by @bdach)
- Respect "Prefer metadata in original language" toggle in beatmap deletion dialog (#30274 by @shinmorisawa)
- Allow more localisation in skin editor (#30231 by @SchiavoAnto)
- Remove default key binding for "Toggle FPS counter" (#30264 by @LBlend)
- This is so it can be used for editor functionality.
- Group
HitResult
s with the same name into one column in beatmap overlay's leaderboard (#30245 by @424ever) - Highlight maximum combo and accuracy on user best score display to match web (#30346 by @wezwery)
- Add hover background back to
ClickablePlaceholder
(#30383 by @CloneWith) - Quote source text when searching for it via click (#30400 by @peppy)
- Fix add/edit playlist item operations not checking ruleset conversion eligibility (ppy/osu-server-spectator#248 by @bdach)
- Remove
by the beatmap creator
inPlayerLoaderStrings
(#30489 by @iSlodinxOsu)
New Contributors
- @LBlend made their first contribution in #30264
- @WitherFlower made their first contribution in #30145
- @wezwery made their first contribution in #30346
- @Maks1mio made their first contribution in #30382
- @TaterToes made their first contribution in #30328
- @Finadoggie made their first contribution in #27691
- @lukektx made their first contribution in #30454
- @iSlodinxOsu made their first contribution in #30489
Full Changelog: 2024.1009.1...2024.1115.1