示例#1
0
        /// <summary>
        ///     performs the given behavior
        /// </summary>
        /// <returns>the behaviors return code</returns>
        public override BehaviourReturnCode Behave()
        {
            try
            {
                switch (_behaviourComponent.Behave())
                {
                case BehaviourReturnCode.Failure:
                    ReturnCode = BehaviourReturnCode.Success;
                    return(ReturnCode);

                case BehaviourReturnCode.Success:
                    ReturnCode = BehaviourReturnCode.Failure;
                    return(ReturnCode);

                case BehaviourReturnCode.Running:
                    ReturnCode = BehaviourReturnCode.Running;
                    return(ReturnCode);
                }
            }
            catch (Exception e)
            {
#if DEBUG
                Console.Error.WriteLine(e.ToString());
#endif
                ReturnCode = BehaviourReturnCode.Success;
                return(ReturnCode);
            }

            ReturnCode = BehaviourReturnCode.Success;
            return(ReturnCode);
        }
示例#2
0
        public override BehaviourReturnCode Behave()
        {
            try
            {
                if (_rRandomFunction.Invoke() <= _probability)
                {
                    ReturnCode = _behaviourComponent.Behave();
                    return(ReturnCode);
                }
                ReturnCode = BehaviourReturnCode.Running;
                return(BehaviourReturnCode.Running);
            }
            catch (Exception e)
            {
#if DEBUG
                Console.Error.WriteLine(e.ToString());
#endif
                ReturnCode = BehaviourReturnCode.Failure;
                return(BehaviourReturnCode.Failure);
            }
        }
示例#3
0
        public override BehaviourReturnCode Behave()
        {
            try
            {
                if (_interruptCondition.Behave() == BehaviourReturnCode.Success)
                {
                    ReturnCode = _onInterruptReturn;
                    return(_onInterruptReturn);
                }

                ReturnCode = _behaviourComponent.Behave();
                return(ReturnCode);
            }
            catch (Exception e)
            {
#if DEBUG
                Console.Error.WriteLine(e.ToString());
#endif
                ReturnCode = BehaviourReturnCode.Failure;
                return(ReturnCode);
            }
        }
示例#4
0
        /// <summary>
        ///     performs the given behavior
        /// </summary>
        /// <returns>the behaviors return code</returns>
        public override BehaviourReturnCode Behave()
        {
            try
            {
                if (_counter < _maxCount)
                {
                    _counter++;
                    ReturnCode = BehaviourReturnCode.Running;
                    return(BehaviourReturnCode.Running);
                }
                _counter   = 0;
                ReturnCode = _behaviour.Behave();
                return(ReturnCode);
            }
            catch (Exception e)
            {
#if DEBUG
                Console.Error.WriteLine(e.ToString());
#endif
                ReturnCode = BehaviourReturnCode.Failure;
                return(BehaviourReturnCode.Failure);
            }
        }
示例#5
0
        /// <summary>
        ///     performs the given behavior
        /// </summary>
        /// <returns>the behaviors return code</returns>
        public override BehaviourReturnCode Behave()
        {
            try
            {
                _timeElapsed += _elapsedTimeFunction.Invoke();

                if (_timeElapsed >= _waitTime)
                {
                    _timeElapsed = 0;
                    ReturnCode   = _behaviourComponent.Behave();
                    return(ReturnCode);
                }
                ReturnCode = BehaviourReturnCode.Running;
                return(BehaviourReturnCode.Running);
            }
            catch (Exception e)
            {
#if DEBUG
                Console.Error.WriteLine(e.ToString());
#endif
                ReturnCode = BehaviourReturnCode.Failure;
                return(BehaviourReturnCode.Failure);
            }
        }