Dynamic side-choice

Continuing the discussion from Is it expected that someone can log into an ongoing game as Referee?:

It occurs to me that it would be a useful feature if the module developer were able to dynamically adjust the list of available sides. That is to say, disable or enable the sides offered during a game.

Some use cases for how this feature might deliver added value when integrated into the module’s side-switching and turn workflow:-

  1. To disable sides that aren’t applicable. For example, in a 3-6 player game that has been started with 3 players. So new-comers will only be offered <observer>.

  2. To disable Solitaire mode once another side has been selected.

  3. To disable all but the next side - to facilitate a solo-mode game where the solo player is switching sides at turn end. Solo / test mode side switching already works very well for 2 player games and games that proceed in a fixed sequence down the player side list. Dynamic side choice would allow this benefit to be extended to games with a variable player order.

Implementation
Perhaps the feature could be incorporated by specifying a Global Property that, when set, would list the sides to be made available and the order. So, in this example,


The name of a Module level Global Property would be specified as a new field in this panel.
The property would be set (by the module) to either null or to a regex specifying one or more of the available Side.
When “Retire” dialog is offered, if the property is not null, Vassal would do a regular expression match on each available side against the global property before including that side in the offered list. <observer> would always be offered. The default side logic would continue to operate as now.

1 Like