I created a “behavior” branch in git for hacking away at the Enemy class logic. A creature “Has-A” behavior so the EnemyBehavior object is a component of Enemy. Encapsulation is a bit messy because the Behavior needs to access much of the data in Enemy, but that can be cleaned up as the final form emerges.
The interesting WIP stuff is in the new BehaviorStandard.cpp which will replace much of the current Enemy::logic() routine. Previously all sorts of movement, logic, animation, etc. was stuffed into one large switch statement. In the new implementation I’ve broken these out into three internal functions: check Power use, check Movement, and process the current state. It reads much better so far. I’ll be adding new variables that matched old states to collapse some of the implementation.
We’ve commissioned Justin Nichol (Flare portrait artist) to create a solid Wyvern texture. The texture and model will be released CC-BY-SA 3.0 on OpenGameArt. We’re able to afford this commission thanks to Paypal donations from community members like you.