For my Black Swan module which is a WWII block wargame I would love to improve the QOL aspect of the return to force pool function. In this game it’s best if the blocks are set to strength 1 before they are returned to force pool so that when buying them back, they are already stacked at the start strength. So, I recommend in my readme to players that when a block is killed to actually rotate it first to the lowest strength so that they all sit in the force pool at the same level. When one pulls a block out its best it starts at 1 and then players can pay extra to reinforce it to whatever strength they want or can afford. Now this is something I would like to do away with. It would be very convenient to not have to rotate before just killing it. Now to make my blocks I used the common "can rotate’ function. But it seems that function is lacking in defining a default setting for a reset orientation. It will just remember its last rotation setting and remain there when going back to force pool. I’m sure there is a way to do this. Hope it’s easy to add in. I’d hate to have to scrap the whole prototype engine I built.
I have a feeling this would be a great feature request for next version of vassal. It would be nice if right withing some basic settings like can rotate and return to force pool there was a check box to decide if you want all your blocks to have a certain facing when stacked there. One could say yeah I’d like pip 1 to be the homeing facing or maybe in your game its best to have pip 4 be the “home” setting for your blocks in the force pool.
VASSAL 3.6.7 already supports this. Are you using an older version? Here’s the documentation for the Can Rotate trait. All you need to do is use a Trigger Action to trigger both the Return to Deck/Send to Location (whichever trait you’re using) and the Rotate Directly option of Can Rotate (presumably to facing 1, assuming the images you are using have the default facing match the source image) from the same command.
If you implemented the block strengths as LAYERS, where each layer defines one orientation, you can define the layer level to “Follow an expression” (e.g., Strength 1-4) and then set the value to one when you return it to the force pool.
Thanks guys. Jrwatts thanks for the tip on using trigger action to get it to work. I had noticed the rotate directly option but didn’t understand a way to make it work as I could see no hook within the return to deck feature to tie them together. This was simple to get to work and worked within the way I had designed the module. Korval I guess that could work too. Many ways to skin a cat with the way vassal works. But I only put in one pic of the block at full strength and wanted to use vassals built in system to rotate the blocks. It doesn’t appear to hurt the picture quality of the blocks in this case to use vassal to rotate them. So back to using the first approach as all I had to do was add a trigger action to the list. I had first put in rotate to side 4 thinking that would put my blocks at side 1. Turns out vassal goes counterclockwise in naming the faces. So, 2 was the number I had to use. At first, I thought why the hell did the programmers put that ass backwards. Then I thought of it in terms of the block being rotated one position clockwise and then 2 made sense because that’s the second rotated position. Anyway, I’m very happy this was so easy to add in this QOL improvement. Thanks. I enjoyed the process of making this module. I’m no programmer so it’s super time consumming to try and figure this all out on my own, but I have done it a few times now. Julius Ceasar by Columbia games was another I’m proud to have made. I had come up with an idea to click a box to have your hand auto drawn. Whats cool is that I have seen my exact design of that used in other modules. Like recently I discovered it pretty much copied and pasted right into Hands in the Sea as well. lol. The “Draw Cards” button was my own GIMP work so I can easily recognize the borrowing of my idea. Sometimes I just go looking for modules of games that are like the one I’m trying to make just to see how others did it. That’s honestly how I ‘fake it till I make it’ lol. And when I’m totally stuck you good sirs are always willing to help. Thanks a lot.
Korval, as I said in my main response your suggestion would have not worked so well with the way I designed this module. Also, since I’m not a programmer writing expressions is one thing I have almost no clue how to do. I avoid using them where I can. They only exist in my modules for things like making a report action to say somnething like this unit has been repaired. And honestly, I only got them to work like that by seeing how other modules do it. So, I more or less just copy and paste someone else’s expression that does what I need, and then change a word or two to fit my module. It’s probably how most of us non programmers out there making a module do it.