public Actor Dequeue()
    {
        Cycle currentCycle = queue.Peek();
        Actor currentActor = currentCycle.Dequeue();

        if (currentCycle.Count == 0)
        {
            queue.Dequeue();
            queue.Enqueue(new Cycle(participants));
        }
        return(currentActor);
    }
示例#2
0
        public override bool UpdateAction(long tick, Actor actor)
        {
            var isFinished = CurrentStep.UpdateAction(tick, actor);

            if (isFinished && IsInfinite)
            {
                CurrentStep = Cycle.Dequeue();
                Cycle.Enqueue(CurrentStep);
                return(false);
            }

            return(isFinished);
        }