Thanks for following the lazer journey!
A bit of a delayed release this time as we work on some larger efforts (renderer, anticheat etc.)
Not slowing down, just tackling the big tasks!
Code Quality
- Apply a few new rider quick fixes (ppy/osu-framework#5645 by @peppy)
- Address todos relating to init-only usages (#22568 by @Joehuu)
- Remove code bloat from
ClickableAvatar
(#22588 by @Joehuu) - Move taiko-specific property out of
DrawableHitObject
(#22617 by @peppy) - Remove unnecessary containers in
LetterboxOverlay
(#22628 by @EVAST9919) - Implement
ColourInfo.Interpolate(Quad)
function (ppy/osu-framework#5648 by @EVAST9919) - Simplify and rename
SkinnableTargetComponentsContainer
(#22647 by @peppy) - Move MaximumJudgementOffset to HitObject (#22292 by @ekrctb)
- Refactor structure and naming of skin-related classes (#22648 by @peppy)
- Move judgement result revert logic to Playfield (#22291 by @ekrctb)
- Use
Overlays
container rather thanKeyBindingInputManager
for flashlight (#22635 by @peppy) - Fix grammar mistake in taiko relax mod description (#22748 by @OpenSauce04)
- Rename
SettingSource
tests to match attribute name (#22749 by @peppy)- I always struggle remembering which one is correct, but let's prefer the one from the attribute.
- Use
ColourInfo.Interpolate(Quad)
where possible (#22755 by @EVAST9919)- Continuation of ppy/osu-framework#5648
Editor
Automatically select the closest timing point on entering the timing screen (#22597 by @peppy)
Feels more natural when coming from stable.
Add toggle to disable automatic seeking to object after placement (#22686 by @MaxKruse)
Until now, some placement scenarios in the editor saw time being automatically seeked forward, to help wwith meapping efficiency (osu!mania placement in general & osu! placement when distance snap grid was turned on).
This settings now provides the ability to disable this.
Framework
- Add a way to raise the window to frontmost (ppy/osu-framework#5640 by @Susko3)
- Not yet used in osu!, but can be in the future to bring the window into sight when importing via association, as an example.
- Fix veldrid pipeline caching not working properly (ppy/osu-framework#5653 by @frenzibyte)
- Fix potential crash when attempting to select a directory on iOS (ppy/osu-framework#5656 by @peppy)
- Fix
osu.Framework.iOS.props
overwriting previous warning exclusions (ppy/osu-framework#5657 by @frenzibyte) - Update framework (#22751 by @peppy)
- Add BindableColour4 (ppy/osu-framework#5660 by @Poyo-SSB)
Gameplay
Fix "skip" key binding no longer working in replay playback (#22598 by @peppy)
Smaller changes
- Fix song progress incorrectly displaying
timeLeft
counter after rotation (#22600 by @Terochi)- Broke in the last release.
- Don't show "resume" cursor when autopilot mod is turned on (#22338 by @Pasi4K5)
- Fix hitsounds not playing correctly in some osu!mania / osu!taiko scenarios (#22659 by @peppy)
- While we correctly support this at a decoding level, the special case of taiko / mania playing back samples in a non-standard method meant that things would fall apart there. This manifests in beatmaps which adjust sample sets or volumes mid-object (think osu!taiko drum roll or osu!mania hold notes), where the actual playback would not respect these adjustments.
Gameplay (osu!)
Fix hit circle late-miss fading differences compared to stable (#22543 by @Cwazywierdo)
In stable, if a hit circle is not hit on time it fades out until it becomes impossible to hit and registers as a miss. In lazer, a hit circle doesn't start to fade out until it's already registered as a miss. This change mathces the classic feel of note fade.
Note that this is only applied to "classic" mod for now.
Fix random white pixels on slider paths (ppy/osu-framework#5644 by @goodtrailer)
See white pixel:
Gameplay (osu!mania)
Fix osu!mania long notes not always displaying correctly since recent update (#22599 by @peppy)
Hopefully the final fix for osu!mania long note skinning. We've tested multiple skins now to ensure compatibility!
Gameplay (osu!taiko)
When hitting early or late, snap the note flying animation to the judgement area (#22553 by @OpenSauce04)
Previously we would always have the animation start from the hit location, which gives more visual feedback but is not what users were used to (from stable). For now, let's go back to how things were.
Note that this is only applied to "classic" mod for now.
Fix converted beatmaps occasionally having incorrect note types (#22589 by @sw1tchbl4d3r)
The current behavior breaks some taiko maps using the hitsample filename, like on this map at 00:45:961. The note is a normal don/red note in lazer, while it should be a strong one like in stable.
Smaller changes
- Make
LargeBonus
a validHitResult
in taiko (#22587 by @sw1tchbl4d3r)
Localisation
- Make
CompletionText
inProgressNotification
aLocalisableString
(#22675 by @cdwcgt) - Update localisations (ppy/osu-resources#248 by @peppy)
Online
Fix chat getting in a join loop when clicking on channels in the listing quickly (#22544 by @peppy)
Smaller changes
- Add support for
Watching
andSpectating
activities (#22529 by @ItsShamed) - Add
TestingBeatmap
andModdingBeatmap
activities to beatmap editor screens (#22624 by @Joehuu)- The editing activity logic is a bit different from stable. Stable seems to check for username, while this PR checks for online ID. Seems better for cases where users change their names. I also want to add a check if a beatmap is ranked and display "editing" instead of "modding" as it is already final/non-moddable, but keeping it simple for now.
Results
Improve readability of AccuracyCircle
(#22554 by @Walavouchey)
This fixes three minor issues:
- The accuracy circle gauge could sometimes look like it landed on the wrong rank.
- Most of the
RankBadge
s were positioned at the start of their corresponding sectors instead of in the middle. There aren't any lines connecting the two or anything so this approach wasn't as legible. - The D rank badge would only appear with at least 35% accuracy, when in reality a D rank represents a pass of any accuracy below 70% (low values are achievable with e.g. No Fail).
Before:
After:
Settings
Allow tablet area to be dragged (#22697 by @ggliv)
Smaller changes
Skin Editor
Add skin editor undo / redo support (#22506 by @peppy)
Fix skin component previews on toolbox buttons having incorrect size for one frame (#22607 by @Joehuu)
Improve the feel of hovering components in the skin editor toolbox (#22672 by @peppy)
Previously the expand and contract of elements were not aligned chronologically, which could create ugly changes in content height of the view itself (making it very hard to target buttons once one or more were expanded).
Before:
After:
Only show skin blueprint labels when selected or hovering (#22671 by @peppy)
Just to clean things up visually.
Improve the appearance of skin blueprints (#22670 by @peppy)
Before:
After:
Also adds tweening to anchor point movement, because I think it will help greatly with user understanding of exactly what is going on.
Add skin editor clipboard support (#22650 by @peppy)
Works across different screens and different skins.
Add the ability to select a target layer in the skin editor (#22674 by @peppy)
Consider this a first step. I'd want the layer selection to be a radio button list rather than a dropdown. Just getting the general structure together so we can test this functionally before improving the UX.
This can immediately be used in gameplay to add elements which are saved against specific rulesets, rather than globally. More layers will be available in the future!
Add ability to send selected skin components to front or back (#22717 by @peppy)
An easy way of allowing the user to manage depth without creating a rearrangeable list display.
Skinning
Add support for per-ruleset skin layouts (#22673 by @peppy)
For now, this allows the new functionality in the skin editor. Going forward, this will allow the per-ruleset defaults (for legacy skins) to be implemented. Things like having the health bar vertical and attached to the playfield in osu!mania.
Song Select
Adjust song select background dimming to be more evenly applied (#22645 by @peppy)
There were a few comments around the place over song select looking too bright when blur is disabled. Which is most definitely is. This is due to dim not being applied at all to the portion of the background which isn't covered by the "wedge" on the left.
To fix this, I've changed the global background dim at song select to match osu-stable, then reduced the additional dimming of the wedge. I tried applying to the blurred version as well, but it looks bad so I fenced the change off to only when blur is not applied. For those interested, reverting the second commit can allow testing with blur on too.
Before:
After:
Add triangles animation to mod select overlay headers (#22669 by @EVAST9919)
Smaller changes
- Implement a sheared slider for the updated design (#22432 by @mk56-spn)
- For future use.
- New song select footer design implementation (#21491 by @mk56-spn)
- Coming to a song select near you in the future!
Testing
- Add a way to hide visual tests by using
(Un)SupportedOSPlatformAttribute
(ppy/osu-framework#5643 by @Susko3) - Refactor
GameplaySampleTriggerSource
test to not be realtime dependent (#22658 by @peppy)
UI
Display tournament banner on user profile (#22566 by @Joehuu)
Smaller changes
- Fix comments having too much padding at the bottom (#22507 by @Joehuu)
- Fix beatmap cards not showing context menu on user profile (#22545 by @Joehuu)
- Fix beatmap cards having incorrect hover sounds on contained buttons (#22633 by @Joehuu)
- Fix beatmap card song preview progress sometimes showing past progress for one frame (#22632 by @Joehuu)
UX
Add ability to abort dangerous dialog button on hover lost (#22604 by @Joehuu)
Select imported skin when clicking on an import complete notification (#22629 by @Cootz)
New Contributors
- @Walavouchey made their first contribution in #22554
- @MaxKruse made their first contribution in #22686
Full Changelog: 2023.207.0...2023.301.0