Bartłomiej Dach
6aff1d4063
Merge branch 'master' into mod-select-difficulty-multiplier-animation
2023-09-14 16:23:30 +02:00
Bartłomiej Dach
44461b4eff
Merge branch 'master' into mod-select-diff-multiplier-visual-matching
2023-09-14 12:12:23 +02:00
Bartłomiej Dach
25dbd0a1d3
Rename variable to reflect new "beatmap attributes display" naming
2023-09-14 11:24:53 +02:00
Dean Herbert
32946413de
Change display text from "difficulty" to "score" multiplier
2023-09-13 20:01:19 +09:00
Dean Herbert
35840bf671
Combine ModCounterDisplay
and DifficultyMultiplierDisplay
into one class
2023-09-13 18:51:56 +09:00
Dean Herbert
21252c1c23
Fix animations
2023-09-13 18:06:50 +09:00
Dean Herbert
e241e41f2a
Fix layout decision to account for new multiplier addition
2023-09-13 17:55:21 +09:00
Dean Herbert
49114430ed
Move multiplier display to bottom of sceen to make visible while customising
2023-09-13 17:43:55 +09:00
Dean Herbert
7e3652284d
Adjust various class naming and add some xmldoc
2023-09-12 17:15:16 +09:00
Dean Herbert
e40eaa7377
Improve collapse/expand animations
...
Especially when on a screen resolution where it would start collapsed.
2023-09-12 17:06:45 +09:00
Bartłomiej Dach
eebacfb982
Make mod effect preview uncollapse on hover
2023-09-11 10:59:19 +02:00
Bartłomiej Dach
d51396fdaf
Collapse mod effect preview when it's not wide enough to fit
2023-09-11 10:46:07 +02:00
Bartłomiej Dach
3deb6cb4ec
Fix z-order of mod preview panel
2023-09-11 10:19:02 +02:00
Bartłomiej Dach
0822e8b925
Fix preview panel not being marked nullable
2023-09-11 10:18:37 +02:00
Bartłomiej Dach
76bf82d900
Do not show mod effects on free mod select
2023-09-11 09:55:45 +02:00
Bartłomiej Dach
53c30dca64
Fix data flow being sometimes incorrect
2023-09-11 09:53:58 +02:00
Bartłomiej Dach
f591a30ea7
Refactor preview panel to be more self-contained
2023-09-11 09:19:34 +02:00
Givikap120
02e2b8546c
fixed all stated problems
2023-09-08 20:32:55 +03:00
Givikap120
0779cd8f4f
minor design fixes
2023-09-03 02:17:04 +03:00
Givikap120
b0398b6259
functionality is done
2023-09-03 02:09:01 +03:00
Givikap120
50235cc245
somewhat working prototype
2023-08-28 23:16:33 +03:00
Givikap120
8a1fc7c340
Basic stuff (not working for now)
2023-08-26 01:20:41 +03:00
Bartłomiej Dach
973e6ded2a
Update wrong comment, too
2023-07-26 21:56:04 +02:00
Bartłomiej Dach
992f78b158
Use more consistent way of closing overlay
2023-07-26 21:54:35 +02:00
Dean Herbert
8d5efc9612
Add back the ability to close mod select using enter key
...
I've seen this brought up a few times (with people thinking
the fact it's not working is a bug) so we'll need to keep this
behaviour for now.
2023-07-27 02:36:25 +09:00
Dean Herbert
18c5fc689f
Don't expose such specific information from ModSelectOverlay
2023-07-20 12:58:13 +09:00
Dean Herbert
eb149942e5
Add ability to toggle all free mods quickly at multiplayer song select
2023-07-19 19:08:32 +09:00
Dean Herbert
f5c472c0fe
Don't hide mod select overlay when pressing select binding with no search
2023-07-13 17:50:07 +09:00
Bartłomiej Dach
b4c1266fc5
Add TODO for future support of typical search shortcuts
2023-06-18 15:58:50 +02:00
Bartłomiej Dach
b87acfa66f
Dynamically change placeholder to convey how to activate search
2023-06-18 15:58:50 +02:00
Bartłomiej Dach
75300ca229
Switch search box to initially unfocused
...
Done primarily to keep mod hotkeys working without any behavioural
changes when mod select is opened.
2023-06-18 15:58:50 +02:00
Bartłomiej Dach
a49af06e88
Reword comments in ModSelectOverlay
2023-06-18 14:34:33 +02:00
Bartłomiej Dach
28f929dc4d
Remove yet another redundant guard
2023-06-18 14:28:26 +02:00
Cootz
d219b5f77f
Reword change focus comment
2023-06-09 17:10:13 +03:00
Cootz
c3b50e1309
Move the multiplier back to TopRight
2023-06-09 16:25:04 +03:00
Cootz
71e6f80c40
Add hotkey for switching search bar focus
2023-06-05 15:54:19 +03:00
Cootz
3ebc801484
Move (de)select all mods hotkeys handling to ModSelectOverlay
2023-06-05 13:49:07 +03:00
Cootz
a46f5b90d4
Move focus handling into PopIn
2023-06-04 18:11:44 +03:00
Cootz
32b9e6ec8f
Make search bar active by default
2023-06-04 17:02:46 +03:00
Cootz
69b640a185
Remove hotkeys handling from DeselectAllModsButton
2023-06-03 10:47:48 +03:00
Cootz
9d4ba5d64a
Remove unnecessary null checks
2023-06-02 12:00:03 +03:00
Cootz
4c7cca101e
Rename IsValid
to Visible
2023-06-02 11:33:38 +03:00
Cootz
325c114c1c
Remove redundant xmldocs
2023-06-02 10:39:27 +03:00
Cootz
39489358fa
Apply appearance animation to aboveColumnsContent
2023-06-01 14:07:05 +03:00
Cootz
0e5c99b760
Fix search bar showing incorrectly
2023-05-28 13:12:57 +03:00
Cootz
c3f06ad2db
Merge branch 'master' into add-mod-search-option
2023-05-23 08:55:57 +03:00
Cootz
67bf1b4dfe
Select/deselect first visible mod when GlobalAction.Select
is triggered
2023-05-21 11:05:01 +03:00
Cootz
6647d95ea7
Kill search focus when clicking on ModColumn
2023-05-14 18:32:16 +03:00
Cootz
2467813d81
Block deselect all
short key when using the search box
2023-05-09 16:14:42 +03:00
Cootz
cbb9f0100e
Update PopIn
and PopOut
filtering. Expose SearchTerm
2023-05-06 11:27:06 +03:00
Cootz
54757df51f
Fix mod deselect button not working properly when search applied
2023-05-05 09:31:27 +03:00
Cootz
1ac9d900e1
Clear search on ModSelectOverlay.Hide
2023-05-04 19:24:37 +03:00
Cootz
152d2678d5
Fix ModSelectColumn
completely disappear from ModSelectOverlay
2023-05-03 14:00:46 +03:00
Cootz
a6ca049739
Manually implement @bdach prototype
2023-05-02 14:15:33 +03:00
Dean Herbert
e808e7316b
Mark delegate value unused and add comment to avoid future regression
2023-05-02 13:29:30 +09:00
Bartłomiej Dach
2e3daf0a54
Fix leak of ModSettingChangeTracker
instances
...
The `SelectedMods.BindValueChanged()` callback in `ModSelectOverlay` can
in some instances run recursively. This is most heavily leaned on in
scenarios where `SelectedMods` is updated by an external component. In
such cases, the mod select overlay needs to replace the mod instances
received externally with mod instances which it owns, so that the changes
made on the overlay can propagate outwards.
This in particular means that prior to this commit, it was possible to
encounter the following scenario:
modSettingChangeTracker?.Dispose();
updateFromExternalSelection(); // mutates SelectedMods to perform the replacement
// therefore causing a recursive call
modSettingChangeTracker?.Dispose();
// inner call continues
modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);
// outer call continues
modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);
This leaks one `modSettingChangeTracker` instance from the inner call,
which is never disposed.
To avoid this, move the disposal to the same side of the recursion that
the creation happens on, changing the call pattern to:
updateFromExternalSelection(); // mutates SelectedMods to perform the replacement
// therefore causing a recursive call
modSettingChangeTracker?.Dispose();
// inner call continues
modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);
modSettingChangeTracker?.Dispose();
// outer call continues
modSettingChangeTracker = new ModSettingChangeTracker(SelectedMods.Value);
which, while slightly wasteful, does not cause any leaks.
The solution is definitely suboptimal, but addressing this properly
would entail a major rewrite of the mod instance management in the mods
overlay, which is probably not the wisest move to make right now.
2023-04-30 17:31:41 +02:00
Cootz
b795e8ac5a
Use ModSearch
in ModeSelectOverlay
2023-04-27 17:26:35 +03:00
Cootz
3c6141f233
Add ModSearch
2023-04-27 17:08:29 +03:00
Hy0tic
56ab029a58
fix issue where multipler does not update when adjusting speed for preset mod
2023-04-22 13:30:08 -04:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
ansel
b056cac10a
Remove generic and add default implementation for CalculateEffect
2022-09-10 08:34:29 +03:00
ansel
545e0bbcef
Adjust inheritors and test
2022-08-29 22:49:25 +03:00
ansel
039f009562
Inherit difficulty multiplier display from ModsEffectDiplay
2022-08-27 20:26:05 +03:00
Bartłomiej Dach
3109066e34
Rename {Requires -> Pending}Configuration
2022-08-16 22:45:24 +02:00
Bartłomiej Dach
10daac6752
Only open mod customisation panel on explicit selection of single mod
2022-08-15 20:38:23 +02:00
Bartłomiej Dach
f860bc11ee
Fix several schedule-related issues arising from new column addition
2022-08-15 20:38:16 +02:00
Bartłomiej Dach
5ff2e41a55
Add preset column to mod select test scene
2022-08-15 18:38:37 +02:00
Bartłomiej Dach
839409d7ac
Add preset column to solo mod select overlay
2022-08-07 16:20:31 +02:00
Bartłomiej Dach
b318bbd5e6
Allow non-homogenous column types in mod select overlay
2022-08-07 16:20:31 +02:00
Salman Ahmed
89653b74c7
Only add setting tracker when customisation is permitted
2022-07-19 19:21:16 +03:00
Salman Ahmed
eddae7b143
Fix mod overlay and footer not updating multiplayer on settings change
2022-07-18 07:38:56 +03:00
Dean Herbert
a03abc747b
Tidy up comments and simplify bounding box centre logic
2022-07-02 12:58:34 +09:00
Jamie Taylor
9d28d5f8ee
Update SFX for mod overlay show/hide
2022-07-01 20:43:12 +09:00
Dean Herbert
31a447fda0
Update parameter discards
2022-06-24 21:26:19 +09:00
Bartłomiej Dach
73124d2b1f
Encapsulate mod hotkey selection logic in strategy pattern
2022-06-21 12:49:01 +02:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Bartłomiej Dach
071e158a29
Expose available mod state outwardly as a bindable
2022-05-25 23:06:12 +02:00
Bartłomiej Dach
f0303d76e8
Split off "select all mods" button to separate class
2022-05-25 22:18:30 +02:00
Bartłomiej Dach
a4bd399b0c
Split off "deselect all mods" button to separate class
2022-05-25 22:14:45 +02:00
Dean Herbert
062ffe64ac
Remove delay on pop in
2022-05-17 18:21:19 +09:00
Bartłomiej Dach
170df01b46
Adjust difficulty multiplier scale transition on mod overlay
...
The previous transition was supposed to be a center-anchored elastic
scale-in, but this didn't work as intended - because the multiplier
ended up inside of an auto-sized right-aligned container, the animation
itself would end up being anchored right.
Attempts to remove the scale transition resulted in a rather
jarring-looking result, so swap out the elastic scale-in for a sweep-in
effect from the top, to match the header and avoid introducing too many
directions of movement.
Delay values tweaked "to taste" - can be adjusted further if there is an
alternative set of values that feels better.
2022-05-15 20:44:50 +02:00
Dean Herbert
8a01050168
Refactor mod select button initialisation to allow shared usage of deselect button
2022-05-15 03:16:43 +09:00
Dean Herbert
a759cf2dab
Add key binding to deselect all mods
...
Defaults to `Backspace`.
2022-05-15 02:51:58 +09:00
Bartłomiej Dach
981ead68bf
Ensure local mods are constructed in time for Pop{In,Out}()
2022-05-11 22:31:27 +02:00
Bartłomiej Dach
93539160ad
Remove no-longer-necessary guard
2022-05-11 22:31:26 +02:00
Bartłomiej Dach
fc24a56478
Add protection from recursive updates from external selection
2022-05-11 22:31:25 +02:00
Bartłomiej Dach
83ba06e7af
Extract helper property for accessing all mods
2022-05-11 22:31:25 +02:00
Bartłomiej Dach
11ae1da65a
Hoist reference replacement logic to overlay level
2022-05-11 22:26:47 +02:00
Bartłomiej Dach
05a21fbbe0
Hoist ModState
to overlay level
2022-05-11 22:26:21 +02:00
Bartłomiej Dach
ddb2d4eef5
Rename FreeModSelect{Screen -> Overlay}
reference in inline comment
2022-05-11 18:06:09 +02:00
Bartłomiej Dach
a104277e7f
Rename ModSelect{Screen -> Overlay}Strings
2022-05-11 18:01:33 +02:00
Bartłomiej Dach
76c63f1d0a
Rename ModSelect{Screen -> Overlay}
in place of removed old design
2022-05-10 22:56:50 +02:00
Bartłomiej Dach
128468e13d
Remove old base mod select overlay
2022-05-10 21:52:30 +02:00
Dean Herbert
3eead5a6a3
Rename FlushAnimation
to FlushPendingSelections
to better match purpose
2022-05-04 19:40:08 +09:00
Joseph Madamba
5e5c8e78a6
Use existing web localisation for most hardcoded strings
2022-04-20 16:31:11 -07:00
smoogipoo
f9d5abff8a
Update with keybinding changes
2021-09-16 18:26:12 +09:00
Dean Herbert
bf0a1167ec
Improve update flow and ensure selected mods is read from local context
2021-08-24 13:35:39 +09:00
Dean Herbert
9b9dacf3fe
Update usages of Drawable.Click()
2021-08-04 17:30:33 +09:00
Dean Herbert
3c028ce05c
Add IDeepCloneable
interface and update existing CreateCopy
methods to use it
2021-07-19 12:54:17 +09:00
Dean Herbert
af270cccc4
Fix cross talk between ModSelectOverlay
s
2021-07-08 17:59:04 +09:00