I have just started getting into designing and making VASSAL mods and am learning fast.
My question relates to mapboards that have horizontal (as opposed to vertical) hexrows. For the mod I am designing, the unit counters (square shaped 50x50) have facing. Their “top” edge has to generally always be aligned with a hexside edge. As a consequence if the map has horizontal hexrows, the counters should never really appear on the map to have their “top” edge horizontal to the screen.
In the counter panel, of course you would want the counters orientated the right way up but when they are dragged on to the map, you would want them to automatically assume/snap to a valid default orientation. Once they are on the map of course, the player can then rotate the counter around the 5 other valid orientations using the “Can Rotate” command.
Is there a way to automatically rotate counters 30deg whenever they are dragged from a counter panel window on to the map? Maybe some kind of trigger?
(I know I could edit the “Can Rotate” command so that it rotates the counter in 30deg steps instead of 60deg steps but it sure isn’t as practical or as elegant as what i am asking for).
The triggering of the counters when they first hit the board is the easy bit.
In the Map component, at the bottom is a field
‘Key command to apply to all units ending movement on this map’
If you put, say Ctrl-P in this field, then every time a unit lands on this map, including when pulled from the palette, it will get sent Ctrl-P. You can set up a Dynamic marker called ‘FirstTime’ with a value of true, and a Trigger Action for Ctrl-P that does
If FirstTime is true then [FirstTime=true in Properties Match]
set FirstTime to false [Fire a command in the Dynamic Counter to set it to false]
Fire off a command to adjust the counter [ Fire off some other command, say Alt-Ctrl-R]
end
Your problem here is that the Can Rotate trait always assumes that the origin of rotation is 0 degrees, so it’s ‘natural’ state is not one of the rotations you want. However it is what you want for the palette. So, you will have to set the number of rotations to 12 (30 deg steps)
The first trigger from landing on the Map (The Alt-Ctrl-R) can bump it one click clockwise to align it with the grid.
Then, hide the commands for Rotate Right (say Alt-Ctrl-R) and Rotate Left (Alt-Ctrl-L) and create two new Trigger Actions for Rotate Right (Ctrl-R) and Rotate Left (Ctrl-L) that appear in the menu.
Have Rotate Right issue Alt-Ctrl-R TWICE whenever it is activated
Have Rotate Left issue Alt-Ctrl-L TWICE whenever it is activated.
Players can’t see the Alt-Ctrl-R and Alt-Ctrl-L commands and they are unusual enough that they should not be pressed by accident.
I had placed a comment in the adc2 importer that we need a non-zero starting angle (sorry, that’s where I’ve been ideas). I’ll get to that as soon as the beta is out.
Having not used or even explored the use of triggers or dynamic properties before, I did my best to explore new trritory and follow your instructions.
What do you know, I got it right the first time! Thank you. I am sure this little learning experience will trigger some other creative ideas of my own.
The reason for considering how this could all be done arose from my discovery that you can not rotate the view/orientation of the map with all the pieces on it, in the same way you can manipulate the map by say zooming in and out or panning the map.
For games where counter orientation/facing is important (and I would say there are quiet a few), you, as one of the players, would typically want to view your own counters (and hence the map) such that they, and all the text and writing printed on them, appear the right way up to you most of the time. In these cases, generally, the “top” of a counter indicates unit “facing” and the general direction in whcih the unit is allowed to move or fire.
Invariably, players would face their units towards each other and thus have opposite ways in which they would prefer the map to be orientated on the screen. Is there any chance that such a feature could be implemented and readily utilised in future releases of VASSAL?
In the case of the game I am mod designing for, the “frontline” for the opposing units happens to lie perpendicular to the hexrows. If I had the map orientated with the hexrows vertically (the VASSAL default), then one side/player would generally always be viewing the map and their own counters as they would prefer, the right way up, while the opposing player/side would be stuck having to always view their own pieces upside down. As a comprimise, to make it “fair” and symetric for both players, I decided to orientate the map/board so that the “frontline” is vertical so that both players generally would have their counters orientated sideways.
Certainly being able to have each player customise the orientation of the map on the screen would be the best solution.