HELP: automating stacked piece send to/from board zone?

I am thankfully almost ‘there’ with my hockey card game module. Thanks for all the help already given. And I must say using GIMP to import multi-page PDF’s, guillotine them into layer stacks of cards/counters, and using the Script-Fu “Save Layers” to save the separate layers as PNG’s is just incredibly quick and easy. The first time through, for my “Fast Action Card” deck it was a bit of a learning process, but next time through I took a 90-page PDF file of 810 player cards and had 810 perfectly cut player card PNG’s in about 5 minutes.

I have two more questions that have come up.

FIRST…

I have a multi-zone board with named areas for each on-ice player position and also for several ‘bench’ areas for each forward or defensive line on the bench. Essentially there is one player card in each on-ice area (penalties aside for now) and my plan is to have the players stack the player cards by intended position (ie top-to-bottom LW-C-RW for a forward line or LD-RD for a defensive line) in the bench areas. The forward and defensive line bench areas for the lines on the ice would of course be vacant.

What I want to do, because this game moves very quickly and right now the most time by far is consumed with shuffling player cards around making a line change, is to automate the (full strength) line change process (oh no automation - but this will probably reduce overall playing time by a factor of 2 or 3). I envision a set of four global variables for Home/Away forward/defensive line numbers on the ice and then a set of 4 buttons to change to one of 4 Home forward lines, 3 buttons for Home defensive lines, and a duplicate set of buttons for the Away team. This way the player can change line rotation arbitrarily.

How would you recommend I go about doing this?

Each button would have to first take the on-ice player cards (these are standard pieces with only a basic piece trait to link to the image file) for two or three named board zones and return them, stacking in order, to another named board zone which would depend on the global variable for which line is on the ice. Then the button would have to take the stack of player cards from another particular (to the button) named board zone and distribute them in order of how they stacked into the same two or three named board zones from which it previously pulled the on-ice cards.

Can this even be done?

SECOND…

What are some good ways to handle just dealing with two 27-card teams, home and away, out of a 30-team set of 810 player cards? This may not be too complex - it is just something I have put off giving much thought until I get the other module mechanics nailed down.

I do want to eventually store each season player card set in a separate module extension instead to allow for the chance that you can bring in a player card set from a module extension file either for different years of cards or for a draft league where the teams do not necessarily correspond to the ‘real’ teams. So the full set of player cards for the season in the extension should probably reside in a bunch of off-board at-start stacks that the players can pop open to grab one stack each and plop them on their respective benches and away they go.

Again thanks for the help as always.

I have created a chart with a map called ‘Teams’ and am using that to hold the at-start stacks of 27 player cards for each of 30 teams. Simple to use since during game prep you just grab a stack and plunk it off the Teams board and onto the playing board on your bench, then set your line rotations by distributing player cards from that stack to the various bench locations for the lines. Finally pick a starting goalie and you are ready to play.

An oddity… the properties dialog for the initial map window at top-level in the module has a check box to include a button to show/hide the map, which is unchecked by default (so no button). But the properties dialog for a map window you get from adding a map to a chart is mostly the same but is missing this check box. The odd thing is the default seems to give you a show/hide button for the map, which is however already shown/hidden by the chart button.

I believe I probably want to use a second ‘root’ map window and add the show/hide button which might be cleaner - but I am just letting the devs know that this is what happens which seems like contradictory behaviour. Not sure enough about that file it as a bug however.

As a for instance… my first thought is to use a several versions of a “Global Key Command”.

For the command to return the Home team 1st Line RW to the bench…
Under the “Matching properties” expression set:
LocationName = Home RW
Home Line On Ice (a global property) = 1
(note I believe I could instead use a Trigger Action trait on each player card with a filter for these properties)
…and have the “Key Command” issue say a ALT-SHIFT-CTRL-1

Then add to each player card a prototype definition including a trait “Send to Location” with the destination set to “Home Bench (1st Line)” on key command ALT-SHIFT-CTRL-1.

Still thinking about how to do the other part of the line change - sending a stack of player card pieces in another certain location (say “Home Bench (2nd Line)”) to different named locations (“Home LW”, “Home C”, “Home RW”) based on their position in the stacking order.

Is the position in a stack a property that I can use in a “Matching properties” expression? If so that might do the trick.

Alternatively, perhaps I could create three named locations for the Home Bench 1st Line (“Home Bench (1st Line - RW)” etc)? And then just give them slightly offset co-ordinates simulating ‘stacking’. But I am not sure if that would make it too hard for a player to manipulate by hand, since for stuff like initial setup and penalties the player is going to have to move cards around manually.

Ideas?

I’d need to see it to know exactly what you are doing but I dont think it is that complex and can be achieved using very few GKC’s, STL’s and the requisite Marker traits

From: IrishBouzouki messages@forums.vassalengine.org
To: messages@forums.vassalengine.org
Sent: Friday, May 8, 2009 11:36:47 AM
Subject: [Module Design]Re: HELP: automating stacked piece send to/from board zone?

Alternatively, perhaps I could create three named locations for the Home Bench 1st Line (“Home Bench (1st Line - RW)” etc)? And then just give them slightly offset co-ordinates simulating ‘stacking’. But I am not sure if that would make it too hard for a player to manipulate by hand, since for stuff like initial setup and penalties the player is going to have to move cards around manually.

Ideas?


Messages mailing list
Messages@forums.vassalengine.org (Messages@forums.vassalengine.org)
forums.vassalengine.org/mailman/ … engine.org

Post generated using Mail2Forum (mail2forum.com)