public override ControlInput GetControlInput(float dt, ControlInput original)
 {
     host.Target = null;
     foreach (IControlable closeone in closeones)
     {
         if (targetingInfo.MeetsRequirements(FactionInfo.GetTargetingType(host, closeone)))
         {
             host.Target = closeone;
             break;
         }
     }
     return(original);
 }
 public bool CanTarget(IControlable other)
 {
     return(targetableTypes.IsAll ||
            targetableTypes.MeetsRequirements(FactionInfo.GetTargetingType(source, other)));
 }
 public bool CanEffect(IControlable controlable)
 {
     return((!exhausted) && (effectsWho.IsAll ||
                             effectsWho.MeetsRequirements(FactionInfo.GetTargetingType(Host, controlable))));
 }