Exemple #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();
             }
         }
     });
 }
Exemple #2
0
        public async void CheckMessage(OnMessageReceivedArgs e)
        {
            await Task.Run(() =>
            {
                try
                {
                    var message = e.ChatMessage.Message.ToLower().Trim();
                    switch (message)
                    {
                    case "!testdrive":                             // тестовый зазд
                        SoloRaces.Race(e, this);
                        break;

                    case "!info":                              // характеристики пользователя
                        UserActions.ShowInfo(e, this);
                        break;

                    case "!join":                              // присоединение к групповому заеду
                        GroupRaceHandler.JoinToRace(e, this);
                        break;

                    case "!shop":                             // доступные для покупки машины
                        ShopAction.ShowCarsForSale(e, this);
                        break;

                    case "!car":                             // инфа об авто
                        UserActions.ShowUserCar(e, this);
                        break;

                    case "!start":                             // команда для начала игры
                        UserActions.CreateUser(e, this);
                        break;

                    case "!game":                              // описание игры, с командами
                        ShowGameInfo(e.ChatMessage.Channel);
                        break;

                    default:
                        {
                            if (message.StartsWith("!lvlup"))                                     // улучшение характеристик пользователя
                            {
                                UserActions.Upgrade(e, this);
                            }
                            else if (message.StartsWith("!iirace"))                                     // гонка с компьютером
                            {
                                RaceWithAI.Race(e, this);
                            }
                            else if (message.StartsWith("!buy"))                                     // покупка авто
                            {
                                ShopAction.BuyAuto(e, this);
                            }

                            AdminCommands(e);
                            break;
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logger.Log(ex);
                }
            });
        }