Ejemplo n.º 1
0
        private void AskQuestion()
        {
            QuizData Question = questions.Last();

            Program.MainForm.LogDebug("Asking question.... Answer: " + Question.Answer);
            questions.RemoveAt(questions.Count - 1);
            QuizMap.SendPacket(OXPackets.QuizQuestion(true, Question.QuestionPage, Question.QuestionIdx));
            curQuestion = RepeatingAction.Start("Quiz - " + (questions.Count - 1) + " - question", t => CheckAnswer(Question), 30 * 1000, 0);
        }
Ejemplo n.º 2
0
        private void CheckAnswer(QuizData question)
        {
            QuizMap.SendPacket(OXPackets.QuizQuestion(false, question.QuestionPage, question.QuestionIdx));

            var losers = QuizMap.Characters
                         .Where(
                chr => chr.Foothold < 0 ||
                (!AreaO.Contains(chr.Position.X, chr.Position.Y) && !AreaX.Contains(chr.Position.X, chr.Position.Y)) ||
                (AreaO.Contains(chr.Position.X, chr.Position.Y) && question.Answer != 'o') ||
                (AreaX.Contains(chr.Position.X, chr.Position.Y) && question.Answer != 'x'))
                         .ToList();

            losers.ForEach(c => c.ChangeMap(LoseMapId));

            if (questions.Count == 0)
            {
                Stop();
            }
            else
            {
                Program.MainForm.LogDebug("Asking next question...");
                curQuestion = RepeatingAction.Start("Quiz - " + (questions.Count - 1) + " - answer", t => AskQuestion(), 10 * 1000, 0);
            }
        }