Perfect! Here is the example then :
This is the result I get : i.ibb.co/h7MFhfn/Example.gif
3 enemies, I destroy them and the face appears gradually with the forcefield;
This is how I achieved it :
What I did, is to put all the enemies in a common family, and give a variable named "Activation" to the computer face sprite;
When a sprite from the enemy family is destroyed, it adds 1 to "Activation"; When this variable reachs the number of enemy you want, it triggers that event once :
"Wait 1 second > Repeat 4 times : Wait loopindex*(time you want) > opacity+25
Loopindex represents the index of the current loop, in this event when it repeats 4 times, the first loop index = 0, second loop = 1, third loop = 2; etc (index always starts from 0 unless you use a "For" loop)
The 4 loops trigger at the same time, but the wait action delay is equal to the loop index multiplied by the number of your choice, which means in the example that the first opacity adjustement triggers at 0*0.5 = 0s, second at 1*0.5 = 0.5s, third at 2*0.5 = 1s, etc;
That way you have events that rely only on triggers instead of a loops with the result you wanted ^^
Be careful however if you use that loopindex method to not use it into a looping condition, otherwise it will repeat constantly, it needs to be triggered a single time (with a trigger event or "trigger once while true);
Btw unrelated but I guess your turrets and cannons works the same right? Because I see that you create two differents objects for each, meaning that you had to duplicate the code for each, when you could diplucate them on layout then mirror the sprites and use a single code, it would simplify things a lot; if you don't know how to do I can help on that too ~