Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expand scope of "solo/referee" sides #12632

Open
riverwanderer opened this issue Sep 2, 2023 · 1 comment
Open

Expand scope of "solo/referee" sides #12632

riverwanderer opened this issue Sep 2, 2023 · 1 comment
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@riverwanderer
Copy link
Collaborator

I propose a change to isSoloSide() to allow for multiple solo / referee sides within a module, and to allow for auxiliary sides with arbitrary names. An "auxiliary side" is one, for example, that may move pieces on the board within a turn but does not control the turn itself. An example of this is found in Commands & Colors modules (Epic & LGB format scenarios).

Currently, isSoloSide() returns true if the side equals "Solitaire", "Solo:", "Moderator" or "Referee".

I propose that isSoloSide() will return true if the side is "Solo" or begins "Solitaire", "Solo:", "Moderator", "Referee" or ".".

The "." prefix specifies an "auxiliary side".

isSoloSide() is used by PlayerRoster, ChessClockControl and CheckClock.
Within PlayerRoster, the change has the desired effect of skipping the now expanded "solo" sides.

The association with Chess Clock logic, implies that any sides starting "." will be impacted in the Chess clock functionality in the same way as the Solo sides (I recall that Solitaire "sides" don't get offered by the clock component). A designer will be unable to use the auxiliary side exclusion prefix if this is not acceptable for their module; this is likely very rare and no worse than the current situation.

In the unlikely event that an existing module contains a side name starting with a period (.), such a side will be excluded from the side switching default and chess clock. These impacts are minimal and easily addressed in an update to the module, if the new behaviour is undesirable.

@riverwanderer
Copy link
Collaborator Author

riverwanderer commented Sep 8, 2023

Example use-cases for the expanded number of solo and other roles to be skipped when hot-seating.

  1. A module may have special solo roles that can be started automatically if a user starts a game in that role. Example: C&C Ancients has 3 solitaire modes. These roles can be skipped by the "starts with" changes (e.g. starts with "Solo:".

  2. Some roles don't apply for particular scenarios. Example: C&C Ancients has 6 auxiliary roles for Epic scenarios. These roles are not required if hot-seating. These roles can be excluded by defining the property VassalSkipSideList (which replaces the idea of using a special character to prefix side names.

@riverwanderer riverwanderer linked a pull request Sep 8, 2023 that will close this issue
@uckelman uckelman modified the milestones: 3.6.20, 3.8.0 Sep 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants