All the overridden methods for CombatRoutine are composites. I dont have too good of an understanding of that stuff yet. But if you look around at how wingit is written, its pretty awesome. I was hoping to write some healing CCs with wow today, but C# not doing multiple inheritance blow a hole in that plan. Probably going to take a good look at WingIt and try to learn some stuff. So far I really like it.
Why in gods name would you need multiple inheritance? Its a crutch that leads to terrible API, and unknown type issues.
I just learned it existed in school and thought it sounded awesome. My healing CCs are all pretty my the same thing, so I thought it would be cool to make a healer class to derive my CCs from.
I think you're mixing up the terms. Inheritance is just creating a base class, and having another class inherit from it. (Eg; base class "Animal" with subclasses "Dog", "Cat", etc) Multiple-inheritance is allowing inheritance of 2 completely different base classes, on 1 class. (Eg; base class "Animal" and base class "Machine" with class "Metimal" inheriting both, which makes no sense)
Technically, interfaces provide multiple-inheritance in a vague sort of way, but its still type-safe.
public abstract class Healer
public class HolyCow : Healer
public class RestoCow : Healer
public class HealingCC : CombatRoutine
Healer healBase;
if(Me.Class == Paladin)
healBase = HolyCow();