* Improve profile and player selection screens
- Ask before deleting a profile, Delete only removes a character while editing the name
- Ask to save or discard unsaved profile changes when leaving the profile screen
- Restore the previous name with Escape and prevent empty profile names
- Stop the webcam when leaving the profile screen and discard snapshots on avatar change
- Show inactive profiles dimmed in the profile screen
- Play the missing mic/profile warning each time the player selection is shown
- Fix crash when clicking a profile after removing a player with Delete in fast selection
- Keep the duet part selection when profiles are reloaded
- Only save the player number when it has changed
* Use party mode selection look in statistics screens
- Tiles and selection use the ButtonTile skin like the party mode selection, the selected tile uses the selection color of the skin
- The detail list uses the CoverTextBackground skin, inner cards and row stripes the ButtonTile skin
- More space between the title and the columns of the best list
- Show the date in the recently sung list left aligned inside the list
* Changelog
* Improve sing screen and redesign pause menu
- Fix jumping to the old pause position after restarting or skipping a song in vocals mode
- Keep name and avatar hidden for players without a valid profile
- Show the placeholder avatar for profiles without avatar image
- Hide player information and rating popups during the start countdown
- Fix pause select slides not being shown or hidden
- Show "no more songs" only when Ctrl+S is pressed
- Select "Continue" when opening the pause menu with Escape
- Darken the game behind the pause menu
- Pause buttons as vertical list with icons, hidden buttons leave no gaps (visible buttons are placed in the slots of all pause buttons)
- New PauseButton skin with rounded corners for wide buttons, used for the pause buttons and the vocals volume selection
- Larger pause title centered above the pause panels
- Info panel with cover, title, artist, song progress and player scores
- Vocals volume selection with icon and centered caption in the full width of the info panel, showing five values
- Pause panels and icons are animated together with the pause buttons
---------
Co-authored-by: Florian Ostertag <flokuep@users.noreply.github.com>
A new party mode for 3 to 16 players who sing against each other in one-on-one duels. Whoever scores more points moves on, the loser is out, until only the champion is left.
- The bracket is shown mirrored: both halves lead towards the final in the center, where the champion is crowned
- Players are drawn randomly; if the number of players doesn't fill the bracket, some players get a bye in the first round
- Songs are picked randomly from all songs, a category or a playlist, sung as normal, short or medley version, and no song is played twice
- Each player has up to 3 jokers for the whole tournament to skip a song they don't like
- On a tie, the duel is sung again
- The winner of each duel visibly moves on to the next round, and the champion is celebrated at the end
Also fixes "Select random" in the player selection of party modes, which only filled half of the slots.
Co-authored-by: Florian Ostertag <flokuep@users.noreply.github.com>
* Apply R# clean-up for reliability
- Migrate to NUnit4 Assert.That
- Update dependencise versions
- Fix LangVersion to 9.0 (until net core migration)
- Reformat code
- Apply 'var' style (easier for refactoring)
- Remove redundant parentheses
- Add braces on every condition blocks (1 line)
- Uses new null checking patterns
- Uses AutoProperties when possible
- Uses string scalar type instead of class
- Clean usings
- Add .orig files in git ignore
- Rename some properties to respect defined conventions and US format definition
- ID -> Id
- BPM -> Bpm
- Finish -> End
* Update R# settings according to the clean-up made
NO functional changes. If you have problems merging your changes, merge/rebase on previous commit then merge this. Conflicts can easily be resolved (take yours if in doubt)
After that merge next commits