I tried restructuring the code like you said, and even trying to put the attack animation in a loop (i probably didnt do that correctly though), neither worked for some reason, I finally found a fix for it though. Ill put it here in case someone else has a similar issue.
i had to make a variable in a create event and set it to false (attacking = false)
then make an animation end event and add this
it isnt working perfectly, i think other sprites might be happening during the animation depending on my inputs, but im going to try to make my attacking animation more than two frames and disable all input/movement during the attacking animation and see if it turns out looking and feeling better
or i might have to again restructure this like you suggested, ill post my code again whenever i get everything hammered out in case anyone needs it for reference!