Ejemplo n.º 1
0
        // Reports a success if the child succeeds and a failure if the child fails.
        // repeates evaluation of child the number of times set in constructor  - 1
        // so that it can return the last state on the last evaluation
        // Running reports as running
        public override NodeStates Evaluate()
        {
            m_currRepeatNumber = 0;
            for (int i = 0; i < m_repeatNumber - 1; i++)
            {
                m_node.Evaluate();
                m_currRepeatNumber++;
            }
            switch (m_node.Evaluate())
            {
            case NodeStates.FAILURE:
                m_nodeState = NodeStates.FAILURE;
                return(m_nodeState);

            case NodeStates.SUCCESS:
                m_nodeState = NodeStates.SUCCESS;
                return(m_nodeState);

            case NodeStates.RUNNING:
                m_nodeState = NodeStates.RUNNING;
                return(m_nodeState);
            }
            m_nodeState = NodeStates.SUCCESS;
            return(m_nodeState);
        }
Ejemplo n.º 2
0
        // Reports a success if the child succeeds and a failure if the child fail.
        // Running reports as running
        // adds one to number of times evaluate, if it is greater or equal to the number of
        // times asked to evaluate than just returns what you have chosen in contructor and
        // doesn't evaluate child node
        public override NodeStates Evaluate()
        {
            if (m_numTimesHasEvaluated < m_numTimesToEvaluate)
            {
                switch (m_node.Evaluate())
                {
                case NodeStates.FAILURE:
                    m_nodeState = NodeStates.FAILURE;
                    m_numTimesHasEvaluated++;
                    return(m_nodeState);

                case NodeStates.SUCCESS:
                    m_nodeState = NodeStates.SUCCESS;
                    m_numTimesHasEvaluated++;
                    return(m_nodeState);

                case NodeStates.RUNNING:
                    m_nodeState = NodeStates.RUNNING;
                    //m_numTimesHasEvaluated++;
                    return(m_nodeState);
                }
            }
            m_nodeState = m_StateToReturn;
            return(m_nodeState);
        }
 // Continues to keep evaluating child node indefinitely.
 // Untill the user sets repeat to false
 // then it reports a success
 public override NodeStates Evaluate()
 {
     while (m_repeat)
     {
         m_node.Evaluate();
     }
     m_nodeState = NodeStates.SUCCESS;
     return(m_nodeState);
 }
Ejemplo n.º 4
0
        // Reports a success if the child fails and a failure if the child succeeds.
        // Running reports as running
        public override NodeStates Evaluate()
        {
            switch (m_node.Evaluate())
            {
            case NodeStates.FAILURE:
                m_nodeState = NodeStates.SUCCESS;
                return(m_nodeState);

            case NodeStates.SUCCESS:
                m_nodeState = NodeStates.FAILURE;
                return(m_nodeState);

            case NodeStates.RUNNING:
                m_nodeState = NodeStates.RUNNING;
                return(m_nodeState);
            }
            m_nodeState = NodeStates.SUCCESS;
            return(m_nodeState);
        }
Ejemplo n.º 5
0
        // Reports the node state chosen by the user no matter what the child reports.
        // Running reports as running
        public override NodeStates Evaluate()
        {
            if (m_node != null)
            {
                switch (m_node.Evaluate())
                {
                case NodeStates.FAILURE:
                    m_nodeState = m_StateToChange;
                    return(m_nodeState);

                case NodeStates.SUCCESS:
                    m_nodeState = m_StateToChange;
                    return(m_nodeState);

                case NodeStates.RUNNING:
                    m_nodeState = NodeStates.RUNNING;
                    return(m_nodeState);
                }
            }
            m_nodeState = m_StateToChange;
            return(m_nodeState);
        }
Ejemplo n.º 6
0
        // keeps repeating the evaluation of its child until the child reports a failure
        // Reports a fail once done.
        public override NodeStates Evaluate()
        {
            bool failed = false;

            while (!failed)
            {
                switch (m_node.Evaluate())
                {
                case NodeStates.FAILURE:
                    failed = true;
                    break;

                case NodeStates.SUCCESS:
                    continue;

                case NodeStates.RUNNING:
                    continue;
                }
                m_currRepeatNumber++;
            }
            m_nodeState = NodeStates.FAILURE;
            return(m_nodeState);
        }
 public void Evaluate()
 {
     root.Evaluate();
 }