[messages] Edit: Re: [Technical Support & Bugs] Totaling the Number of Pieces on a Map

rrvs spideratj at aol.com
Tue Feb 14 17:51:11 CET 2017


[This message has been edited.]

For this multi-board one, I'd try it a bit differently than above.  I'd
have global properties, making them either private (confined to each
board only) or public if you want.

Essentially each player hand map would have a similar 'ends movement'
gkc added (it's the last listed property and would be the same exact key
for all of the player hand boards).  When an applicable piece is moved
or sent to a player hand from anywhere other than that player hand, it
will add to that player hand's tally.  When a piece is moved or sent
away or deleted from a player hand it will subtract from that tally.

The tricky part is the need to short-cut all the global properties and
trigger actions traits.  You'll have a distinct global property for each
player hand, but will only have one Set Global Property trait handling
all of them.  You'll use either the map or board names in each of those
global properties.  For example for Player Hand 1... let's say the board
is named: PH1.  The global property you'll add for that board will be:
PH1CivPoints.  However, the one set global property trait (which will be
in a prototype you'll add to all the relevant pieces) will be called:
$CurrentBoard$CivPoints.  This allows you to greatly streamline the
process.

The arrival trigger action would have a matching property of:
CurrentBoard =~ PH1|PH2|PH3 && OldBoard != $CurrentBoard$
It would watch for the map's gkc, and perform the increment by numeric
value total of its marker: $NAMEOFMARKER$ using that single set global
property trait named: $CurrentBoard$CivPoints (no matter which board
it's on).

The primary removal trigger action would have a matching property of:
CurrentBoard != $OldBoard$ && OldBoard =~ PH1|PH2|PH3
It would need to add any non player hand map's end move gkc that might
be relevant.  For example if the piece is moved from a player hand to
the main map.

You'd also want to add a secondary removal trigger action for any delete
or send or return to deck actions that won't trigger the primary removal
trigger action trait.  For this you'd use a matching property of:
CurrentBoard =~ PH1|PH2|PH3; watching for any of those command keys.

This is kind of a quick sketch... it may well have a couple things that
need adjusting or haven't been figured properly.  But let me know if it
makes any sense as it is.

EDIT: just realized the removal won't work as is for the primary removal
trigger action, as $CurrentBoard$CivPoints would be wrong (if triggered
on the main map for example, after leaving PH1)... it would now have to
be $OldBoard$CivPoints.  You may be able to just add a second Set Global
Property trait for that one, adjusting the trigger action to perform it
instead.  I'd need to give that some thought.

_______________________________________________
Read this topic online here:
http://www.vassalengine.org/forum/viewtopic.php?p=53063#p53063


More information about the messages mailing list