Excal I suggest using delta time to get the firing rates doing your bidding....
you already have a firerate variable set?..create another named fire...have a condition as so
enemy "fire" greater than 0...subtract 0.1*dt from fire
and condition
enemy "fire" less or equal to 0...fire shot
set "fire" to enemy "firerate"
that should work...
Also not sure I'd advise posting your entire capx..when you put so much effort in...just my thoughts...