However some actions result in flushing the buffer. Actions kill unit, kill unit at, remove unit, remove unit at flush the buffer and unbind it with the attached object.
Model updated.
I just performed some tests, so you can check to see if it follows your model.
I wanted to examine if bringing to a different location than was created at would have any difference, even if the locations were over the same area.
I tested many cases, and they're pretty redundant and will probably just verify your model.
First of all there's 2 locations, Location 0 and Location 1. They are the same size and are stacked on top of eachother.
Trigger A
//Remains unchanged throughout the tests
Bring("Player 1", "Any unit", "Location 0", Exactly, 0);
Create Unit("Player 1", "Terran Marine", 2, "Location 0");
Trigger C
//Uses bring to check if X marines were brought to Location 1
//Creates 1 ghost if true
Bring("Player 1", "Terran Marine", "Location 1", Exactly, X);
Create Unit("Player 1", "Terran Ghost", 1, "Location 0");
Trigger B
//Uses bring to check if X marines were brought to Location 0
//Creates 1 firebat if true
Bring("Player 1", "Terran Marine", "Location 0", Exactly, 0);
Create Unit("Player 1", "Terran Firebat", 1, "Location 0");
The cases consist of the following sequences
A
B
B
Result: Two firebats created
A
B
B
C
Result: Two firebats created
A
B
C
B
Result: One firebats created
A
C
B
B
Result: No firebats created
In all the cases, a ghost is created when x = 2, and no ghost is created when x = 0. Regardless of the x value, however, the resulting firebat creation remains the same. So C affects the following B triggers whether or not C itself is true.
I just performed a simpler test, which I think illustrates it more clearly as well
Bring("Player 1", "Any unit", "Location 0", Exactly, 0);
Create Unit("Player 1", "Terran Marine", 2, "Location 0");
//X changes between 0 and 1, Location 0 and Location 1
Bring("Player 1", "Terran Marine", "Location X", Exactly, 9999);
Comment(" ");
Bring("Player 1", "Terran Marine", "Location 0", Exactly, 0);
Create Unit("Player 1", "Terran Firebat", 1, "Location 0");
Bring("Player 1", "Terran Marine", "Location 0", Exactly, 0);
Create Unit("Player 1", "Terran Firebat", 1, "Location 0");
There's only one trigger that's changing. It has no actions, and it's checking for 9999 units, so it will be false regardless of whether it's at Location 0 or 1, since theoretically based on previous experimental data, if it's at Location 0 and looking for 0 units it will be true, and if it's at Location 1 and checking for 2 units it will be true. Setting it to 9999 ensures it's false for both cases and that the truth of the condition doesn't affect the results, even though theoretically and experimentally they don't. This is just a precaution to keep as much control as possible.
However, when it's set to Location 0, the following two triggers run. Two firebats are spawned.
When it's set to Location 1, the following two triggers do not run.
Post has been edited 3 time(s), last time on Apr 30 2008, 8:46 pm by devilesk.
None.