How are Mark when Moved, Trails, and GetProp(CurrentZone)


I have a setup that worked fine until I added Mark when Moved and Trails, at which time it stopped working.

When it worked, a first piece when placed in a zone “Court1” sets a GP “Court1” to a number between 2 and 6; a second piece in that same zone is triggered under certain circumstances when GetProperty(CurrentZone)==2, for example. So “CurrentZone” here returns the GP value set by the first piece.

When I added Mark when Moved and Trails to the second piece, this interaction stopped working.

There seems to be no way to explain this at any level of the Vassal engine that I have access to, so can someone explain how the Mark when Moved and/or Trails traits are affecting this interaction?

Eh, scratch that query. I can’t pin down for sure that Mark when Moved or Trails is the culprit.

FWIW, the interaction stops working if you put any other GPs into the Court1 zone. I don’t know why. It has nothing to do with Mark when Moved or Trails.

Depending on what the rest of your triggers were doing… one of the “classic themes” of when I’ve had triggers mysteriously seem to stop firing was when they are part of a sequence that includes a Delete of the piece processing the triggers. If a piece gets deleted before it has processed/received all the triggers it was due to get, it just doesn’t process. So then you get into all the details of which-order-to-triggers-process stuff. There are various workarounds like having the trigger that was going to delete the thing instead fire another trigger to delete it later (you know… “get ready”, “get set”, “delete!”)

I’m guessing it is because using GetProperty(CurrentZone) only works when CurrentZone looks up a simple string identical to the Global Property (CourtX). If the Zone becomes multiple lines in the buildfile, something goes wrong.