Here's an idea for an AI structure if you change your mind. I did a 2D fighter AI in a different programming language ages ago, and if I remember right it worked something like this:
The AI fighter has an instance variable called Decision and another timed variable called Decision_Timer. These get checked every tick. When the Decision_Timer reaches zero, it means that it's time for the AI to decide what to do. When that happens, the function Make_Decision gets called.
Make_Decision checks the distance between AI and the opponent, and then sets a course of action that suits the situation into the variable Decision. For instance if the distance is close the AI might want to throw the opponent, so Decision gets set to AI_Throw. If the distance is about 150 pixels or something he might want to either throw a hadoken or try a flying kick, so Decision gets set to AI_Hadoken or AI_Flykick_M by a random value.
When Decision is set, Decision_Timer also gets set to countdown 2-3 seconds. If the AI can't pull off the attack he decided on before the timer runs out, Make_Decision is called again. While Decision_Timer is running, it's also good to check if the player opponent suddenly decides to jump or something so the AI doesn't pull an attack that no longer makes sense.
Let me know if you change your mind about tackling the AI and I'll see if I can dig out the source code to explain it better.