Enemies overgrown the final boss

Like any respectable game, mine needs a final confrontation. Here is my final boss.

Exactly as with normal enemies, you have to think about some essential elements that make it up. The first of these is movement.

I decided to divide the various moments, from when he spawns in-game to when he is destroyed, into phases.

I have three phases to tied to movement, the one that takes it from spawn time into battle position. while the other two phases alternate to go left or right.

I decided to exploit the combination of enum types and switch-cases that are most suitable for creating an artificial intelligence system.