Beispiel #1
0
        internal bool TryAddTrainer(Trainer trainer)
        {
            if (Trainers.Contains(trainer))
            {
                return(false);
            }

            Trainers.Add(trainer);

            return(true);
        }
Beispiel #2
0
        internal bool TryAddPerson(Person person, Trainer personTrainer)
        {
            if (Persons.Contains(person))
            {
                return(false);
            }

            if (!Trainers.Contains(personTrainer))
            {
                return(false);
            }

            person.AssignTrainer(personTrainer);
            Persons.Add(person);
            personTrainer.TryAssignPerson(person);

            return(true);
        }
Beispiel #3
0
 void _increaseOccupationNum(CSPersonnel person, int occupation)
 {
     if (occupation == CSConst.potWorker)
     {
         if (!m_Workers.Contains(person))
         {
             m_Workers.Add(person);
         }
         m_WorkerNum++;
     }
     else if (occupation == CSConst.potSoldier)
     {
         if (!m_Soldiers.Contains(person))
         {
             m_Soldiers.Add(person);
         }
         m_SoldierNum++;
     }
     else if (occupation == CSConst.potFarmer)
     {
         if (!m_Farmers.Contains(person))
         {
             m_Farmers.Add(person);
         }
         m_FarmerNum++;
     }
     else if (occupation == CSConst.potProcessor)
     {
         if (!m_Processors.Contains(person))
         {
             m_Processors.Add(person);
         }
         m_ProcessorNum++;
     }
     else if (occupation == CSConst.potTrainer)
     {
         if (!Trainers.Contains(person))
         {
             Trainers.Add(person);
         }
         m_TrainerNum++;
     }
 }
 public override ProcessResult ProcessMessage(int userid, string text)
 {
     // Обработка сообщений с обучением
     if (Trainers.Contains(userid))
     {
         return(ProcessMessageFromTrainer(userid, text));
     }
     // Обработка команды начала обучения
     else if (text.ToLower() == "учить")
     {
         Trainers.Add(userid);
         CallUsersGridUpdate(new UsersGridUpdateEventArgs("LearningNow", userid, "Yes"));
         vk.SendMessage(userid, "Добро пожаловать в режим обучения бота.\n" +
                        "В данном режиме вы можете научить меня отвечать на различные сообщения.\n" +
                        "Чтобы добавить фразы, которыми я буду отвечать на определённое сообщение, " +
                        "пришлите мне сообщение в виде: ШАБЛОН *перенос строки* ОТВЕТ. " +
                        "Ответов можно добавлять несколько, разделяя их так же переносом строки.\n" +
                        "Пример:\n\nЗДРАВСТВУЙ\nПриветик\nДобрый день\nХей! Как делишки?\n\n" +
                        "Таким образом бот будет отвечать на сообщение с текстом \"здравствуй\" одной из трёх фраз.\n" +
                        "Так же вы можете дать ответ на одну из фраз, которую писали боту, на которую он не смог ответить сам," +
                        "тем самым так же пополнив его базу данных. Для получения случайной фразы, на которую нужно дать ответ, напишите ОТВЕТ" +
                        "Ближайшее время будет добавлена возможность вводить шаблоны в виде регулярных выражений.\n" +
                        "Для выхода из режима обучения пожалуйста напишите ОТМЕНА\n\n" +
                        "Надеюсь Вы научите меня правильно отвечать. Пожалуйста, не вставляйте различные ссылки/рекламу в ответы," +
                        "или же сообщения не по теме. Злоупотребление данной функцией может привести к вашей блокировке. <3");
         return(ProcessResult.Processed);
     }
     // Ответ на фразу, ответ на которую существует
     else if (CustomAnswers.ContainsKey(text.ToLower()) || CustomAnswers.ContainsKey(text.ToLower() + '?') || CustomAnswers.ContainsKey(text.ToLower().Trim(new[] { ' ', '.', '?', '!' })))
     {
         text = text.ToLower();
         var answers = CustomAnswers.ContainsKey(text) ? CustomAnswers[text] :
                       (CustomAnswers.ContainsKey(text + '?') ? CustomAnswers[text + '?'] : CustomAnswers[text.Trim(new[] { ' ', '.', '?', '!' })]);
         var i = rnd.Next(answers.Count);
         vk.SendMessage(userid, answers[i]);
         return(ProcessResult.Processed);
     }
     // Добавление фразы в неотвеченные
     NotAnswered.Add(text);
     Tab.Invoke((Action)(() => Tab.listBoxNotAnswered.Items.Add(text)));
     return(ProcessResult.Skipped);
 }