Implemented the enemy scripting. It can do with some fine tuning, but the system feels and looks good and only serializing objects from polymorphic classes was a pain in the ass. I opted for a cop-out. (Kids, always opt for a cop-out.)
Each enemy is comprised of a starting position, a hull (defines shield, guns, acceleration, speed) and a behavior.
Sample (eksample):
move = "2.0f 90 .5 'move for 2 seconds, to the right (expressed in degrees, relative to 12 o'clock), with 50% of its full
speed (depends on the hull.'"
aim = "'turn guns in a manner that their average direction will be towards the closest player. no need to specify time for aiming, it's
instantaneous.'"
attack = "2.0f 'keep shooting for 2 seconds'"
accelerate = "1.0f 270 1.0 'accelerate for 1 second, to the right, with its full acceleration (depends on the hull).'"
die = "'Happens instantaneously. The program doesn't care about these comments so long they are after the arguments
it does care about.'"
'follow' (accelerates towards closest player) and 'wait' (this one's a surprise) and whatever commands I can come up with will also be supported (suggestions are welcome).
Next thing I'm going to implement is the level / timeline format. Once I've done that I post a demo to play/script around with. I love how my enthusiasm keeps creeping back with this project.=)
I've also tampered with music -- I'll post some soon.