How many times would you say that's been addressed, Red three?
*chkst* I'd say about three on the guns, three on the towers *chkst*
So, you have a walking sprite (left/right for this example) that has, say, 6 frames in each animation (6 for walking left, 6 for walking right). Then, create a sprite that has 6 frames of animation for each shooting state (6 for shooting left, 6 for shooting right).
Create an invisible inventory item called "isNotShooting", initial value 3, max 3.
Then, create a global special function that is activated when the fire button is pressed, which requires 2 isNotShooting inventory and uses them up which does the "Switch to a new sprite" function. Switch to the firing sprite, retain old state, in same location as old, delete old sprite.
Create another global special function that adds one to the isNotShooting inventory constantly.
And finally, create a third special function that requires three isNotShooting inventory which switches back to the old sprite, same flags as the first special function.