Why do you need to extend all these different kinds of alien?
Because they all can do very different things. Follow a path or a complex set of orders, trace the playership, start like a rocket in 'scramble', fly sinuscurves..
This would be a very big update method if I only use one alien.
I could combine some of them, but I use this project to grok OOP.