Facilities to lock out selected Player Sides

Locking out player sides which are not relevant to the scenario can help players joining a game and allow player side switching to be as efficient as possible for solo players. With a lot of scenarios it is impractical as the manual effort is high.

This request is to give the module developer the ability to lock out certain player sides, as a one time or dynamic operation, preventing players from joining or switching to that side.

Two possible facilities are envisaged:

  1. A mass refresh akin to PDS Refresh or tacked onto it that would disable a specified list of Player Sides.

  2. A dynamic facility that would allow each PlayerSide to be disabled/enabled using a Hotkey specified for that side (in the Player Sides component). This would be especially useful for modules that provide a Solitaire role, as it would allow the role to be locked out once an opposed game is underway.

Thinking about this again in a way that would not interfere with Buildfile.xml to be achievable in v3.6 … here is my idea for consideration:

  1. A special global property at Module level, let’s call it VassalSideExcluded is reserved to Vassal. Something anyway that no module will have used or might use unintentionally.

  2. A module that wants to exclude sides from being chosen will set this special GP to a Regex that specifies the side or sides to be excluded. We can expect that this will be set dynamically, depending on the module’s rules for set up a game.

  3. The Vassal side switcher will process its list of available sides and exclude any that match the special GP RegEx.

Similarly, the side switching prioritiser that @Cattlesquat introduced back in v3.3 (?), could reference another special GP - call it VassalSideDefault - which would become the side to be presented as default (presuming valid) - by the side switcher.

A third GP - call it VassalSideAuto - when true - would cause the Vassal side switcher to automatically adopt the default side (e.g. VassalNextSide), the next time the side switcher is used (normally this would be immediately, in an automated sequence).

I know that these features would make it easier to de-clutter scenario joining and make for fast solo play using the same sides as normal play in some of the modules I work on. Hopefully others would also find them helpful.