Most of that will be handled with animations, but the move function could be handled a few ways.
You could use LERP when the bad guys overlap a vacuum hitbox sprite.
"badguy" is overlaping "hitbox" > set X to (self.X, player.X,5*dt)
set Y to (self.Y, player.Y,5*dt)
Adjust 5 in 5*dt to a number that fits your sprite size and scale, it's the speed the bad guys will move.
Or you could use bullet behavior on the badguys, which is closer since you can control acceleration. Set the default speed to 0 and the acceleration to about half what speed will be. (say 30?)
now when the bad guy overlaps, you can move it toward the player with increasing speed as they are trapped in the vacuum longer. For this, I recommend an invisible control sprite, since you'll need to control the angle of the badguys, and you may not want to spin the actual animated sprite. A control sprite is really recommended for most actors in a platformer with any complexity.
Check out some platform tutorials if you're lost on the basics, but I'm happy to help as well.
In the case of bullet behavior:
"BadguyController" is overlapping "Hitbox" > set angle toward (player.x, player.y)
set bullet speed to 60