Specific card placement in deck required, lower quarter

I’m new to this, so please don’t beat me up for asking a question that might have already been answered. I searched for quite a while but didn’t find anything that helps me for my, probably somewhat unusual challenge.
For my module for “Zombies!!!” (not listed anywhere yet) I have to position a single card (the helipad) in the lower quarter of the Tile-deck. Right now it is probable that we might draw the helipad way too early in the game. The board game rules specify to manually place the card in the lower third of the deck after shuffling, and then shuffle that lower third again by itself.

Would anybody have an idea how I can get this accomplished in Vassal?


There are a few methods. This one’s based on this:

vassalengine.org/wiki/How_to … _of_a_Deck

I’m going to shorthand most of it, so just ask if you need clarification or something isn’t working. It should place the card to the bottom of your manually shuffled deck (which should be shuffled prior to card placement), then will randomize that card into the lower third by moving it X times up from the bottom (X being from zero to however many cards make up the lower third).

So have your deck be manual shuffle. Have your applicable card start outside the deck. In that card you will add two Trigger Action traits, a Return to Deck trait, and a Layer trait. You can put these four into their own prototype for that card to make it cleaner.

Layer trait… set to always active; no commands; no keys except something to randomize it; then click “Add Level” until you get as many levels added as there are placements in the lower third of the deck (so if the deck is 39 cards total, add levels until you see Image 1 through Image 13 listed in the level panel). You don’t need to add anything else: no level names and the actual images for each level should be kept blank. All you’re doing with this trait is randomizing a number for the card.

Return to Deck… no menu command; add a key command; select the appropriate deck.

Trigger Action 1… menu command and key to “Randomize into deck”; have it perform these steps:
[the ‘return to deck’ key command]
DOWN [that’s added via the DOWN ARROW key - placing the card to the bottom of the deck]
[the layer’s randomize key command]
[a new key command to trigger the next trigger action trait]

Trigger Action 2… no commands or keys… Watch for: [that key command just added to the last of Trigger Action 1’s perform list]… perform: RIGHT [the RIGHT ARROW key - which moves the card up in the stack]
Then check: “repeat this set…”; loop: “fixed number of times”; how many times (for the following, substitute the name of your randomizing layer for “layername” and use the brackets): {layername_Level}; then for “perform this key once after looping completes”: LEFT [the LEFT ARROW key - you add this as the randomized layers start with “1” rather than “0”].

That’s it. All this can be done automatically with a startup GKC too. Hope that helps.

Wow, thanks so much ! I’ll give this a try today.

So… am I correct that Key Commands are required throughout Vassal when using more complex activities, and that they are not necessarily to only be used as user initiated key commands, but instead a sort of command mechanism for the engine itself to send “commands (triggers/instructions)” from game objects to other game objects?

Right, yeah. I didn’t want to complicate the previous anymore than it was, but for any hidden key commands (ones not seen in a piece menu, etc), you can use a written command line instead… if I worded that correctly.

For example, for the Trigger Action 1 key command (for its visible right-click menu command) of “Randomize into deck” might be ALT R.

But for the key command to trigger Trigger Action 2 - since it’s hidden - you could use something like “goT2” (w/o the quotes). Then the “watch for key command” for Trigger Action 2 would of course be: goT2. This stuff - still kinda new to me too actually - frees up regular key commands and actually makes things cleaner in the long run.

The layer’s randomize “key command” can be the same thing… like “randomplacement”, which would be the third perform action listed for Trigger Action 1.

Hope that’s clear.