public override TaskResult Execute() { var failure_type = StopExecution ? ResultType.StopExecution : ResultType.Failure; var unit = UnitRegistry.GetUnit(TargetUnit); if (unit == null) { return(new TaskResult(this, failure_type, $"Unit {TargetUnit} is not loaded.")); } var state = unit.CurrentState; if (ComparisonState.HasFlag(state) || ComparisonState == UnitState.Any) { return(new TaskResult(this, ResultType.Success)); } return(new TaskResult(this, failure_type, $"Expected {TargetUnit} to be Active, it was instead {state}")); }