I thought I'd do some quick potential mockups based on the concepts posted by Max. I have zero knowledge of layout coding in java so I can only go as far as the design. I've tried to work with currently used components so assume it should all be possible at least. Layout two below is the winner, but posted both options I was working on for general interest.
The first layout is a bit more compact. Deck randomization would work slightly differently though due to the dropdown list implementation, and I'm quite frankly not sure how we'd implement the random color decks. It would also be difficult to add deck filtering systems.
Layout two is a bit more robust but it will be a close call as to whether it will fit on our minimum screen size. It implements the current deck chooser so should work with any improvements planned for it as well.
General comments:
- Player 1 and two cannot be removed.
- Player 1 name is populated from preferences, but can be edited (possibly overwriting the current preference). The other players names would be assigned randomly as they are currently when starting a match, but can also be changed.
- Player 1 avatar will use the last used avatar while the rest would be assigned randomly as they are currently when starting a match. Clicking the avatar would allow a new avatar to be selected which would finally mean you don't end up playing EvilJeremy that looks like
Serra Angel.
- The team selection would be assigned 1 player a team by default. I think it would be easy to then add one extra condition to Player.isAlly(Player) that checks that the players are both on the same team. It would make it easy to customise multiplayer matchups based on player strength.
- Variants could be incorporated into this layout fairly easily. For archenemy teams would be assigned based on the player selected as archenemy (which we'll hopefully be able to assign to someone other than the human). Just add an extra tab to each player for Vanguard selection etc. This would hopefully start making progress towards being able to implement multiple variant games.