Try this as a possible solution - you seemed to be headed in the right
direction but stopped to soon :)
Use a dynamic property evaluation tied to your trigger/gkc sequence numbered
1 to 2. As each trigger fires it increase the dynamic value to 2. When the
trigger finishes evaluating its own square it fires a reset to put the dynamic
marker value back at 1.
All the triggers must have a property filter that only allows them to fire if
the dynamic marker value is 1.
The dynamic marker is acting as a "pause" if you like between all your
triggers and being part of the sequence, will not allow triggers to fire unless
all conditions are true
Dont use the dynamic marker on the actual pieces though because they are
always moving and wont evaluate if their zone has changed - place it on an null
piece offboard or something to that effect so it is always present and fixed
Marcos Hidalgo <[EMAIL PROTECTED]> wrote:
I finished coding the Dungeon Twister module, I've scanned yesterday
all content and today I was bringing it all toguether... In
preliminary tests I've only used one counter over every board to
check that it works, but now testing with more than one counter it
CRASHES!! The error is a "CONCURRENTMODIFICATION" exception.
Tim Byrne found the same error some time before (look here
http://games.groups.yahoo.com/group/vassalengine/message/7219)
I think the problem is the way VASSAL operates with the "Global Key
Commads" and "Triggers", in my module the "BoardTile" over a zone
invokes a "Global Key Command" for every piece in his ZONE when
rotated. There are 8 zones for the basic game and everyone with 25 or
5x5 possible squares for the pieces over it.
The piece has one trigger for every position over the BoardTile,
that's 25 triggers, every trigger is listening for the global key
casted before (with the global key command), and launches a "Move
Fixed Distance" trait (for its current position) if the Piece is in
that position (LocationName property).
The order of the trigger traits is the one pictured here:
http://www.toposolitario.com/basura/fallo_vassal01.jpg
As you can see there are triggers like this
"if the piece is in the square 1 then moves it to square 5"
"if the piece is in the square 2 then moves it to square 10"
"if the piece is in the square 3 then moves it to square 15"
...and so on
The evaluation order is showed from 1 to 25 in the previous image.
If we got two pieces it usually crashes for example in this layout:
http://www.toposolitario.com/basura/fallo_vassal02.jpg
But this one DOESNT CRASH!!!... WHY?
http://www.toposolitario.com/basura/fallo_vassal03.jpg
The answer is that when the piece is in an square (for example 19)
and the new position of the piece is a previously evaluated square
(for example 17) it works, but when the piece is to be moved to
another square evaluated later (for example from 5 to 25 in the
crashing image) the CONCURRENTMODIFICATION exception jumps up!
The same happens even if the two pieces have different prototypes
wich defines the movement or if I include a Dynamic property to mark
them moved (and testing for that property when triggering)...
It is clearly a BUG and I didn't found anything to go through it... I
need it to be solved or Dungeon Twister is impossible to be made.
PLEASE! PLEASE! PLEASE!
TOPO - http://www.toposolitario.com
[Non-text portions of this message have been removed]
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/vassalengine/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/vassalengine/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:[EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/