public Actor Dequeue() { Cycle currentCycle = queue.Peek(); Actor currentActor = currentCycle.Dequeue(); if (currentCycle.Count == 0) { queue.Dequeue(); queue.Enqueue(new Cycle(participants)); } return(currentActor); }
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); }