Movement Trails in area movement games

In area movement games such as Breakout: Normandy, Victory in the Pacific and Turning Point Stalingrad, a game piece can be moved anywhere within its area without having any significance to the game. Such in-area moves are typically done to reorganize stacks of pieces for aesthetic reasons.

Implementing Movement Trails in such games can often result in confusing clutter such as this:

It would be desirable if these “multi-hop” Movement Trails could somehow be “collapsed” to ignore all “hops” that are within the same area.

Ideally, no trails would appear until a piece is moved out of its starting area, and that inter-area move would be represented as a single “hop” for each new area that it moved to, regardless of how many intra-area moves also occurred.

Can this behavior be implemented using vassal’s current capabilities (perhaps with the recent Mark When Moved changes that Cattlesquat made for Korval)?

Cheers,
Jim Hunter

Thinking further on the topic, I think the desired behavior could be implemented if the Movement Trails trait was enhanced to allow a module to specify a command which would reposition the endpoint of that movement trail’s most recent “hop” to the piece’s current position.

A module could then react to all game piece moves on the map and detect moves within the same area. When such an inter-area move is detected, it could send the newly defined command to reposition the last hop of the movement trail to end at the piece’s current location. With these changes, a movement trail would always show just a single stop in each area, regardless of how often the piece may have been moved within any of the areas that it moved through.

There may be some end cases to consider, but that would be the basic idea. If such an enhancement were fairly easy and low risk, then I think it is worth considering.

Cheers,
Jim Hunter.

Yes, I think that is a viable strategy to attack this.

To maintain compatibility, we would add an option to the Movement Trail to ‘Only keep last position if location name does not change? Y/N’.

The Movement Trail trait keeps track of the trail for it’s piece, so it should be relatively simple to implement this completely within the Movement Trail trait itself. When a move completes, then if the option is set and the LocationName has not changed, then eat the last hop of the trail before adding the new one.

I’ve added a new enhancement issue to our issue tracker for 3.7.0 (Enhance Movement Trail to (optionally) remove last hop if Location Name does not change · Issue #12051 · vassalengine/vassal · GitHub).