public override IEnumerable<RunStatus> Execute(object context)
{
if (ContextChanger != null)
{
context = ContextChanger(context);
}
foreach (Composite node in Children)
{
node.Start(context);
while (node.Tick(context) == RunStatus.Running)
{
Selection = node;
yield return RunStatus.Running;
}
Selection = null;
node.Stop(context);
if (node.LastStatus == RunStatus.Failure)
{
yield return RunStatus.Failure;
yield break;
}
}
yield return RunStatus.Success;
yield break;
}