Exemplo n.º 1
0
        public override AINodeResult Execute(ref AINode lastRunningNode, AIMember aiMember)
        {
            lastRunningNode = null;
            for (; index < Childs.Count; index++)
            {
                AINode       node    = Childs[index];
                AINodeResult nResult = node.Run(ref lastRunningNode, aiMember);

                if (nResult == AINodeResult.Failure)
                {
                    continue;
                }

                if (nResult == AINodeResult.Success)
                {
                    index = 0;
                    return(AINodeResult.Success);
                }

                if (nResult == AINodeResult.Running)
                {
                    lastRunningNode = node;
                    return(AINodeResult.Running);
                }
            }

            index = 0;
            return(AINodeResult.Failure);
        }
Exemplo n.º 2
0
        public AINodeResult Run(ref AINode lastRunningNode, AIMember aiMember)
        {
            AINodeResult result = Execute(ref lastRunningNode, aiMember);

            ResultState = result;
            return(result);
        }
Exemplo n.º 3
0
        private AINodeResult RunTrueNode(ref AINode lastRunningNode, AIMember aiMember)
        {
            AINodeResult nResult = TrueNode.Run(ref lastRunningNode, aiMember);

            if (nResult == AINodeResult.Running)
            {
                _trueNodeInRunning = true;
                lastRunningNode    = TrueNode;
                return(AINodeResult.Running);
            }

            return(nResult);
        }
Exemplo n.º 4
0
 private void OnResult(AINodeResult result)
 {
     ResultState = result;
 }