Recording optional rules - examples/suggestions

I temporarily put it on oneDrive.
Demo_SetupWindow_v1.vmod

If it’s useful, I will post it in the modules area along with some explanations that I haven’t written yet.

Terraforming Mars does something very similar. One problem my friends and I discovered with this approach was that it was possible for multiple people to hit the button that started the game at the same time (it took quite a few seconds to process the command and then hide that button from other players), and that would cause complete havoc (although a simple Undo always seemed to fix things). So, I ended up modifying the Start button action so that it would only respond to a single player (the one who started the game).

1 Like

Have a play with VASSAL-3.6.12-SNAPSHOT-83bdcd1-ScenarioOptionsV2

Changes:

  • Scenario Option Tabs are defined in the Module Global Properties component. They can be defined inside a Global Properties folder.
  • Tabs are lockable with basic security.
  • Cancel button to back out of changes. Changes only applied on Ok.
  • Reporting of all changes.
  • state of tabs and options stored in save/log file.

I am just looking at basic recording of scenario options rather than a fully fledged custom game setup, these custom module options go way beyond that.

I’ve added the Hotkey on change feature so you can do some automation, but you will have the same problem as jrwatts had - 2 people hitting OK at once,

Quick Test (WIN64)
No sides defined, started new scenario (no predefined setup)

Title of Window: ScenarioOptions.window_title

Tab appears w/ correct title
Lock Options button is grayed out and can’t be clicked
Checkbox option - appears visually correct, but can’t be clicked/modified
String option - appears visually correct, but can’t be clicked/modified

Thanks, I must not be handling the no sides defined case properly.

Try VASSAL-3.6.12-SNAPSHOT-8832f28-ScenarioOptionsV2

WIN 64

Seems to work now.

  1. I like the format for the lock/unlock report, except possible put the $tabName$ in brackets (e.g., [TAB])
  2. Recommend change default report for changing options
    FROM:
    $PlayerId$ changed $tabName$ $propertyPrompt$ from $oldValue$ to $newValue$
    *** changed BLAH zoid from NO to YES**

TO: $PlayerId$ changed Scenario Option [$tabName$] $propertyPrompt$ from $oldValue$ to $newValue$
*** changed Scenario Option [BLAH] zoid from NO to YES**

Thanks, good suggestion.

I’m thinking I will add ‘Are you sure’ dialogs when locking.unlocking tabs. It won’t happen that often and it’s pretty easy to click them accidentally.

Do you think we need to display the date/time the tab was locked along with the user name? Just to confirm the options haven’t been ‘accidentally’ changed by the locker after the game started?

Brent - both sound good…

Hi,

I have used a similar approach to shilinski and jrwatts above in the 2.0 of D-Day - Smithsonian edition.

I have a board with the list of optional rules, and pieces placed on this board. The board is shown on start of game. Turn tracker sends GKC to check for initial set-up (first turn, first phase), and pieces on the optional rules board cannot be moved after this. Flipping the pieces on the optional board toggles global properties that reflect the rules used.

In some cases, pieces have to be removed if an optional rule isn’t used. This happens when the game is moved to the second phase of the first turn.

Since I build the module via Python pywargame this is pretty straight forward to do.

Yours,
Christian

BTW - another use case for locking Scenario Options would be a refereed game, where the referee is the one to set (and lock) the scenario options.

No change from the existing approach, but another cool way it could be used…

For V4, if you choose to implement my idea of a) Referee (active) and b) Referee (passive) as standard predefined “sides”, both active and passive Referee should be able to set and lock the options.

@Brent_Easton

Did this not make it into 3.7? I didn’t see any mention of it in the new features list…

It will be in the beta 2, I haven’t had a chance to finish it off.

1 Like

Joel was too quick for me, it will be beta 3.

Any estimate of when we may see 3.7Beta3 and 3.7.0 Release?

Looking forward to getting this update into EE.

There are four PRs which should be merged before 3.7.0-beta3, one of which is still being worked on. So, it will be a few days before we release 3.7.0-beta3.

Just want to extend Kudos to the Vassal Team and @Brent_Easton (particularly) for this capability.

It’s a significant enhancement for the Europe Engulfed module and should be incredibly useful for any games that have optional rules.

2 Likes

Seconded from me and also to @Korval for the idea.

I’m using it for a variant purpose - configuring initial hand sizes, as well as special rules. So much better than methods I was using before - great to have all the configuration available in a common place.

1 Like