How 'bout mobs get a sort of "timeline" of sorts. It would sort of work like the monster's animations, but being able to change the monster's properties with each "frame" (speed, life, hitbox, etc.). This would allow things like custom spawning animations and staged boss fights, even being able to replicate dillos' or hounds' attack styles.
The scheme I'm working on now covers part of this, but is general enough to also handle other changes such as temporary states (player swings a weapon), and longer-lasting pickups (collectable boots that make you run faster).
The basic idea is that each type (MONSTER, PLAYER..) can have any number of MODIFIERs. A MODIFIER can be a whole new definition of that type with it's own animations etc., or just a partial definition (e.g. to just change speed). Each one can be triggered in various ways, and you can give modifiers priorities and groups to control how they are applied.
So for the example you give of staged bosses, it could be done using modifiers that are triggered by time or low monster health.
MONSTER fred ANIMATION body MONSTER_MODIFIER angry_fred // triggered when health < 25% ANIMATION body // replaces body animation with a red flashing version
I've been considering how to do more detailed sequences in the future though, as a separate problem. For example, you might want to script a NPC walking around and doing something for a cut-scene. It would be messy to implement this by having a whole bunch of time-triggered modifiers, and is not practical for editing spacial instructions (move to x,y etc). So the possibility I'm leaving open is to have a path-following system, where you can lay down way-points that a given actor follows with the option of triggering modifiers at each way-point.
[Please log in to post a comment]