public ApproachMeleeRange(Combatant source)
     : base(source)
 {
     _source = (Combatant)source;
     if ((_walk = _source.GetSkill<WalkSkill>()) == null) {
         throw new ArgumentException("source", "Combatant " + source.Name + " doesn't have a Walk skill");
     }
     if ((_melee = _source.GetSkill<MeleeAttackSkill>()) == null) {
         throw new ArgumentException("source", "Combatant " + source.Name + " doesn't have a Melee Attack skill");
     }
 }
 public AttackWithMelee(Combatant source)
 {
     _source = source;
     _melee = _source.GetSkill<MeleeAttackSkill>();
 }