protected virtual void TriggerWhenAtMost() { while (WhenAtMostQueue.Count > 0 && Level <= WhenAtMostQueue.Peek) { var whenAtMost = WhenAtMostQueue.Dequeue(); whenAtMost.Succeed(); } }
public virtual Event WhenAtMost(double level) { var whenAtMost = new Event(Environment); WhenAtMostQueue.Enqueue(whenAtMost, level); TriggerWhenAtMost(); return(whenAtMost); }