Yes, Plinkie, you were right! It was on "overlapping". Changing to "on collision" solves the problem. However a new problem pop up where the subsequent animation kept looping. Ok, here's the event sheet of how it looks like:
Bullet on collision with Enemy > Enemy set instance variable "Shot" to true.
When Enemy: "Shot" is true :
Set animation to "A" (play from beginning)
Wait 3 sec
Enemy set ReadytoExplode to true (boolean)
When ReadyExplode is true; System" "UpgradeGun" = 1 :
Wait 3 secs
Set animation to "B" (play from beginning)
On animation "B" is finished, set animation to "C"
So basically when enemy get shot, it plays animation A and then proceed to play animation B after X seconds (depending on the UpgradeGun score). After animation B is finished, it should move to animation C. However, my problem is animation B kept looping and can't transition to animation C even though Line 4 says on animation B finished. When I put trigger once to Line 3, it solved the problem (meaning animation B transition to C successfully) but when multiple enemies get shot at the same time, only one managed to complete to animation C while the rest keep looping.