示例#1
0
 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();
             }
         }
     });
 }
示例#2
0
        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;
            }
        }