Bartłomiej Dach
234120ff43
Forward entire event to IModHotkeyHandler
...
Required for shift handling in the classic implementation.
2022-06-21 13:37:17 +02:00
Bartłomiej Dach
658f5341c7
Set up flow for switching between hotkey styles
2022-06-21 13:34:58 +02:00
Bartłomiej Dach
5abd8a07d2
Add setting for changing mod select hotkey style
2022-06-21 13:33:17 +02: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
a1b8fa0992
Disable "select all mods" button if all are selected
2022-05-25 23:06:12 +02: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
a3f2962558
Disable "deselect all mods" button if none are selected
2022-05-25 22:15:02 +02:00
Bartłomiej Dach
a4bd399b0c
Split off "deselect all mods" button to separate class
2022-05-25 22:14:45 +02:00
Joseph Madamba
ed0b841df0
Fix incorrect left/right clicking area of mod panels
2022-05-23 18:29:26 -07: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
2266a5c9a0
Remove no-longer-necessary ModColumn.Filter
2022-05-11 22:31:26 +02:00
Bartłomiej Dach
1c0166367d
Fix remaining column operations being coupled to drawables
2022-05-11 22:31:26 +02:00
Bartłomiej Dach
b5a9f1310a
Fix select/deselect all toggle not working correctly after changes
2022-05-11 22:31:26 +02:00
Bartłomiej Dach
52bbce12f1
Fix not being able to set AvailableMods
before loaded
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
e86444c4bf
Hoist ModState
to column level
2022-05-11 22:03:49 +02:00
Bartłomiej Dach
74599c9c62
Use ModState
in mod panels
2022-05-11 22:03:48 +02:00
Bartłomiej Dach
478cfc0b87
Split model class for mod state
2022-05-11 22:03:48 +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
33634cba1e
Remove old mod buttons
2022-05-10 21:58:22 +02:00
Bartłomiej Dach
8b0ece1c09
Remove old mod section
2022-05-10 21:55:54 +02:00
Bartłomiej Dach
dfd97701d7
Remove old mod settings container & related controls
2022-05-10 21:53:42 +02:00
Bartłomiej Dach
128468e13d
Remove old base mod select overlay
2022-05-10 21:52:30 +02:00
Bartłomiej Dach
24c59e2f2f
Remove old user mod select overlay
2022-05-10 21:52:17 +02:00
Dan Balasescu
8ccf2ee075
Add inline comment
2022-05-10 15:07:08 +09:00
Dan Balasescu
2b7eeadac0
Workaround bad performance when selecting all freemods
2022-05-10 14:48:41 +09:00
Bartłomiej Dach
626fcd5d35
Merge branch 'master' into column-flow-cq
2022-05-09 19:22:29 +02:00
Joseph Madamba
172d14bcc6
Improve code quality of mod column flow container
2022-05-08 11:40:14 -07:00
Bartłomiej Dach
d964b4f23c
Fix uneven spacing when some mod columns are hidden
2022-05-08 15:40:21 +02:00
Bartłomiej Dach
6bdcf893b7
Move alpha management closer to screen level
...
Felt bad messing with alpha at the column level.
2022-05-08 15:40:10 +02:00
Bartłomiej Dach
92ccec20d7
Hide mod columns if all mods within are filtered out
2022-05-08 14:53:59 +02:00
Dean Herbert
b8cb2c1b82
Increase scroll amount slightly
2022-05-08 19:57:03 +09:00
Dean Herbert
778497b9e2
Scroll mod select slightly into view on first display
2022-05-08 18:58:54 +09:00
Bartłomiej Dach
b92d95a17a
Fix mod panels playing samples when hidden at a higher level
2022-05-08 10:39:49 +02:00
Bartłomiej Dach
81ca534f87
Implement ISamplePlaybackDisabler
in mod select
2022-05-08 10:39:49 +02:00
Dean Herbert
230c4e27b8
Simplify and centralise hiding logic for mod overlay
...
Behaviourally, this also always toggles via button triggering to add the
button flash animation.
2022-05-08 13:03:28 +09:00
Dean Herbert
2278da563e
Add various xmldoc for nested classes
2022-05-08 02:03:28 +09:00
Dean Herbert
03c80d9197
Reorder methods / properties in ModSelectScreen
for legibility
2022-05-08 01:58:37 +09:00
Dean Herbert
1d27ef18dc
Add xmldoc for IsValidMod
2022-05-08 01:49:29 +09:00
Dean Herbert
0d32bf91eb
Hardcode hide key handling in ModSelectScreen
2022-05-08 01:35:11 +09:00
Bartłomiej Dach
0c2b4a6c0b
Fix invalid IsLoaded
check
...
Would fail when `availableMods` would be changed from a different thread
while the columns aren't loaded.
2022-05-07 15:44:22 +02:00
Bartłomiej Dach
528342411e
Merge branch 'master' into mod-overlay/integration
2022-05-07 13:52:19 +02:00
Bartłomiej Dach
fe69bd7ed9
Merge branch 'master' into change-mod-scroll-behaviour
2022-05-07 13:29:02 +02:00
Bartłomiej Dach
9a56f6db44
Merge branch 'mod-overlay/back-button' into mod-overlay/integration
2022-05-07 13:15:13 +02:00
Bartłomiej Dach
a716f62a6a
Flash back button when keyboard back binding is pressed
2022-05-07 13:01:36 +02:00
Salman Ahmed
d4c9de8596
Move button width in mod select to constant
2022-05-07 13:23:48 +03:00
Salman Ahmed
8ee3fdd0aa
Change mod scrolling behaviour to not scroll horizontally on columns/settings
2022-05-07 12:15:11 +03:00
Bartłomiej Dach
fd75963ca2
Dismiss mod select if select binding is pressed
2022-05-07 11:01:05 +02:00
Bartłomiej Dach
e7e7486a8e
Merge branch 'mod-overlay/back-button' into mod-overlay/integration
2022-05-07 10:59:30 +02:00
Bartłomiej Dach
b72cf4cd5d
Merge branch 'mod-overlay/localisation-strings' into mod-overlay/back-button
2022-05-07 10:58:09 +02:00
Bartłomiej Dach
f761d4d4d4
Reuse "select/deselect all" localisable string on column toggle
2022-05-07 10:56:03 +02:00
Bartłomiej Dach
fa0a256f48
Add localisable string for difficulty multiplier display
2022-05-07 10:48:15 +02:00
Bartłomiej Dach
271d64fd54
Add back button to mod select overlays
2022-05-07 10:17:32 +02:00
Bartłomiej Dach
6ad990dfc3
Add basic localisation strings for new mod select
2022-05-07 10:17:24 +02:00
Bartłomiej Dach
4ff96f82be
Dim other buttons if customisation panel is open
2022-05-07 09:50:09 +02:00
Bartłomiej Dach
18e4c3ed0f
Update mod columns even if they're not present/offscreen
...
Important to make "select/deselect all" operations work on all columns
simultaneously, even if they're offscreen. Unfortunately by the nature
of how the existing selection animation works, it is hard-tied to the
update loop, so we need to compensate.
2022-05-07 09:50:09 +02:00
Bartłomiej Dach
9514a5cef7
Only load panels asynchronously outside of BDL
2022-05-07 09:50:09 +02:00
Bartłomiej Dach
9f96dd47d1
Remove schedule in panel load
...
It was causing selection/deselection of all mods to work improperly if a
select/deselect all operation was requested before the panel was
scrolled into view.
In general the schedule was an over-optimisation - the game-global set
of available mods shouldn't be changing so often as to warrant such an
aggressive debounce.
2022-05-07 09:50:09 +02:00
Bartłomiej Dach
852e4a9766
Add select/deselect all buttons to free mod select screen
2022-05-07 09:29:33 +02:00
Bartłomiej Dach
0b95594f60
Add some more padding between footer and column scroll
2022-05-07 09:29:33 +02:00
Bartłomiej Dach
0c6de331f3
Move footer button padding to a higher level
2022-05-07 09:29:32 +02:00
Bartłomiej Dach
8c73ed7207
Fix sequence equality check not using reference comparison
2022-05-06 21:47:04 +02:00
Bartłomiej Dach
621f746789
Do not modify selected mods through panel state change during external update
2022-05-06 21:47:04 +02:00
Bartłomiej Dach
c199b8fcb6
Simplify state management in ModColumn
...
Bad sign when you can't follow your own code.
All of the various state changing methods were flattened into one
because it was too hard to follow what was calling what and why.
2022-05-06 21:46:16 +02:00
Bartłomiej Dach
c533c93ffd
Remove leftover border thickness spec in mod settings area
...
Was never supposed to be there, it was a vestige of a previous design
iteration that went by unnoticed.
2022-05-06 15:34:49 +02:00
Bartłomiej Dach
08fd0ea086
Fix click-to-return container still handling hover when inactive
2022-05-06 12:28:53 +02:00
Bartłomiej Dach
34cf4c6a38
Fix mod overlay not closing on toggle hotkey
2022-05-05 22:16:56 +02:00
Bartłomiej Dach
ac08498f35
Use plum colour scheme in multiplayer to match rest of multiplayer screens
2022-05-05 22:16:54 +02:00
Bartłomiej Dach
79e1b93b30
Close customisation area on escape press before exiting
2022-05-05 19:17:36 +02:00
Bartłomiej Dach
2cc56a4b19
Fix hidden issue with automatic customisation panel show logic
...
Doesn't cause tests to fail headless, but they do fail in the test
browser.
2022-05-05 19:17:36 +02:00
Dean Herbert
3eead5a6a3
Rename FlushAnimation
to FlushPendingSelections
to better match purpose
2022-05-04 19:40:08 +09:00
Bartłomiej Dach
f5fa41356e
Rewrite mod instance management again to pass tests
2022-05-03 22:31:34 +02:00
Bartłomiej Dach
970361676b
Fix setting items not creating if mods initially not empty
2022-05-03 21:45:40 +02:00
Bartłomiej Dach
e3641213e1
Always hide unimplemented mods on mod select screen
2022-05-03 21:45:40 +02:00
Bartłomiej Dach
f91ee4b042
Reset panel mod instance settings to defaults on deselect
2022-05-03 21:45:40 +02:00
Bartłomiej Dach
7c04bf5c53
Refactor mod reference management to meet test expectations
2022-05-03 21:45:40 +02:00
Bartłomiej Dach
fe59f4ae58
Fix multiselection operation not flushing on close
2022-05-03 21:45:39 +02:00
Bartłomiej Dach
746a4a7403
Fix mod column using wrong equality type
2022-05-03 21:45:39 +02:00
Dean Herbert
652e022fd6
Merge pull request #17973 from bdach/mod-overlay/dim-columns-offscreen
...
Dim offscreen columns on new mod select overlay
2022-04-29 11:55:27 +09:00
Dean Herbert
f300b62877
Add ScrollIntoView
method which accepts an offset to allow usage in mod select
2022-04-28 20:03:54 +09:00
Dean Herbert
f3a0e2ed55
Increase fade duration
2022-04-28 14:59:39 +09:00
Dean Herbert
1a345c06c6
Fix regression in nested scroll behaviour due to the top level scroll container's type changing
2022-04-27 17:10:27 +09:00
Dean Herbert
b29af28028
Fix mod panels not ignoring super key presses
...
Most other usages have this included. Noticed that the panel was
changing state when exiting the game using cmd-w.
Would probably be nice to have an exposed `HasAnyModifierPressed` helper
property.
2022-04-27 16:55:17 +09:00
Bartłomiej Dach
a849bfcf60
Rewrite dim test to pass headless
...
Unfortunately neuters the test a touch, but alas.
2022-04-26 23:11:41 +02:00
Bartłomiej Dach
921e8af3b0
Use more lenient column bounds for checking active state
2022-04-26 22:54:54 +02:00
Bartłomiej Dach
21377d2a4d
Fix inactive columns flickering on and off mid-scroll
2022-04-26 22:43:58 +02:00
Bartłomiej Dach
94d07e147f
Move dimming logic to custom scroll container
2022-04-26 22:37:40 +02:00
Bartłomiej Dach
e9c9c764ca
Fix column dim state changing when scrolling past extent
2022-04-26 22:26:58 +02:00
Bartłomiej Dach
13a36f2e51
Scroll to column when mouse is released rather than pressed
2022-04-26 22:01:24 +02:00
Bartłomiej Dach
b0d6e16658
Invert data flow in column dim implementation
2022-04-26 21:57:19 +02:00
Bartłomiej Dach
e13d0d02ae
Use better way of calculating whether columns are fully on screen
2022-04-25 23:08:05 +02:00
Bartłomiej Dach
e384e074fb
Fix asymmetric margin of column scroll
2022-04-25 23:08:05 +02:00
Bartłomiej Dach
09c08248c4
Fix bounce when scrolling to first/last column
2022-04-25 23:08:05 +02:00
Bartłomiej Dach
ebc8429495
Dim offscreen columns & scroll to them if clicked
2022-04-25 23:08:04 +02:00
Bartłomiej Dach
e246357b36
Merge branch 'master' into sheared-overlay-container-click-away
2022-04-22 22:26:35 +02:00
Dean Herbert
82a1d1cc2e
Fix multiplier display not blocking input
2022-04-22 15:22:58 +09:00
Bartłomiej Dach
b7c11cdb8e
Deselect old incompatible mods if any on user mod select screen
2022-04-21 23:49:30 +02:00
Bartłomiej Dach
32722adba9
Allow mod panels to be clicked in incompatible state
2022-04-21 23:37:01 +02:00
Dean Herbert
0f4b40ab15
Add better click-to-dismiss logic for sheared overlays
2022-04-21 16:27:27 +09:00
Dean Herbert
5c0e5eb6f4
Merge pull request #17899 from Joehuu/localise-most-strings
...
Use existing web localisation for most hardcoded strings
2022-04-21 14:48:12 +09:00
Joseph Madamba
5e5c8e78a6
Use existing web localisation for most hardcoded strings
2022-04-20 16:31:11 -07:00
Dean Herbert
4466e15bfc
Rename AllowConfiguration
to AllowCustomisation
and simplify drawable addition
2022-04-20 23:17:29 +09:00
Dean Herbert
b722ff8dc5
Merge branch 'master' into mod-overlay/extension-points
2022-04-20 23:17:04 +09:00
Dean Herbert
65b2db5e71
Move shear constant to overlay (this is going to likely be used everywhere ever)
2022-04-20 16:30:58 +09:00
Dean Herbert
e17f224793
Fix padding mismatches
2022-04-20 16:28:52 +09:00
Dean Herbert
5c7ff363ce
Move title/description to correct class
2022-04-20 16:08:00 +09:00
Dean Herbert
2ee37aeceb
Reduce nesting and usage of GridContainer
2022-04-20 16:01:15 +09:00
Dean Herbert
1032dc235d
Rename PopupScreenTitle
to ShearedOverlayHeader
2022-04-20 16:01:15 +09:00
Dean Herbert
8d31b0bc01
Split out the base design of sheared overlay into its own abstract class
...
This will allow for reuse with the first-run overlay.
2022-04-20 15:50:16 +09:00
Bartłomiej Dach
0d5ce336f4
Hide mod customisation toggle if customisation not permitted
2022-04-17 23:28:53 +02:00
Bartłomiej Dach
881df7663d
Fix filter not taking effect if applied before panel load completion
2022-04-17 23:28:53 +02:00
Bartłomiej Dach
8af865a1c5
Fix incompatibility panel using reference equality
2022-04-17 23:28:53 +02:00
Bartłomiej Dach
ffb5c1e86c
Tweak colours on incompatibility displaying mod panel
2022-04-17 23:28:52 +02:00
Bartłomiej Dach
20c17b8c98
Make base mod select screen abstract
2022-04-17 23:28:51 +02:00
Bartłomiej Dach
7eebc20124
Add replacements for mod overlays used by game
2022-04-17 23:28:51 +02:00
Bartłomiej Dach
67c44db8d5
Add extension points required for replacing old mod overlay
2022-04-17 23:28:51 +02:00
Dean Herbert
ac799aaf7a
Add missing newline
2022-04-05 19:25:47 +09:00
Dean Herbert
32daf64a31
Use newly exposed framework helper function to find closest parent
2022-04-05 19:24:34 +09:00
Dean Herbert
631aa2a6ec
Remove left padding to allow left-most column to exist further to the.. left
2022-04-05 18:44:25 +09:00
Dean Herbert
54715885af
Adjust animation metrics slightly
2022-04-05 18:41:01 +09:00
Dean Herbert
7a1820e6bb
Fix multiplier display resetting transformations
2022-04-05 18:40:48 +09:00
Dean Herbert
9fdeb20537
Animate individual ModColumn
s during togle of oerlay
2022-04-05 18:27:34 +09:00
Dean Herbert
901032bfa2
Animate multiplier display
2022-04-05 18:25:27 +09:00
Dean Herbert
497e5e3a36
Slightly adjust scroll handling and also apply to ModSettingsContainer
2022-04-05 17:19:33 +09:00
Dean Herbert
a408776734
Limit FillFlow
of columns to applicable direction
2022-04-05 17:15:05 +09:00
Dean Herbert
388322cd61
Speed up customisation panel toggle a bit
2022-04-05 16:56:24 +09:00
Dean Herbert
58e9147b12
Simplify and better comment nested scroll conditionals
2022-04-05 16:48:25 +09:00
Dean Herbert
f156cb797d
Improve nested scroll behaviour
2022-04-05 16:46:09 +09:00
Dean Herbert
23dad7bdc4
Move scroll view padding to content level
...
Without doing this, there is a non-masked but also non-interactive area
to the left or right of the view.
2022-04-05 16:43:00 +09:00
Bartłomiej Dach
9b367d645d
Always play pop in sequence
2022-04-04 20:02:47 +02:00
Dean Herbert
57b8c32f25
Remove unused fields
2022-04-04 20:42:14 +09:00
Dean Herbert
bc53adb72a
Adjust customisation transition slightly
2022-04-04 15:50:40 +09:00
Dean Herbert
b5df350007
Adjust pop in/out transitions
2022-04-04 15:45:44 +09:00
Bartłomiej Dach
cd776d21a6
Fix propagation of selected mods to columns
2022-04-03 20:12:34 +02:00
Bartłomiej Dach
e46c2df409
Add testing for customisation panel show/hide logic
2022-04-03 20:12:33 +02:00
Bartłomiej Dach
293ef44836
Implement new mod select screen
2022-04-03 20:12:33 +02:00
Bartłomiej Dach
624f9fc774
Implement mod settings area component
2022-03-16 23:13:11 +01:00
Bartłomiej Dach
643f68e844
Better annotate initial rolling counter value set
2022-03-07 23:11:20 +01:00
Bartłomiej Dach
019f4d965d
Show two decimal digits on mod multiplier rather than one
2022-03-07 22:55:55 +01:00
Bartłomiej Dach
c25d7a1c75
Use rolling counter for multiplier display
2022-03-07 22:50:51 +01:00
Bartłomiej Dach
78a3b5961e
Implement basic difficulty multiplier display
2022-03-07 22:50:51 +01:00
Bartłomiej Dach
899b95e61b
Do not delay inital mod update by a frame
2022-02-28 21:46:58 +01:00
Bartłomiej Dach
e8701f46f1
Add xmldoc to Filter
to explain usage
2022-02-28 21:39:21 +01:00
Bartłomiej Dach
6cc972aa6a
Fix test failures by waiting for panel load
2022-02-28 21:36:13 +01:00
Dean Herbert
4a555d067d
Change ModPanel
to not handle OnMouseDown
to allow drag scrolling in ModColumn
2022-02-28 14:32:50 +09:00
Bartłomiej Dach
774952adda
Rescale components from figma to real dimensions
2022-02-27 23:08:31 +01:00
Bartłomiej Dach
16c6b9b3b3
Add keyboard selection support to mod column
2022-02-27 22:51:29 +01:00
Bartłomiej Dach
b690df05de
Hide multiselection checkbox if everything is filtered
2022-02-27 22:51:29 +01:00
Bartłomiej Dach
a83f96b026
Add filtering support to mod column
2022-02-27 22:51:29 +01:00
Bartłomiej Dach
a80b4334ff
Tweak layout of column display for better spacing
2022-02-27 22:51:28 +01:00
Bartłomiej Dach
53e8072632
Port multiselection from previous design
2022-02-27 22:51:28 +01:00
Bartłomiej Dach
f40bd39487
Add toggle all checkbox to column display
2022-02-27 22:51:28 +01:00
Bartłomiej Dach
2e04a83554
Implement column display for new mod design
2022-02-27 22:51:27 +01:00
Bartłomiej Dach
c189cc5d00
Remove unused using directive
2022-02-24 21:01:37 +01:00
Dean Herbert
435bdd0b4a
Combine and simplify state management logic
...
This makes a few changes to bring things into a better shape during
mouse interactions with the mod panels:
- Dragging away from the panel now works in line with other buttons (ie.
`OsuButton`)
- Hovering now uses a lightened version of the current state, rather
than always using the active colour. I think this feels better.
- Mouse down now uses a transform point of 0.5. This is to give the
button a feeling of one of those latching light switches which resists
until reaching a point of overcoming the spring and switching state. I
think 0.4 (non-active) and 0.6 (from active) may work better, but left
at 0.5 for simplicity of implementation and I think it's good enough?
- Border always uses the gradiented version. I did this for simplicity
of implementation, but also think it looks better.
- Adjusted transform durations to feel better to me.
2022-02-24 15:25:30 +09:00
Bartłomiej Dach
713f89a59c
Implement incompatibility-displaying variant of mod panel
2022-02-23 23:19:06 +01:00
Bartłomiej Dach
bbe2dfa458
Move out incompatibility displaying tooltip to own class
2022-02-23 23:18:15 +01:00
Bartłomiej Dach
8a0aba6c59
Implement mod panel for new mod select screen
2022-02-23 23:18:14 +01:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
smoogipoo
f9d5abff8a
Update with keybinding changes
2021-09-16 18:26:12 +09:00
Dean Herbert
cf633973a9
Refactor exposed mod retrieval methods for better safety
2021-09-10 11:09:13 +09:00
Dean Herbert
4d0530ca9d
Add new methods to ruleset for quicker mod lookups
2021-09-09 16:46:14 +09:00
Dean Herbert
9e21f5a59c
Rename LocalPlayer
to User
in mod select prefixes
2021-09-01 17:22:52 +09:00
Dean Herbert
fb5f3fb9af
Rename button to be more descriptive of its purpose
2021-09-01 17:19:38 +09:00
Salman Ahmed
a190801291
Revert no longer required tooltip content changes
2021-08-31 19:36:27 +03:00
Salman Ahmed
9afc482598
Merge branch 'master' into move-incompatibility-icon
2021-08-31 19:27:43 +03:00
Dean Herbert
fa2bf42188
Update tooltip implementations
2021-08-30 16:05:00 +09:00
Salman Ahmed
589f2863ca
Move incompatibility tooltip logic to local player mod select overlays
...
This one turned out to be a bit more involved, due to tooltips being
shared and having the potential of being used somewhere where it
shouldn't be, due to the same content type matching.
That's the reason I've defined a protected `TargetContentType`, to be
able to separate "local player mod tooltips" and regular mod tooltips
apart.
Definitely unsure about the solution, but that's as far as I can think
of right now.
2021-08-28 02:38:46 +03:00
Salman Ahmed
e527bfd4bf
Move incompatibility icon logic to local player mod select overlays
2021-08-28 02:37:46 +03:00
Dean Herbert
c3b7ce0b05
Remove stray newline
2021-08-24 14:02:50 +09:00
Dean Herbert
afd01d22d6
Adjust visuals of incompatible icon and move to own class
2021-08-24 14:01:49 +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
Henry Lin
b8fe03b77f
Use Mod.Equals
for comparison
2021-08-24 09:50:09 +08:00
Henry Lin
6e3d05c7ce
Display an icon to signify incompatibility instead of a red tint
2021-08-24 09:42:53 +08:00
Henry Lin
0bbddd297c
Remove unused code
2021-08-22 11:05:53 +08:00
Henry Lin
e213562b2a
Add a red tint on mods incompatible with the current selection
2021-08-22 11:01:17 +08:00
Henry Lin
ef6faf04be
Use FirstOrDefault in TooltipContent
2021-08-22 10:22:18 +08:00
Henry Lin
3d402d9e78
List incompatible mods in tooltip of mod button
2021-08-22 10:13:34 +08: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
PercyDan54
e1c646b9b2
Remove redundant arguments
2021-07-05 23:52:39 +08:00
Bartłomiej Dach
50c27d2635
Update usages of IHasTooltip
in line with framework localisation changes
2021-06-25 19:10:04 +02:00
Dean Herbert
5883922177
Remove mod multiplier completely
2021-06-25 16:36:31 +09:00
aitani9
62566f2a4a
Remove "Score Multiplier" text
2021-06-24 14:29:47 -07:00
Dean Herbert
b1fd812805
Merge branch 'master' into more-ui-sfx
2021-06-18 23:24:19 +09:00
Jamie Taylor
5ce52b2669
fix ModButton duplicate click sound
2021-06-18 21:41:07 +09:00
Dean Herbert
4de27429bc
Change ModSelectOverlay
to never deselect the user triggered selection
2021-06-18 13:17:55 +09:00
Dean Herbert
abc96057b2
Remove relative height specification and use constant height
2021-05-21 17:55:46 +09:00
Dean Herbert
7fc450c620
Fix mod settings blocking input outside its visible area
...
Closes #12502 .
2021-04-20 23:42:56 +09:00
smoogipoo
ccb83ef3a3
Fix checkbox not being updated
2021-02-22 15:47:47 +09:00
smoogipoo
c6ed3efa4a
Merge branch 'master' into non-concurrent-sample-playback
2021-02-15 14:47:32 +09:00
Joehu
982d8e35ed
Fix mod settings showing scrollbar when screen is offset
2021-02-12 10:42:48 -08:00
smoogipoo
d3f0c0730d
Merge branch 'master' into non-concurrent-sample-playback
2021-02-12 17:22:15 +09:00
Dean Herbert
98c5b0220c
Merge pull request #11725 from smoogipoo/freemods-user-settings
...
Add local user customisation for freemod mod settings
2021-02-11 16:02:24 +09:00
smoogipoo
822c66033f
Add local-user freemod configuration
2021-02-10 19:56:59 +09:00
Dean Herbert
b3b0d97354
Avoid potential feedback from bindable event binds
2021-02-10 15:33:04 +09:00
Dean Herbert
67c1c4c1eb
Copy settings before applying selection
2021-02-10 15:30:17 +09:00
Dean Herbert
435c85a2e7
Avoid executing selection twice on ModSelectOverlay load
2021-02-10 15:13:09 +09:00
Dean Herbert
a39263423c
Fix externally changed settings from being reset when ModSelectOverlay is initialised
2021-02-10 15:12:29 +09:00
Dean Herbert
75bc9f607e
Rename wrongly named method
2021-02-10 14:55:15 +09:00
Dean Herbert
8204d360a8
Always reset local user settings when a mod is deselected in ModSelectOverlay
2021-02-09 13:44:42 +09:00
Dean Herbert
3e750feaa4
Subclass LocalPlayerModSelectOverlay to correctly deselect incompatible mods on free mod selection
2021-02-05 16:42:35 +09:00
Dean Herbert
0750c3cb6a
Add back immediate deselection flow to ensure user selections can occur without contention
2021-02-04 23:44:46 +09:00
Dean Herbert
8f2f1a444f
Avoid resetting selection on deselecting incompatibile types
2021-02-04 19:55:09 +09:00
Dean Herbert
bf239f8bef
Flush animation on closing mod overlay
2021-02-04 19:12:37 +09:00
Dean Herbert
a2674f3c3f
Add comments
2021-02-04 18:58:56 +09:00
Dean Herbert
223b858227
Ramp the animation speed
2021-02-04 18:56:40 +09:00
Dean Herbert
f23ca7c7cf
Centralise selection animation logic
2021-02-04 18:10:55 +09:00
Dean Herbert
4bfe3aabdc
Simplify sound debounce logic
2021-02-04 17:06:11 +09:00
smoogipoo
f25535548a
Fix buzzing on select all/deselect all
2021-02-02 21:20:16 +09:00
smoogipoo
643c0605d8
Implement the freemod selection overlay
2021-02-02 21:14:38 +09:00
smoogipoo
8b3a85daa7
Merge branch 'refactor-mod-sections' into freemod-select-overlay
2021-02-02 21:09:51 +09:00
smoogipoo
728f8599b2
Move incompatible mod deselection to SoloModOverlay
2021-02-02 21:06:32 +09:00
smoogipoo
e58ece9e10
Make ModSelectOverlay abstract
2021-02-02 21:06:04 +09:00
smoogipoo
50e92bd0ed
Fix selection not being preserved when IsValidMod changes
2021-02-02 20:50:54 +09:00
smoogipoo
10ceddf3ff
Make IsValidMod adjustable
2021-02-02 20:47:50 +09:00
smoogipoo
75f81bfa06
Add back mod validation
2021-02-02 20:35:41 +09:00
smoogipoo
6d620264f4
Allow mod buttons to not be stacked
2021-02-02 20:27:41 +09:00
smoogipoo
3741f05ab3
Refactor mod sections and make them overridable
2021-02-02 20:11:40 +09:00
Dean Herbert
a5f3418e56
Avoid tooltip display
2021-01-26 19:11:19 +09:00
Dean Herbert
bb8113fb51
Fix mod select footer not animating correctly on first reveal
2021-01-25 14:47:47 +09:00
smoogipoo
de9d075f94
Initial sample + samplechannel rework
2021-01-19 17:11:40 +09:00
Dean Herbert
0b165dce4b
Fix multiplayer mod select showing autoplay as a choice
2021-01-18 17:50:32 +09:00
Salman Ahmed
375ecf92ed
Merge remote-tracking branch 'upstream/master' into fix-mod-buttons-not-copying-settings
2021-01-09 00:26:18 +03:00
Bartłomiej Dach
0cf5be3ef4
Fix selection change event being invoked with wrong mod
2021-01-08 17:02:57 +01:00
Dean Herbert
c208800150
Fix auto selection scenario regressing due to scheduling too much
2021-01-08 14:17:14 +09:00
Dean Herbert
5d8c153c1e
Move schedule logic to buttons rather than section
...
It turns out there's some quite convoluted scheduling / order of
execution requirements of ModSelectOverlay and ModSection. Applying
scheduling causes a runaway condition ending in zero frames after many
mod button changes.
I wanted to avoid rewriting the whole component, so have just moved the
schedule to guard against the part where drawables are actually changed.
2021-01-05 16:41:05 +09:00
Dean Herbert
4d6c13f169
Privatise ModSelectOverlay methods that may be unsafe to be called externally
2021-01-05 16:18:13 +09:00
Dean Herbert
57a8cd7461
Schedule deselection operations for safety
2021-01-05 16:17:58 +09:00
Dean Herbert
962c95dc01
Fix ModSelection making unsafe advances of ModSection
2021-01-05 15:19:37 +09:00
Salman Ahmed
988f9b98a1
Split button mods updating to private method
2021-01-01 16:16:00 +03:00
Salman Ahmed
a031c8e0b6
Apply documentation suggestions
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-01-01 15:34:09 +03:00
Salman Ahmed
2ce9599957
Copy selected mods properties into overlay's buttons
2021-01-01 03:47:13 +03:00
Dean Herbert
454e94574c
Add corner rounding and positional transform
2020-12-07 16:43:07 +09:00
Dean Herbert
7253866e17
Move customisation panel to be in same area as main content
2020-12-07 16:42:55 +09:00
Joehu
0f9b38da08
Add fade in/out animations to mod settings container
2020-12-06 11:35:14 -08:00
Dean Herbert
28daff1716
Stop mod select overlay hotkeys handling input when control is pressed
...
Closes https://github.com/ppy/osu/issues/10766 in about the best way we
can for now.
2020-11-10 17:57:59 +09:00
Dean Herbert
3e326a9234
Use bindable flow for event propagation
2020-10-14 15:22:17 +09:00
Dean Herbert
24eff8c66d
Rename container to match "settings" term used everywhere
2020-10-14 15:13:49 +09:00
Leon Gebler
3fd913b13f
rename customisation container class
2020-10-13 19:38:25 +02:00
Leon Gebler
663b806974
move ModSettingsContainer to seperate component
2020-10-13 17:45:40 +02:00
Leon Gebler
1a85123b89
rename container class to be more descriptive
2020-10-12 21:24:42 +02:00
Leon Gebler
7df9282727
CodeAnalysis fixes
2020-10-12 15:58:34 +02:00
Leon Gebler
e5548a1216
Move ModSettingsContainer class inside ModSelectOverlay
2020-10-12 00:16:18 +02:00
Joehu
4dacdb9994
Fix mod select overlay absorbing input from toolbar ruleset selector
2020-09-13 11:50:21 -07:00
smoogipoo
94834e4920
Select mods via exact types
2020-07-15 19:35:52 +09:00
smoogipoo
d8ebb8e3eb
Move override to a bit better location
2020-07-15 13:17:22 +09:00
Joehu
79f6092344
Fix back button not glowing when closing mod select with escape
2020-07-14 13:31:15 -07:00
Dean Herbert
832fa74a5e
Reword comment slightly
2020-04-28 13:26:42 +09:00
Joseph Madamba
a34ec03efc
Reword width comment
...
Co-Authored-By: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-04-27 12:44:20 -07:00
Joehu
1b9362041a
Revert multiplier number changes and set width
...
Safe arbitrary width taken from "0.00x" (highest width of 67), rounded to the nearest tenth.
2020-04-26 19:50:11 -07:00
Joehu
8a47a615db
Remove unranked label from footer
2020-04-26 19:29:22 -07:00
Joehu
4b60be87b5
Move unranked label under multiplier number to avoid width changes
2020-04-24 16:34:41 -07:00
Joehu
0f6ec274f9
Add transitions to footer when flowing to another row
2020-04-23 22:44:17 -07:00
Joehu
118db03b56
Fix vertical spacing and score multiplier splitting apart
...
Also cleans up margin and its hacks (alignment done with anchor/origin now).
2020-04-23 22:41:38 -07:00
Joehu
abb687286b
Fix score multiplier being cut off in mod select at higher ui scales
2020-04-23 22:34:00 -07:00
Dean Herbert
ed837d3115
Use framework extension method for FromHex
2020-03-11 10:18:41 +09:00
Dan Balasescu
3600b0daf0
Merge branch 'master' into fix-mod-select-overflowing
2020-02-04 11:57:54 +09:00
Joehu
22e3150f68
Fix comment and remove magic numbers
2020-02-03 17:21:06 -08:00
Joehu
609ee26030
Fix mod select overlay not showing up in test
2020-02-01 11:41:41 -08:00
Joehu
2d42a83bb9
Fix mod select overlay overflowing toolbar at max ui scale
2020-02-01 11:24:29 -08:00
Dean Herbert
7bf2e9b369
Decouple ModSelectOverlay from global SelectedMods
2020-01-30 17:38:15 +09:00
Dan Balasescu
e988976012
Merge branch 'master' into mod-autoopen
2020-01-23 15:34:19 +09:00
ProTheory8
61d7b63914
Readability Improvement
2020-01-21 09:30:11 +05:00
ProTheory8
41295bc27c
Difficulty Adjust mod customisation menu opens automatically now
2020-01-20 21:06:36 +05:00
smoogipoo
bfb056c612
Apply input method signature refactorings
2020-01-20 18:17:21 +09:00
mcendu
abdebcfddc
switch to changing Mod property
2020-01-14 20:11:32 +08:00
Huo Yaoyuan
ecfc6dfa3d
CA1825: use Array.Empty.
2019-12-17 12:59:48 +08:00
Dean Herbert
8052aeb238
Fix potential nullref in disposal logic
2019-12-13 21:36:50 +09:00
Dean Herbert
440a8470e1
Move available mods to global context
...
This also tidies up ModSelectOverlay and setting creation flow in general.
2019-12-13 21:36:50 +09:00
Dean Herbert
5624b9fd3f
Fix US english
2019-12-11 13:19:13 +09:00
Dean Herbert
a37af311d0
Simplify settings update logic
2019-12-11 13:19:02 +09:00
Dean Herbert
138b83c9ea
Merge branch 'master' into customized-mods
2019-12-10 19:13:32 +09:00
Joehu
e394b28799
Remove redundant transform
2019-12-08 09:12:32 -08:00
Joehu
463b6c0030
Remove whitespace
2019-12-08 09:04:34 -08:00
Joehu
8956768fe0
Fix mod buttons being selected when drag scrolling overlay
2019-12-08 08:55:45 -08:00
Dean Herbert
347373a3ba
Fix test failures
2019-12-06 19:04:55 +09:00
Dean Herbert
46d055604a
Customize -> Customise
2019-12-06 18:59:45 +09:00
Dean Herbert
a5d5099868
Use SettingsSource for mod cusomisation
2019-12-06 17:09:48 +09:00
Dean Herbert
af35df4077
Add multiple mod testing and update test code style
2019-12-06 15:42:11 +09:00
Dean Herbert
01a37771bc
Merge branch 'master' into customized-mods
2019-11-27 19:44:32 +09:00
Albie Spriddell
4cb09df754
increase padding
2019-11-22 18:23:48 +00:00
Andrei Zavatski
0f1a3d97c8
Naming adjustments
2019-11-21 20:34:19 +03:00
Dean Herbert
4516da223d
Merge branch 'master' into fix-mod-section-overflow
2019-11-12 11:35:01 +09:00
Huo Yaoyuan
ccc8aa6fa4
Apply brace style.
2019-11-11 20:13:13 +08:00
unknown
a92b32f6dc
add basic tests
2019-11-05 00:56:09 +08:00
Joehu
fe23b9a262
Fix mod section overflowing mod select overlay at higher ui scale
2019-11-03 07:32:47 -08:00
LeNitrous
9375ef5eea
clear settings controls when changing rulesets
2019-10-08 19:42:15 +08:00
LeNitrous
59b2f02828
initial implementation of customizable mods
2019-10-08 18:34:09 +08:00
Bartłomiej Dach
c4dc34eefd
Consolidate HoverClickSounds constructors
...
As suggested in review, merge both HoverClickSounds constructors into
one accepting optional arguments. Due to existing usages the parameter
is added as second and supplied by name in ModButton.
2019-09-01 13:10:11 +02:00
Bartłomiej Dach
658e0edc3e
Handle other button clicks in HoverClickSounds
...
As suggested in review, remove previously introduced HoverMouseUpSounds
and instead change effect playing logic in HoverClickSounds by moving it
out of OnClick() to OnMouseUp().
Users of the class can either use the existing constructor to play
the effect only on left click or use the newly introduced constructor
with the MouseButton[] parameter to specify which button clicks should
trigger the sound.
2019-08-31 20:16:16 +02:00
Bartłomiej Dach
a1c72db5f6
Fix inconsistent sound effects on mod buttons
...
Because HoverClickSounds.OnClick() does not fire upon right clicking
on mod buttons, the sound effects that play on left and right click
were inconsistent. Introduce HoverMouseUpSounds drawable that allows
to play the click sound effect upon mouse up events for an arbitrary
set of mouse buttons and use it on mod buttons.
2019-08-31 17:01:12 +02:00
Andrei Zavatski
1d42f0959a
ModIcon improvements
2019-08-07 08:46:27 +03:00
Dean Herbert
fa263b91a7
Attempt to fix tests
2019-06-21 00:12:39 +09:00
Dean Herbert
52ca5f9c00
Fix mod icons in ModSelect being loaded in a blocking fashion
2019-06-20 23:06:07 +09:00
Dean Herbert
08cf8dd299
Adjust for readability
2019-06-20 01:39:54 +09:00
andy840119
84b4e877f8
using FadeTo instead of show/hide
...
headerLabel.FadeTo() is still remain because effect can be visible when expand== true
2019-06-16 13:27:01 +09:00
andy840119
1a73178260
using FadeTo() instead of FadeIn()/FadeOut()
2019-06-15 13:28:03 +08:00
為什麼
9114c8dee7
remve unnecessary effect.
2019-06-14 11:44:03 +08:00
為什麼
0db9816321
expanded -> expand
2019-06-14 11:23:41 +08:00
為什麼
c30e467717
oops
2019-06-14 11:12:30 +08:00
andy840119
3a14794c43
use show/hide instead because FillFlowContainer's spacing
2019-06-14 01:43:20 +09:00
andy840119
4f0aff3d9c
hide label when mod is empty
2019-06-14 01:12:56 +09:00
Dean Herbert
609a82bc94
Update VisibilityContainer usage in line with framework
2019-06-11 15:13:58 +09:00
Dean Herbert
8f30c9b0a3
Fix file layout of ModSelectOverlay
2019-06-07 15:58:24 +09:00
Dean Herbert
7ffc08b187
Merge branch 'master' into master
2019-06-07 15:34:14 +09:00
Dean Herbert
b914bb1e2e
Remove key hints for now
...
A proper design for this will come in the future.
2019-06-07 15:32:48 +09:00
Dean Herbert
0ce5c7468f
Use switch and consume/block input
2019-06-07 15:31:23 +09:00
Welsar55
c04c6693c2
Change close action from PopOut to Hide and switched to TriangleButton.Click()
2019-06-05 13:01:21 -05:00
Welsar55
194bb80354
Added close button and indictors of hotkeys to buttons
2019-06-03 11:09:21 -05:00
Dean Herbert
4ca34bd5e8
Update osu! in line with audio subsystem refactor
2019-05-28 17:06:01 +09:00
Welsar55
9e1f2d4fbc
Added ability to reset all mods by pressing 1 as present on stable.
2019-05-21 21:48:09 -05:00
smoogipoo
d7c09e7dbd
Merge remote-tracking branch 'origin/master' into fix-new-inspections
...
# Conflicts:
# osu.Game.Rulesets.Catch/Judgements/CatchDropletJudgement.cs
# osu.Game.Rulesets.Catch/Judgements/CatchJudgement.cs
# osu.Game.Rulesets.Mania/Scoring/ManiaScoreProcessor.cs
# osu.Game.Rulesets.Osu/Replays/OsuAutoGenerator.cs
# osu.Game.Rulesets.Osu/UI/Cursor/CursorTrail.cs
# osu.Game.Tests/Visual/SongSelect/TestCaseBeatmapScoresContainer.cs
# osu.Game/Graphics/OsuFont.cs
# osu.Game/Online/API/Requests/Responses/APILegacyScoreInfo.cs
# osu.Game/Overlays/Profile/Header/BadgeContainer.cs
# osu.Game/Overlays/Profile/ProfileHeader.cs
# osu.Game/Screens/Select/PlaySongSelect.cs
# osu.Game/Skinning/LegacySkinDecoder.cs
2019-05-07 13:20:17 +09:00
smoogipoo
0222424aef
Make mods IReadOnlyList<Mod> gamewide
...
Prevents potential multiple evaluations of enumerable.
2019-04-10 17:20:36 +09:00
smoogipoo
4310f07a5c
Rename SelectedMods -> Mods
2019-04-10 12:03:57 +09:00
Dean Herbert
612db31c38
Apply newline additions
2019-04-01 12:16:32 +09:00
Dean Herbert
b7126b3efb
Fix mod select overlay dimming itself
2019-03-02 14:48:05 +09:00
Dean Herbert
0788a7e9f1
Merge branch 'master' into more-inspections
2019-02-28 14:32:57 +09:00
Dean Herbert
42be7857d1
Use expression body for property get/set where possible
2019-02-28 13:58:19 +09:00
Dean Herbert
26d53d06a9
Fix remaining issues
2019-02-28 13:31:40 +09:00
Dean Herbert
3015d40f8f
Merge branch 'master' into osu-fontusage
2019-02-22 18:09:23 +09:00
smoogipoo
d8c55bc729
Adjust namespaces
2019-02-21 19:05:52 +09:00
smoogipoo
bca347427f
Update with framework bindable changes
2019-02-21 18:56:34 +09:00
smoogipoo
4db5531e4b
Replace copy-constructor/method with extension method
2019-02-20 19:32:30 +09:00
smoogipoo
a2aa3ec5cb
Adjust sprite texts in-line with framework changes
2019-02-20 15:03:20 +09:00
Dean Herbert
a25dce53cd
Fix logical regression
2019-01-25 15:03:32 +09:00
Dean Herbert
787d4da153
Combine constant
2019-01-25 14:10:59 +09:00
Dean Herbert
8617aaa2a7
Update licence header (and remove year)
2019-01-24 17:43:03 +09:00
Unknown
6eff79913b
remove blank lines
2019-01-11 10:34:56 +01:00
smoogipoo
f27bd3ef3e
OpenTK -> osuTK
2018-11-20 17:14:59 +09:00
ekrctb
b7a2ad1aa5
Use UIEvent level getters for modifier keys.
2018-10-02 13:26:36 +09:00
ekrctb
50091252e2
Adapt signature change of event handlers
2018-10-02 12:02:55 +09:00
ekrctb
99fc04c8af
Change signature to new event handler
2018-10-02 12:02:47 +09:00
smoogipoo
a8f156584b
Update framework with positional/non-positional changes
2018-09-26 14:01:15 +09:00
Dean Herbert
03084aa04b
Revert async changes
2018-08-31 07:07:10 +09:00
smoogipoo
e7a5816d27
Use GetAsync for all samples
2018-08-27 17:30:16 +09:00
smoogipoo
aa3f6337a2
Add comment
2018-08-15 09:14:07 +09:00