Bartłomiej Dach
6cd18fad99
Fix code inspections after base panel class extraction
2022-07-21 23:29:08 +02:00
Bartłomiej Dach
d796b7d53c
Extract base mod select overlay panel presentation logic
2022-07-21 22:37:00 +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
Dean Herbert
f71f6302fd
Remove unnecessary null
casts
2022-06-24 14:50:11 +09:00
Bartłomiej Dach
7013909322
Remove unnecessary protected virtual
2022-06-21 16:43:04 +02:00
Bartłomiej Dach
f564ed589f
Alter sequential hotkey style to always use visible index
...
Previous behaviour was once mentioned off-hand as unintuitive.
2022-06-21 15:22:18 +02:00
Bartłomiej Dach
9e5cc89edb
Fix classic hotkeys toggling filtered mods
2022-06-21 15:01:33 +02:00
Bartłomiej Dach
da1814e7c3
Restructure everything to fix free mod overlay issue
2022-06-21 14:48:41 +02:00
Bartłomiej Dach
7b7b8c1892
Implement behaviour for classic selection style
2022-06-21 14:24:30 +02:00
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