I was curious how Starcraft schedules triggers in terms of which run first and in what order in the trigger cycle. I think I read somewhere that it fires off P1's triggers, then P2, etc, until P8, which should mean P1's triggers will run slightly faster than all other players.
Now how does this work with all players (when we make a trigger for all players, is it just syntactic sugar for actually writing that trigger for each player?)
What I've noticed is that when two triggers have the same conditions but are mutually exclusive, e.g., if Trigger A fires before B, then B won't fire. Likewise if B goes before A, then A won't fire (assuming Triggers are atomic...), that not necessarily will they run in the same order. Sometimes A will go but other times B will (or perhaps my observations are incorrect, and the ordering is deterministic).
A problem which I did not understand is the following:
I have a deathcounter set to some value greater than 0.
Then I have a group of several triggers which basically run if the DC is some value >= 1.
At the end of this long series of triggers is a trigger that decrements the counter.
e.g.
Trigger A: if DC >= 1 do X
Trigger B: if DC >= 2 do Y
Final trigger: if DC >= 1 do DC--
Now interestingly the cases which check for DC >=2 (or 3, or 4) NEVER fire off. But, if DC == 4, then trigger A will run 4 times, but trigger B will still run 0 times! This does not make any sense to me why this should be so, because if the Final trigger was running out of order, it would also mess up the cycles of Trigger A.
Only when I added a second, inmutable DC did triggers like B begin fireing off properly...
None.