Coding: My own coding is atrocious, so I can't really comment much here. It's probably not necessary to define all those variables every frame though (the unchanging ones can go above @Event with the global variables). Also, since the kunais and the moving aren't really directly related, it's a little weird to increment movecounter every time a kunai is shot rather than increasing it every frame and having the case statements 10x as large.
Difficulty: At first thought it was going to be quite easy, then the boss started to move and it was about right, then the boss moved again (towards me) and I got aced. Even after knowing the movement pattern it is quite difficult to move quickly enough around in a circle to stay ahead of the boss. If you want to keep the circular motion, I'd have two recommendations.
1.) Make the boss move fluidly around. Easiest way is probably to set the boss's x and y coordinates using cos/sin every frame. GetCenterX+movementradius*cos(frame3*angvel+270) or something like that.
2.) Probably needs to be a bit easier, either by slowing the rate the boss is moving around or reducing the density a bit. The speed of the bubbles and kunais is good though, imo.
Edit: Forgot to mention - good for a first card!