osu icon indicating copy to clipboard operation
osu copied to clipboard

BPM display in mods overlay

Open Feodor0090 opened this issue 2 years ago • 9 comments

This PR adds BPM display next to difficulty multiplier display into mods overlay. This allows users to see final bpm after applying custom dt/nc/ht without closing the overlay. изображение

Issues here:

  1. Label should be shorten to just "BPM" or localized. Which is better and in which class should i put field with localisable string?
  2. Now, it will be visible only if ShowTotalMultiplier is true, because i share container with DifficultyMultiplierDisplay. I think that it's ok, because DMD is hidden only in freemods selection where this control is useless anyway.
  3. Currently, opening customization panel shifts the whole overlay up, making this control invisible. Something to fix as a follow-up.
  4. WU/WD/AS are not supported, like in beatmap wedge.

Test scene included.

Feodor0090 avatar Aug 23 '22 21:08 Feodor0090

Dunno about this from a design standpoint. I was hoping a design for this would arrive from @arflyte but no luck I guess. Also note that in this form, this display is potentially taking space away from a search box that I was going to add.

I'll review code tomorrow.

bdach avatar Aug 23 '22 22:08 bdach

Mentioned in OP, but this is kinda useless as it stands:

Uploading osu! 2022-08-24 at 05.27.25.mp4…

@arflyte ?

peppy avatar Aug 24 '22 05:08 peppy

this display is potentially taking space away from a search box

Mods names are not so long. I think half of the screen will be enough for it. If we short the labels to just "BPM" and "Score", there will be space to add even more such displays.

Mentioned in OP, but this is kinda useless as it stands

My suggestion here is to move container with this displays to a higher level, forex. in ModSelectOverlay itself. They won't be shifted out of screen while customization panel is open.

Feodor0090 avatar Aug 24 '22 10:08 Feodor0090

Is this intended to be dependent on #19991 now?

peppy avatar Aug 29 '22 16:08 peppy

After same experiments, IMO the best way is just to duplicate effect displays to ModSettingsArea. I also added a simple animation to create feeling that it's the same panel, just moved off-screen.

https://user-images.githubusercontent.com/53872073/187276542-6c66bc8f-15f9-4ee0-ae84-3be1344deece.mp4

Will this be accepted?

Is this intended to be dependent on #19991

Yes.

Feodor0090 avatar Aug 29 '22 19:08 Feodor0090

Will this be accepted?

I'm not a fan of duplicating the displays, personally, from a functional standpoint. The visual look also leaves much to be desired for me (the alignment of the items seems really weird for me).

For reference, some of the newer figma designs just get rid of the customisation panel at the bottom in favour of a dropdown, which would potentially solve this. That said we direly need input from @arflyte here whether that is something that's final or just a proposal (third time the charm, maybe?)

bdach avatar Aug 29 '22 19:08 bdach

I think the current problem with the design is that it's not suitable to display many types of info as it would clutter up everything (it's just bad to have a lot of boxes)

So probably, as a long-term solution, I have to design a better information container that can house multiple info, which could also be future-proof.

arflyte avatar Aug 30 '22 05:08 arflyte

@Feodor0090 I think it's fine to duplicate the display as you proposed. Please apply this change and we'll take it from ther.

peppy avatar Sep 08 '22 06:09 peppy

There is a failing test that i am not sure what to do with - TestSceneFreeModSelectOverlay.TestCustomisationNotAvailable(). It's checking the height of customization panel to know is it opened or not. The problem here is that after my changes mod overlay won't contain a customization panel at all, if it is not available (AllowCustomisation is false).

How should I adjust it? Or maybe just remove (there is no customization panel => it can't open anyway)?

Feodor0090 avatar Sep 16 '22 17:09 Feodor0090

Superseded by https://github.com/ppy/osu/pull/24705.

Joehuu avatar Sep 06 '23 06:09 Joehuu