You could probably change the firing event into the 'blink' event. This is a pretty long post so I'll bold the more important stuff in my rants.
So if we use something similar to my previous example:
if player is within range of the gun
--->Look in the direction of the player
<subevent>gunthing animation Blink is not playing
------>add timedelta to gunthing.Value('Timer')
if gunthing.Value('Timer') is greater or equal to 1000
if gunthing animation Blink is not playing
--->Change gunthing animation to blink
--->Set gunthing.Value('Timer') to 0
If gunthing is playing 'Blink' animation
--->add timedelta to gunthing.Value('Timer')
<subevent>if gunthing.Value('Timer') is greater or equal to 1000 (or however long you want the blink to last)
--->Inset your gun shooting code here
--->Set gunthing.Value('Timer') to 0
Once again, I've been naughty and not actually tested this, but this where I would begin if I was about to try and achieve what you're after. To achieve the 'if animation blink is not playing' condition, add a condition 'If animation blink IS playing', then right click on it and click on 'invert condition'. This makes it so the event triggers when the OPPOSITE of what is listed in the condition is true.
I don't know how much you know about subevents, but I'm using two there, that's where you either click on one event, click on it again and then select, 'create new subevent' or you drag an existing event underneath and to the side of another existing event (so it's indented). There's probably smoother ways to do this code, but I made it so the blink has its own timer check too in case you want it shorter, like 500.
The thing with subevents, they behave exactly like a normal event, except that the event that they're indented from has to also be true. I basically threw that in there for two reasons, I'm so used to doing it these days, and it cuts down on having the same condition in multiple events:
For example:
Instead of this:
If player is running
if jump is pressed
--->do this
If player is running
If fire is pressed
--->do something else
You can condense this using subevents (it may seem like not a whole lot at the moment, but in larger projects it really helps):
If player is running
<subevent>If jump is pressed
------>Do this
<subevent>If fire is pressed
------>Do something else
The advantage, besides saving space, you can also use the event 'If player is running' in the above example to also have its own action too when neither jump or fire is pressed and just running is playing, if that makes any sense.
I hope this has helped and that I've said it in an understandable manner Sorry if it's miles long haha. If you have further questions or need me to translate or illustrate what I mean, I'll be happy to help.