void UpdateEventsState(int currentTime) { foreach (var randomEvent in SimRandomEvents.Where(x => x.IsHappened)) { switch (randomEvent.Status) { case RandomEventStatus.Finished: continue; case RandomEventStatus.NotStarted: randomEvent.TimeStart = currentTime; randomEvent.TimeEnd = currentTime + randomEvent.Duration; randomEvent.Status = RandomEventStatus.Started; break; case RandomEventStatus.Started: { if (currentTime >= randomEvent.TimeEnd) { randomEvent.Status = RandomEventStatus.Finished; } break; } } break; } }
bool CheckRandomEventsStatus() { return(SimRandomEvents.All(x => x.Status == RandomEventStatus.Finished || !x.IsHappened)); }