I would suggest getting rid of the “blade out of bounds” and “enemy takes damage” then. Instead, you will need another way of checking when the turn is over. I don’t know your coding style or the exact game mechanics, but could you possibly do something like:
Option 1: Send a message when each enemy’s turn is done. Once you have received “turn done” messages (you can call the message whatever you want) from every enemy the player is facing, THEN you can start your next turn. You could maybe check HOW MANY messages you get, and depending on how many enemies you are facing, you can start the player’s turn after you have X amount of messages from enemies (where X is the number of enemies in that battle).
Option 2: Rather than sending a message, use global variables to do the same thing. So, when an enemy finishes their turn, change the global variable (for example: “enemy1_turn”) to 1. Same thing for enemy 2 and so on. Once the global variable for every enemy the player is currently fighting is turned to 1, the players turn starts again. You should set the global variables for all the enemies back to 0 as well, so the cycle can repeat until the fight is over.