public void MakeStep() { if (Ended) { return; } foreach (int i in System.Linq.Enumerable.Range(0, Settings.Instance.StepMinutes)) { NextClientSpawn -= 1; if (NextClientSpawn <= 0) { Client NewClient = new Client( ClientNum, Rnd.Next(0, Settings.Instance.TimeToProcessEnd - Settings.Instance.TimeToProcessBegin) + Settings.Instance.TimeToProcessBegin, Rnd.Next(Settings.Instance.ProfitStart, Settings.Instance.ProfitEnd) ); ClientNum += 1; Trace.WriteLine("Spawned Client with " + NewClient.TimeToSolve.ToString()); Department.NewClient(NewClient); NextClientSpawn = Rnd.Next(0, 15 - ((Settings.Instance.CustomerFlow - 50) / 10)); } Department.Tick(1); CurrentTime = CurrentTime.Add(new TimeSpan(0, 1, 0)); Trace.WriteLine("Minute passed, CurrentTime = " + CurrentTime.ToString()); if (CurrentTime.CompareTo(Settings.GetDayEndTime(Day)) >= 0) { NextDay(); break; } } }