Salman Ahmed
48bf3f1385
Migrate mod select overlay footer content
2024-06-30 06:50:36 +03:00
Salman Ahmed
467d7c4f54
Refactor game-wide layout order of footer to fix depth issues with overlays and improve UX
...
With this new order, the logo can be easily moved to display in front of the footer in `SongSelectV2` without breaking experience when footer-based overlays are present. Such overlays (i.e. mod select overlay) will also be dimmed alongside the current screen when a game-wide overlay is open (e.g. settings).
2024-06-30 06:50:36 +03:00
Salman Ahmed
2319fa11ec
Support performing custom overlay-specific action with back button
2024-06-30 04:32:36 +03:00
Salman Ahmed
916d0bfcc2
Temporarily show screen footer if hidden while overlay is present
2024-06-30 04:32:36 +03:00
Salman Ahmed
68b8a4fb2a
Use ScreenFooter
for displaying footer buttons from overlays
2024-06-30 04:32:36 +03:00
Salman Ahmed
c6c75ae48d
Merge branch 'master' into footer-v2-side-buttons
2024-06-29 08:19:49 +03:00
Salman Ahmed
86b8357b8b
Improve UX & input handling when customisation panel is open
2024-06-28 08:53:31 +03:00
Dean Herbert
d370f50cc1
Syncrhronise colours across mod and preset tooltips
2024-06-28 13:16:54 +09:00
Dean Herbert
28d5278935
Show preset description text in tooltip popup
...
As proposed in https://github.com/ppy/osu/discussions/28610 .
2024-06-28 13:16:53 +09:00
Salman Ahmed
167ffac218
Reorder container layout for popovers to recognize clicks on customisation panel
...
Basically moves `PopoverContainer` to cover both the columns and the customisation panel, so that if the customisation panel is clicked on, the popover container will notice that and hide popovers like the mod preset popover.
2024-06-28 06:35:21 +03:00
Salman Ahmed
a277d9df13
Kill focus from components when clicking on an empty space in the panel
2024-06-25 07:13:36 +03:00
Salman Ahmed
3f06a0ef9e
Block certain operations when customisation panel is open
...
Normally I would just block keyboard input from going past `ModCustomisationPanel`, but it's a little complicated here since I'm dealing with global action key binding presses, and I also still want actions like `GlobalAction.Back` to get past the customisation panel even if it's expanded.
2024-06-25 06:16:46 +03:00
Salman Ahmed
57ee794398
Add extra margin to avoid 1px artifacts
2024-06-25 06:08:13 +03:00
Salman Ahmed
0a72394c8a
Fix customisation panel conflicting with beatmap attributes when collapsed
2024-06-25 06:04:39 +03:00
Salman Ahmed
e23da93c09
Use new display on mod select overlay and remove old display
2024-06-23 08:22:50 +03:00
Salman Ahmed
04efa61156
Add different display for mod customisation
2024-06-23 08:22:13 +03:00
Bartłomiej Dach
659505f711
Adjust calls to GetContainingInputManager()
2024-06-18 07:41:19 +02:00
Bartłomiej Dach
8a4ae5d23d
Null-propagate all calls to GetContainingFocusManager()
2024-06-18 07:30:46 +02:00
Dean Herbert
dd3f4bcdab
Fix code quality and null handling
2024-06-07 00:01:50 +08:00
Xesquim
860afb8123
Creating method in ModUtils to calculate the rate for the song
2024-06-06 10:06:07 -03:00
Dean Herbert
4408039b3e
Merge branch 'master' into footer-v2-back-button
2024-05-28 15:50:34 +09:00
Bartłomiej Dach
c800bb5339
Merge branch 'master' into lazer-speedkeys
2024-05-24 13:19:26 +02:00
Bartłomiej Dach
cab8cf7410
Move mod speed hotkey handler to user mod select overlay
...
The very base class is the wrong place for it because
`FreeModSelectOverlay` inherits from it, and that one has different
assumptions and rules than "user" selection. In particular, in non-user
selection, more than one rate adjust mod may be active, which breaks the
mod speed hotkey's basic assumptions.
2024-05-24 13:14:06 +02:00
Bartłomiej Dach
b1b207960a
Actually use return value
2024-05-24 13:09:44 +02:00
Bartłomiej Dach
8cac87e496
Fix speed controls in mod select overlay not handling repeat
2024-05-24 13:09:07 +02:00
Bartłomiej Dach
63406b6feb
Rewrite implementation
2024-05-24 13:03:42 +02:00
Dean Herbert
66ceda1d67
Update focus specifications in line with framework changes
2024-05-22 21:32:49 +08:00
Dean Herbert
f979200712
Use null conditional rather than implicit not-null
2024-05-22 12:06:51 +08:00
Dean Herbert
1fdebe94ac
Merge branch 'master' into lazer-speedkeys
2024-05-22 12:05:04 +08:00
Dean Herbert
02a388cba6
Fix enum not being at end (and adjust naming)
2024-05-22 12:03:48 +08:00
Fabian van Oeffelt
80064c4b98
Speedchange now also works in Modselect
2024-05-18 18:38:23 +02:00
Salman Ahmed
310b4d90cc
Move SHEAR
constant to OsuGame
and revert back to 0.2x (i.e. master)
...
Discussed in [discord](https://discord.com/channels/188630481301012481/188630652340404224/1240490608934653984 ).
2024-05-16 07:28:02 +03:00
Salman Ahmed
9265290acf
Change shear factor everywhere to 0.15x
2024-05-16 05:33:01 +03:00
Salman Ahmed
e3afd89dc8
Allow specifying height of ShearedButton
s
...
Also includes a test case in `TestSceneShearedButton`s to ensure the buttons' shear factors don't change on different heights (I've encountered issues with that previously).
2024-05-16 05:02:56 +03:00
Bartłomiej Dach
4c7e6b125c
Add clarification comment
2024-05-06 08:49:30 +02:00
cdwcgt
1f92f1d19b
remove blank line
...
nt
2024-05-04 20:41:36 +08:00
cdwcgt
fe30ca3d39
fix linq logic
2024-05-04 20:18:31 +08:00
cdwcgt
f9be9ed479
remove incompatible system mods before enable preset
2024-05-04 19:58:32 +08:00
Bartłomiej Dach
f7626aba18
Fix mod select overlay columns not displaying properly sometimes
...
Closes https://github.com/ppy/osu/issues/26504 .
As far as I can tell the issue is basically another manifestation of
https://github.com/ppy/osu-framework/issues/5129 , i.e. presence
overrides causing dropped invalidations and thus completely bogus
hierarchy state. The fix is to raise the appropriate invalidation
manually.
2024-04-23 13:36:12 +02:00
Bartłomiej Dach
509862490e
Revert unnecessary changes
2024-04-19 11:11:18 +02:00
Bartłomiej Dach
2dcbb823ef
Use textbox focus state directly rather than trying to track it independently
2024-04-19 11:08:34 +02:00
Mafalda Fernandes
16276dfcd6
Fix #27105 : Mod search box doesnt track external focus changes
...
In the Mod selection area, the search bar's focus could be changed by pressing TAB.
However, when clicking outside of the search bar, the focus would be killed but two TABs were required to get the focus back on the search bar.
This happened because the action of clicking in an empty area would trigger the search bar to change its appearence, but not its internal state.
In my solution, I made the OnClick function aware of the search bar's state, so it would not only change its appearance, but also its state.
Now, after clicking in an empty area, there is only needed one TAB to select the search box again, as expected.
2024-04-03 14:06:11 +01:00
Dean Herbert
94cbe1838f
Replace usages of is null
with == null
2024-04-03 01:50:39 +08:00
Bartłomiej Dach
d32f19b546
Fix first word bold not applying correctly after first language change
...
Closes https://github.com/ppy/osu/issues/27549 .
I'm not entirely sure why the old solution failed exactly, but also
think it's unimportant because I think past me was an idiot and was
playing stupid games with the juggling of indices between two callbacks
with no ordering guarantees and expecting not to win stupid prizes.
I'm not sure this requires any follow-up reconsiderations of that entire
text flow API, but if opinions differ, I'll re-examine.
2024-03-13 15:18:20 +01:00
Dean Herbert
c9b4c684e5
Merge pull request #27403 from Gabixel/increase-modselect-initial-scroll
...
Change initial scroll effect to mod columns
2024-03-08 14:00:40 +08:00
Dean Herbert
5e7d9ea04a
Adjust scroll speed back to original
2024-03-08 13:59:04 +08:00
Bartłomiej Dach
644553d5b4
Merge branch 'master' into freemod_mapinfo_fix
2024-03-07 09:24:44 +01:00
Salman Ahmed
9543908c7a
Fix mod select overlay settings order not always matching panels order
2024-03-04 23:36:45 +03:00
Salman Ahmed
4a4ef91bc9
Simplify active mods computation
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2024-02-29 00:42:52 +03:00
Gabriel Del Nero
09dee50372
Change initial scroll animation to mod columns
...
Starting from the end (which should be fine with the current number of columns, even on different/wider screen resolutions), and with a custom decay value when it reaches zero offset.
2024-02-27 15:35:51 +01:00
Salman Ahmed
3f9fbb9318
Introduce the concept of ActiveMods
in mod select overlay and rewrite once more
2024-02-26 22:25:06 +03:00
Salman Ahmed
2b73d816a7
Bring back mod setting tracker in BeatmapAttributesDisplay
2024-02-26 22:24:45 +03:00
Andrei Zavatski
081aa84718
Simplify last footer button selection
2024-02-25 10:36:15 +03:00
Andrei Zavatski
6d2187e079
Reduce allocations in ModSelectOverlay
2024-02-24 22:58:23 +03:00
Andrei Zavatski
3b53ed3c3a
Reduce allocations in ModColumn
2024-02-24 22:44:58 +03:00
Salman Ahmed
d4bc3090e7
Fix incorrect conflict resolution
2024-02-23 18:42:07 +03:00
Salman Ahmed
618819ba9f
Merge branch 'master' into freemod_mapinfo_fix
2024-02-23 18:34:41 +03:00
Salman Ahmed
c1db9d7819
Add test coverage
2024-02-23 18:16:44 +03:00
Salman Ahmed
fdc0636554
General code cleanup
2024-02-23 17:31:54 +03:00
Salman Ahmed
9ce07a96b2
Rewrite mods flow and remove RoomBeatmapAttributesDisplay
2024-02-23 17:30:13 +03:00
Salman Ahmed
323d7f8e2d
Change BeatmapAttributesDisplay
retrieval to proper method
2024-02-23 16:59:43 +03:00
Salman Ahmed
ae9c58be30
Remove "multiplayer" references from subclass and move to appropriate place
2024-02-23 16:50:33 +03:00
Bartłomiej Dach
6770b73e4e
Merge pull request #27192 from smoogipoo/mod-search-ignore-whitespace
...
Adjust search terms for mods
2024-02-22 11:41:31 +01:00
Bartłomiej Dach
84fdcd24ef
Remove description from mod search terms
...
Closes https://github.com/ppy/osu/issues/27111 .
2024-02-22 11:02:08 +01:00
Bartłomiej Dach
81a9908c60
Extract common helper for BPM rounding
2024-02-22 10:27:37 +01:00
Givikap120
ed028e8d26
Update MultiplayerModSelectOverlay.cs
2024-02-20 13:13:13 +02:00
Givikap120
8199a49ee2
minor look changes
2024-02-20 13:11:19 +02:00
Givikap120
a4288e7ecc
removed unnecessary changes
2024-02-20 13:00:59 +02:00
Givikap120
54ef397d56
Changed override method
...
now it overrides mods getter instead of calculate fuctions
2024-02-20 12:57:28 +02:00
maromalo
5a448ce02f
Turn BPMDisplay to RollingCounter<int>
2024-02-18 19:59:56 -03:00
Givikap120
24171bd02b
Update MultiplayerModSelectOverlay.cs
2024-02-18 03:34:02 +02:00
Givikap120
a6b63efe7d
Fixed NVika code quality errors
2024-02-18 03:28:24 +02:00
Givikap120
9070e973d3
Update BeatmapAttributesDisplay.cs
2024-02-18 03:16:18 +02:00
Givikap120
4aaf016ee0
quality improvements
2024-02-18 03:15:53 +02:00
Givikap120
6fb3192648
Update BeatmapAttributesDisplay.cs
2024-02-18 03:14:36 +02:00
Givikap120
2df5787dc7
Packed changes into separate class
2024-02-18 03:13:57 +02:00
Givikap120
ed819fde15
Fixed bugs and added ranked status update
2024-02-17 23:01:31 +02:00
Givikap120
cd8ac6a722
Update BeatmapAttributesDisplay.cs
2024-02-17 22:12:15 +02:00
Dan Balasescu
0fff9d4937
Add non-whitespace search term for mods
2024-02-16 19:17:41 +09:00
Bartłomiej Dach
e4ef2bdeb9
Merge pull request #26734 from Joehuu/fix-edit-mod-preset-button-flow
...
Fix edit mod preset popover buttons overflowing on some languages
2024-02-05 16:10:37 +01:00
Bartłomiej Dach
966093f7ce
Transform score multiplier display to also show ranked state
2024-02-01 21:32:37 +01:00
Joseph Madamba
bb6c7a0a82
Fix edit mod preset popover buttons overflowing on some languages
2024-01-26 15:26:22 -08:00
Andrei Zavatski
da992ccc55
Implement per-axis triangles clamping
2024-01-23 04:54:27 +03:00
Andrei Zavatski
1393f52b2b
Rename Masking to ClampToDrawable
2024-01-21 05:20:42 +03:00
Andrei Zavatski
e003ecb593
Change default masking value to true
2024-01-21 04:57:48 +03:00
Dean Herbert
a66ddc7813
Change rolling counters to use quicker easing types
2024-01-17 18:18:53 +09:00
Bartłomiej Dach
40f612435d
Merge pull request #26178 from felipemarins/mod-search-text-box-select-all
...
Make mod search box text be selected when a new mod is selected/deselected
2024-01-15 20:08:02 +01:00
Bartłomiej Dach
c46615839d
Only select all text in mod search text box if enter press selected anything
2024-01-15 19:09:50 +01:00
Felipe Marins
d8962ddff8
Select all when pressing enter instead of every mod selection change
2024-01-15 03:22:52 -03:00
Salman Ahmed
aebf246f62
Change select all mod buttons to check ValidForSelection
instead of directly checking system mods
2024-01-13 09:43:50 +03:00
Salman Ahmed
c476843a83
Mark system mods as invalid for selection in mod select overlay
2024-01-13 09:43:20 +03:00
Salman Ahmed
4dc11c4c48
Update existing code to use helper method
2023-12-31 05:18:07 +03:00
CaffeeLake
bca0600482
Use 0.99x or 1.01x
...
Signed-off-by: CaffeeLake <PascalCoffeeLake@gmail.com>
2023-12-31 00:47:09 +09:00
Felipe Marins
dce9204731
Select search box text on ModSelectOverlay when mod selection changes
2023-12-28 00:10:44 -03:00
Gabriel Del Nero
14b37db3dd
Make ModDaycore
sequential for ModHalfTime
2023-12-27 14:35:19 +01:00
Dean Herbert
c556475c2c
Revert to using a more manual approach to holding focus
2023-12-19 19:46:30 +09:00
Dean Herbert
51f4c7254c
Fix mod search textbox having focus while settings are visible
...
Stopped arrow key adjust on slider bars from working.
Also just felt wrong that you could type into an off-screen textbox.
2023-12-19 01:32:34 +09:00
Dean Herbert
4357bb1040
Change LeftContent
autosize duration to match main content to reduce visual awkwards
2023-12-15 16:01:07 +09:00
Dean Herbert
b86f387fd3
Fix the width of vertical attribute display numbers
...
Not necessarily required to fix the issue at hand, but probably good
practice here.
2023-12-15 15:04:22 +09:00
Bartłomiej Dach
9e5b6b97ff
Fix AdjustedAttributesTooltip
being broken by design
...
Fixes issue described in the following comment:
https://github.com/ppy/osu/pull/25759#issuecomment-1855954637
That is just not how the tooltip system is supposed to be used.
To name the individual sins:
- Caching and returning a tooltip instance like the classes that used
tooltips is incorrect. The lifetime of tooltip instances is managed by
the tooltip container. `GetCustomTooltip()` is called by it
exclusively. It should return a fresh instance every time.
- Not putting actual data in `IHasCustomTooltip.TooltipContent` is
wrong.
- Having `Tooltip.SetContent()` be a no-op is *grossly and flagrantly*
wrong.
I'm not even sure which particular combination of the above
transgressions caused the issue as it presented itself, but at this time
I frankly do not care.
2023-12-14 16:15:56 +01:00