Why do Creatures have two classes (Creature and CreatureClass, which is derived from AnimatedObject)? Looks like an unneccessary step to much.
What is ActiveObject for?
I'd suggest some reordering:
- {l Code}: {l Select All Code}
// AnimatedObject and AttackableObject gave me some not-so-easy-to-resolve collisions
// stopping me from pushing to git
// creating a general class "Object" would solve this
Object
-- AnimatedObject : Object
-- AttackableObject : Object
-- ActiveObject(?) : Object
// Creature currently is not an ActiveObject (should it be? The name Active suggest to me that it is DOING something by itself)
Creature : AnimatedObject, AttackableObject, ActiveObject(?)
// Room currently is not an AnimatedObject (but it should be animated, shouldn't it?)
Room : AnimatedObject, AttackableObject, ActiveObject(?)
// Trap currently is not an AnimatedObject (but it should be animated, shouldn't it?)
Trap : AnimatedObject, AttackableObject, ActiveObject(?)