How do you track whether a piece is "on" another piece?

Do any of the new or upcoming Vassal features make this easier to do?

In my specific case, I have a variety of polyomino shaped pieces that can be dragged around, and some smaller square pieces on a different game piece layer that are frequently dragged on and off the polyominoes. I would like to track whether a given polyomino has a square piece currently on it.

This could be pretty easy to implement or damn near impossible depending on if your pieces stack or snap to locations. If your pieces stack, then SumStack would be the expression to use. I’d assign a marker for squares versus polyominoes. I don’t think SumStack works though if you add the Does not Stack trait. If they don’t stack, I’d compare X and Y coordinates of each piece to determine if pieces overlap. Use the map level auto-report features to trigger that comparison every time a piece moves. This is easier for squares and circles, but non-trivial if I’m imagining Tetris style polyominoes. As I said, could be damn near impossible.

NOTE: I haven’t actually tested to see if SumStack works on non-stacking pieces. I’ve always assumed, by its name, that it would not…

Thanks, that’s what I thought. I do have the polyominoes snapping to coordinates (no zones, unfortunately), and they are restricted to 4 facings, so I suppose I could, in theory, get it to work.

They do not stack, but maybe I could wrangle it so they do… food for thought, thanks. What happens if a C-shaped piece is stacked with a small square?

I think I have an answer, of sorts. Make it clear to the players that only placement near the centre of the polyominoes will register, then use a very simple limited range GKC on placement, backed up by a map window acting as a dashboard to show and manually toggle on/off statuses.

Of course, that only handles when a small piece is put “on” another piece, and does nothing for taking it off.