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); }
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); } }