Beispiel #1
0
        public BehaviorResult Behave(AIContext context)
        {
            writeDebugInfo(Environment.NewLine + "Invoking " + debugName);
            behaviorResult = decoratedNode.Behave(context);
            writeDebugInfo(debugName + " execution terminated: " + behaviorResult);

            OnBehaved?.Invoke(this, new BehaviorInvokationEventArgs(behaviorResult));
            return(behaviorResult);
        }
        public BehaviorResult Behave(AIContext context)
        {
            if (behaviorResult == BehaviorResult.Failure)
            {
                InvokeAndReturn();
            }
            behaviorResult = decoratedNode.Behave(context);

            if (behaviorResult == BehaviorResult.Success)
            {
                decoratedNode  = repeatedDecoratedNode();
                behaviorResult = BehaviorResult.Running;
            }

            return(InvokeAndReturn());
        }
Beispiel #3
0
        public BehaviorResult Behave(AIContext context)
        {
            if (behaviorResult != BehaviorResult.Running)
            {
                return(InvokeAndReturn());
            }

            switch (decoratedNode.Behave(context))
            {
            case BehaviorResult.Success:
            case BehaviorResult.Failure:
                behaviorResult = BehaviorResult.Success;
                break;
            }
            return(InvokeAndReturn());
        }