How to send a GKC to 'other' units in a stack?

I have a stack of units in a hex. One triggers an GKC with range=0 that is intended for the OTHER counters in that stack (not the unit issuing the GKC). How do I prevent that GKC from affecting the original?

Thanks for the Ideas,

Flaney

This might work.

Have a Dynamic Property on the triggering piece called something like Lockout with a default value of 0 and a numeric range of 0 or 1. Include 2 command lines with the command LockOn (sets to 1) and LockOff (sets to 0)

Then have a Trigger Action on the piece with 3 commands

LockOn (This will set the Lockout on the piece to 1.
The command you want to send to the GKC that will affect the other pieces. In the matching properties on the GKC, add && Lockout != 1.
LockOff (This will reset the Lockout on the piece to 0.

This should allow the GKC to affect all pieces except the piece whose Lockout is set to 1.

Hello,

Thanks for the comment!

I have tried a similar method, but find that the issuing piece “Lockout” needs a trigger to activate the LockOff command.

What happens; I set LockOn, GKC1, then LockOff in a trigger. This reactivates the piece but it still catches the GCK1. Without the LockOff, the piece does not reset to accept a future GCK1 from other pieces in the stack. I need another trigger to reset Lockout = LookOff (=0).

So I need a trigger that is issued after all units in the stack get the GKC, that then sets the Issuing unit back to Lockout=0. I tried to embed this into the other units, but get infinite loop errors.

I tried PieceID != $PieceID$, but find that after loading from a saved game that the ID’s get duplicated and exclude many units.

Any suggestions?
Flaney

I can see that. I’ve had similar issues in the past so I thought that my test example may be problematic.

Have you tried this:

Set the dynamic property trait as noted above. Also, I’ve found that placing dynamic properties at the top of the trait list, rather than the order they are executed, works the best.

On your trigger…

Lockon (to lock the piece)
Command to GKC to effect units except Lockout != 1
ResetLock

Next in the list is your GKC to affect the other pieces

Then add another trigger action that will trigger on the command ResetLock when properties match Lockout = 1

Lockoff

Okay, This is what I’ve done: The map window issues (forcePool) when a unit moves on map.

[trig] ((forcePool))->(makeAllStacked, ^notStacked, clearStack)
[gkc] (makeAllStacked)->(g_setStacked) r=0
[DP] Stacked (=false): (^notStacked=false), (^setStacked=true), (g_setStacked=true), (g_stacked=true)

[trig] (clearStack)->(testStacked) // setting up a new chain with trigger (needed???)
[gkc] (testStacked)->(g_testStacked) r=0, for Stacked=true // the original is excluded since it was set false earlier
[trig] (g_testStacked)->(replyStacked, ^notStacked) // the other is now false since the 1st will get moved
[gkc] (replyStacked)->(g_stacked) r=0, for Stacked=false // this sets the original back to true, and the rest are false

trig->(shiftRight) LOOP: while {Stacked=true}
{SendtoLocation] (shiftRight)->Location::(COLUMN, ROW) // when moved, the original sets off the chain with forcePool)

If there are no others in hex, the GKC are lost leaving Stacked=false

Does That make any sense to you? too complicated?

flaney

Or

  1. set Lockoff=1 on the original piece
  2. have the original be affected like anyone else by the GCK,
  3. add a trigger on each piece that will only execute whatever the GCK is requesting if Lockoff=0, while resetting Lockoff=0 otherwise

In other words, move the Lockoff check in a trigger activated by the GCK and not in the property check of the GCK itself.