VASSAL Module: Advanced Civilization
This help file describes some of the internals of the Advanced Civilization VASSAL module. You can find game-related information here:
Design Notes
Unfortunately not very complete…
Keyboard Commands used
- CTRL D
- Delete (piece) (only for markers, for tokens not allowed except for sides Setup, Master to repair certain situations)
- R
- Rotate Piece clockwise
- CTRL SHIFT D
- Discard selected trade cards
- Reset Detail Level of calamity cards to 0
- CTRL SHIFT L
- Change label on marker piece
- ALT CTRL R
- Return token to deck
- <arrow right>
- step through Layers
- CTRL F
- Flip (piece/card)
- CTRL M
- Mark Moved (piece)
- CTRL N
- Open Notes window
- CTRL X
- Place conflict marker (piece)
- ALT CTRL SHIFT C
- show/hide counters (pieces) window (for Setup, Master, Solitaire only)
- ALT CTRL SHIFT T
- place piece Text label (= dummy image marker piece)
Non-Keyboard "keyboard commands":
- startup_command
- runs once at game start, used to set some GPs
- open_setupwindow
- opens the setup window
- open_player_hand
- opens the player hand for that side
- open_civref_map
- opens the civ advances references; restrictions enforce that only the map for that side opens (if used by Setup, Master: all open)
- adapt_num_players
- multi-action button "Set Number of Players"
- toggle_map_labels
- toggles display of region labels on all maps
- show_trade_images
- sets the display options for the trade variant
- send_8population
- send all additional setup decks to population decks
- send_to_temp
- move all tradecard deck remainders to temp decks
- set_greyout<num>
- set the Greyout<num> global property
- shuffle_temp_tradecards
- shuffle all temp tradecard decks
- sendback_temp_to_tradecards
- move all temp decks to trade decks
- sendback_discard_to_tradecards
- move all discard decks to trade decks
- zero_civpoints
- resets the civ points on one player mat to zero
- update_civpoints
- "end movement" triggered command on player mats
- increment_civpoints
- set global property CivPointsTotal from civ card piece
NOTE: for most of the "non-keyboard" commands there is also a "fire_*" key command that triggers a global hotkey; in that case the commands shown are the global hotkeys triggered.
Implementation of Map Variants "Overlays"
Global Properties
Set by Startup Command (1 = true):
- HasMapWestern
- HasMapEastern
Trade variant
- Only used if ShowTrade = 1 (button in Setup window)
- Calculated layers show: Standard or (Main - Sardinia) + Western: New Carthage
- layer # = if(ShowTrade==0; 1; 1 + HasMapWestern
- Calculated in both overlay pieces on Western + Main map Start zones: Calculated Layer #s show layer # = 1 + HasMapWestern + (2*HasMapEastern) -> possible results 1…4
Greyout Zones
- Left (panel 1, 1+2, left half to dotted line): controlled by GP ShowGreyoutLeft
- calculated layer level always set to "none" (=layer level 1) if Western extension is in use
- Right (panel 4, 3+4, right half to dotted line): controlled by GP ShowGreyoutRight + calculated layer level
- always set to "none" (=layer level 1) if Eastern extension is in use
- Island city sites overlay: Always used if NumberOfPlayers = 2
Map Layers
Maps have an "Overlay" and a "Labels" layer:
- "Overlay" is higher than "Labels" (because greyouts should also cover the region labels).
- NOTE: Pieces not assigned to any layer will be in an implicit "top" layer above "Overlay".
- All overlay Pieces have a Layer trait that assigns them to the Overlay map layer.
Trade Card behaviour
- Trade cards flip to their masked side when they are drawn from any place to the "Trade Board" zone on the Trade Cards map. This is done by a combination of an "end of movement" trigger on the map and a trigger on the cards (in the card prototype) that flips the card if it is NOT "ObscuredToOthers".
- Calamity cards can step through layers to show details about that calamity.
VASSAL is an open source project. Advanced Civilization is a boardgame by The Avalon Hill Game Company (1991). The Advanced Civilization module was created by
Lutz Pietschker
(PunTheHun at boardgamegeek.com).