You don't need to use array point for the integer A loop, a normal one will work fine
I suggest you to use unit-group veriable instead of matching unit, and if you don't don't forget to put set = wantDestroyGroup = true before the unit-group loop
The special FX after the played sound is not cleared