First of all… sorry for the awesome BIG delay in releasing the Dungeon Twister module… I let it die on November 2006 and until now I didn’t put my hands on it again (and the craziest thing to do with it, the board rotation, was solved then, so I have no excuse).
Prior releasing the module (hopefully this week) I’ll keep here a report of the solution I took for the “board problem” as it could be used almost for every similar system (anyway It doesn’t help as is with the drakkar counters for “Viking raiders” of the “Cry Havoc!”, there could be a way but not so clean).
Well, going to the point, to get the boards rotating with all the counters over it the main board must be a multizoned grid, I defined 8 zones (one for every board… but it could work for different layouts according to later add ons of the game… right now I’m only doing the basic DT but this sistem could work with as many zones as you want, so any scenario could be easyly done).
The idea is that when I rotate a board I launch a “global key command” for the pieces in that zone… depending on the position on the grid (ie: CurrentZone=$CurrentZone$ && LocationName=0101) the piece executes a different “move fixed distance” traits.
My boards are 500x500px (5x5 100px wide squares) so a piece in the top left square (0101) will go to the top right square (0105) when rotating the board clockwise… that is “move fixed distance” of 400px right. A piece in the second square (0102) will go to the rightmost square of the second row (0205)… that is “move a fixed distance” of 300px right and 100px down.
To do that, the board launches a “global key command” for every position in its zone, for example when board rotates (ctrl-2) it launches alt-ctrl-Q for the pieces that complies the condition “CurrentZone=$CurrentZone$ && LocationName=0101”… then the piece has a alt-ctrl-Q trait to “move a fixed distance” to go from 0101 to 0105 (a rotation clockwise of the board below).
It actually works PERFECT, it is complicated at definition point as you got a “move fixed distance” trait for every one of the 25 different positions in the board for characters and items and 40 positions for doors (you need actually 50 different key commands for characters and 80 different for doors… keep in mind that it can move clockwise and anticlockwise).
For the doors I have different positions (as the grid is not a 5x5 square area but the intersections between squares)… but is more or less the same.
All this sounds complicated but in fact is quite simple and achieved with pure VASSAL without imported classes (I went waster once conceptualiced text-editing the xml instead of working with vassal)
So, that is the “magic trick”.
Anyway, as I said before, the module will be out in days so you’ll be able to have a deep look inside and see how damn well it works
The module will be damn friendly to play with as much things will be done automatically, for example the random rotation and placement of boards, the 100% implemented board rotation, automatic commands to move counters to different fixed positions… anyway… if you don’t like it… I’ll bring your money back! XD