I recently started redesigning a game mod for me and my friends. I spent a couple weeks learning how VASSAL works, and fixing various bugs and inconsistencies within the module, and I’ve gotten it to the point where it’s actually playable.
However, the one feature it’s missing is proper location reporting for the actual game map. The map is an irregular grid with regions named as coordinates. This is because the players are required to place pieces on the board in order to form the map at the beginning of the game.
So, my question is this: Is there a way to change the name of a region based on the piece that’s placed in it, and if not, is there a method by which I can report movement based on a variable not associated with the region (such as one defined on a specific piece of the game board)?
There is a way to do it if the number of different regions is ‘reasonable’. It will take a bit of work, but can be done if you are keen.
I’m guessing we are talking about hexagonal regions a la Settlers?
You would need to remove the Irregular Grid and replace it with a Multi-Zoned grid and create one Zone for each region. Zones can contain Global Properties, so create a Global Property in each Zone named ‘ZoneName’ and default it to the intial name of the zone.
You can now use $ZoneName$ in the movement message to report movement.
And you can use the ‘Set Global Property’ trait to have counters in a zone change the value of the ZoneName property, thus changing the reportable name of the zone.
Add the hex grid inside the multi-zone grid, then in each zone, check the ‘Use board’s grid’ option and pieces landing in that zone will use the main hex grid.
Otherwise, you would need to create some sort of grid inside each zone to get snapping.
Actually, thinking about it, there is no reason why you can’t use your existing irregular grid as the background grid - You will just need to cut and paste it from the board level to inside the multi-zone grid.
I am trying to utilize your recommendation of using Global variables to change the name of Multi-Zone grids.
My main map is a contiguous set of zones each shaped as a ‘megahex’, that is, a central hex and is surrounding hexes. There are Deck pieces that have an image of the megahex terrain. Each card in the deck has its own name, for example, Asteroid Field or Nebula. A Card is moved to the main map and never moved again (sets up player defined terrain); when all cards are placed, the map is ready for play. Individual units from the players ply the map on top of the ‘Cards’.
When these units move from one Card-Zone to another, it’s reported as “TerranPlayer moves Scout from Sector02 to Sector05”.
The Message on the Main[Map Window] Properties is: $playerSide$ moves $pieceName$ from $previousLocation$ to $location$.
It would be nice if the $location$ expressed the name of the Card instead of the Zone, e.g., “TerranPlayer moves Scout from Asteroid Field to Nebula”.
So I created a Global Property in each Zone named ‘ZoneName’ and default it to the initial name of the zone. However, I don’t see $ZoneName$ in the movement message on the Main[Map Window] Properties to report movement. When I add it by hand, nothing for $ZoneName$ is reported.
Also, I included a CTRL SPACE key command to apply to every piece that ends movement on the map. I use this Key Command to affect a trigger on the Cards that would update the ZoneName with the card name using a Set Global Property. Still see no change.
Could you (or anyone else) point out the subtlety I am missing?