You've come across the common problem which some people call a 'wait block'.
Wait actions are what Blizzard calls 'blocking actions'. This means that:
- When a wait action is run, all the actions in the same trigger after it are delayed until the wait action finishes, and
- No two wait actions are allowed to run for the one player at the same time; if another wait action wants to run whilst another trigger is already running a wait action, then it will be delayed until the first wait action has finished before it starts counting its 'wait time'.
Note: when a blocking action is run, Starcraft goes and checks the rest of the triggers whilst it is waiting for that blocking action to finish.
That's what's happening here - the first trigger runs a wait action, and in the meantime checks the rest of the triggers. When it reaches the trigger for a different corner, that trigger also wants to run a wait action. But since the player is already running the wait action for the first trigger, the second wait action has to wait until it finishes before it even gets to start.
So the second wait action in effect ends up taking twice as long as you want it to. And the third wait action, being held up by two wait actions, is even slower; and the fourth is slower again.
There are a few ways of tackling this kind of problem.
In your situation, if all the triggers for each corner are supposed to run at the same time anyway, you can group all four corners into the same trigger, using the same wait action, instead of having 4 distinct triggers.
For example, Actions:
wait 27000 mili
Create 1 OV at "location 1" for player 8
Create 1 OV at "location 2" for player 8
...
Create 1 OV at "location 16" for player 8
create 4 hydra at "location 1" for player 8
create 8 lings at "location 2" for player 8
...
create 2 ultra at "location 16" for player 8
wait 3000 mili
ai script "enter transport" at "location 1"
ai script "enter transport" at "location 2"
...
ai script "enter transport" at "location 16"
preserve trigger
Other popular ways to get around the problem of 'wait blocks' normally involve
death counters.
What I think are more intuitive, but messier and less elegant methods are using
'physical timers' or the countdown timer.