protected virtual void TriggerWhenAtLeast() { while (WhenAtLeastQueue.Count > 0 && Level >= WhenAtLeastQueue.Peek) { var whenAtLeast = WhenAtLeastQueue.Dequeue(); whenAtLeast.Succeed(); } }
public virtual Event WhenAtLeast(double level) { var whenAtLeast = new Event(Environment); WhenAtLeastQueue.Enqueue(whenAtLeast, level); TriggerWhenAtLeast(); return(whenAtLeast); }