async void GroupRaceControl(string channel) { await Task.Run(() => { Models.RaceDivision division = Models.RaceDivision.Common; while (groupRaceIsOn) { try { GroupRaceHandler.CreateRace(channel, this, division); Thread.Sleep(TimeSpan.FromMinutes(2)); GroupRaceHandler.GroupRaceInfo(channel, this, 8); Thread.Sleep(TimeSpan.FromMinutes(5)); GroupRaceHandler.GroupRaceInfo(channel, this, 5); Thread.Sleep(TimeSpan.FromMinutes(2)); GroupRaceHandler.GroupRaceInfo(channel, this, 3); Thread.Sleep(TimeSpan.FromMinutes(2)); GroupRaceHandler.GroupRaceInfo(channel, this, 1); Thread.Sleep(TimeSpan.FromMinutes(1)); UpdateDivision(ref division); GroupRaceHandler.GroupRaceResult(channel, this); Thread.Sleep(TimeSpan.FromMinutes(19)); } catch (Exception ex) { Logger.Log(ex); CloseNotFinishedGroupRace(); } } }); }
void UpdateDivision(ref Models.RaceDivision raceDivision) { Random random = new Random(); var next = random.Next() % 2; if (raceDivision == Models.RaceDivision.Common) { raceDivision = next == 0 ? Models.RaceDivision.Newbie : Models.RaceDivision.Pro; } else if (raceDivision == Models.RaceDivision.Newbie) { raceDivision = next == 0 ? Models.RaceDivision.Pro : Models.RaceDivision.Common; } else if (raceDivision == Models.RaceDivision.Pro) { raceDivision = next == 0 ? Models.RaceDivision.Common : Models.RaceDivision.Newbie; } }