I was wondering if anyone had any advice about how to load skills/animations that are used by multiple units using XML.
I have a couple mechanics that really need me to be able to load a skill not defined in the XML of the unit. Basically some things like traits and schools of magic and other things that define special skills and can be gained by more than one unit.
Generally each skill has its own animation or set of animations. And obviously you can only use the animation of the given unit. Basically I was thinking I could set the animation path as:
<animation path="models/first_spell_attack.g3d"/>
Each unit already comes with a basic attack animation if its intended to be a combat. So if I name the basic one that then I can have any reasonable unit inherit the skill without an issue.
So the animation would be a generic spell casting type animation, handwaiving type stuff, and the differentiation would be the particle system that represents the effect. Particles are not restricted to the individual model like attack animations obviously so that wouldn't be a problem. Multiple skills could use the same cast animation and maybe units that could get stronger spells have a second animation but whatever the animation is its just called:
<animation path="models/second_spell_attack.g3d"/>
I would probably have more of an issue with melee or crafting type skills though, a spin attack really needs to be separate from an over the head blow.
My other thought is that I could just add an animation to a model folder for the trait and each unit would be passed the appropriate one to use. This would make it easier to add new skills that need individual animations. Some skills could use a less ostentatious particle system compared to magical spells to indicate different skills. Like instead of a whole new animation for a power strike you could just add some light particles or something and this would save memory and labor making custom animations, but some skills would still need a totally new thing.
Aside from these options, does anyone have a better method for this problem?