I see the latest version of Vassal has a “snap to grid” feature. Good, very good! I’m a newbie, so please forgive my ignorance. I’m just trying to get a handle on how close Vassal is to handling abstract games such as Twixt.
Of course the first issue is getting permission. I would be glad to once again try to get in touch with anyone from Hasbro about this. An actual email address, as opposed to a web form, would be greatly appreciated. Certainly any Twixt module should be removed the moment Hasbro complains about it.
It seems I would probably need at least five layers, one for the board and pegs, and a separate layer for each of the four orientations a link can have. These layers would be separate zones as well.
What I want this module to do is to implement a cascade effect whenever a peg is placed on the board. All legal links which could be added to this peg get automatically added. Maybe I could use the LOS feature with snap to grid so the module could tell if each potential link is blocked by another link or not.
I also want to be able to remove and rearrange links prior to placing a peg. And I have to have the swap rule a.k.a. the pie rule implemented as well.
Twixt might not be the easiest abstract to do, but if I can do it, many other abstracts could probably be done as well.
Does it look like I would have to code my own custom attributes in Java?
Any comments, advice, or questions are welcome. Thanks for your time.
Without knowing too much about the rules, I would guess that this is going to involve custom Java code. If that’s not an option, you might be able to get these effects by setting up Global Properties and Triggers, but the logic you can use is pretty limited. For an abstract game, you might be saved by the fact that there aren’t that many spaces on the board. So for example, you could define a Global Property for each space on the board and set it if the space is occupied. Then you could set up a trigger for every possible link location that checks whether the two adjacent properties are set to “occupied.” This could get ugly fast, as you might imagine.
Having played Twist I can see what you’re aiming to do and you’re over-engineering it. All that automation comes at a tremendous cost of module design effort.
You’d be able to make a workable module in ~20 minutes if you just made 1 peg and 4 link counters for either side - 1 for each link angle:
-1 peg up-down, 2 R
-1 peg up-down, 2 L
-2 pegs up-down, 1 R
-2 pegs up-down, 1 L
Just let the player drag and drop the desired angle link.