Esempio n. 1
0
        TICKRESULT ITicker.Tick(float delta)
        {
            if (_Current != null)
            {
                var result = _Current.Result();
                if (result == INSTRUCTION.DONE_BY_FAILURE || result == INSTRUCTION.DONE_BY_SUCCESS)
                {
                    _Reset();
                    return(result == INSTRUCTION.DONE_BY_SUCCESS ? TICKRESULT.SUCCESS :  TICKRESULT.FAILURE);
                }
                if (result == INSTRUCTION.NEXT)
                {
                    _Current = _Next();
                    return(TICKRESULT.RUNNING);
                }
                if (result == INSTRUCTION.WAIT)
                {
                    return(TICKRESULT.RUNNING);
                }
            }
            _Current = _Next();
            if (_Current != null)
            {
                return(TICKRESULT.RUNNING);
            }

            _Reset();
            return(TICKRESULT.SUCCESS);
        }