internal void AdvanceDialog()
 {
     CurrentQuiz.AdvanceDialog();
     if (CurrentQuiz.OnLastLine)
     {
         FinishQuiz();
     }
 }
 internal void AnswerQuestion(int answerIdx)
 {
     CurrentQuiz.AnswerQuestion(answerIdx);
     if (CurrentQuiz.IsComplete())
     {
         CurrentQuiz.ComputeResult();
         result = QuizResult.ResultsMap[CurrentQuiz.GetResultType()];
     }
 }
Exemple #3
0
        public QuizEditorViewModel(IDialogService dialogService, IFileService fileService)
        {
            _dialogService = dialogService;
            _fileService   = fileService;

            NewCommand              = new Command(obj => CreateQuiz());
            OpenCommand             = new Command(obj => OpenQuiz());
            SaveCommand             = new Command(obj => SaveQuiz(), obj => CurrentQuiz != null);
            EditCommand             = new Command(obj => new SettingsWindow(CurrentQuiz).Show(), obj => CurrentQuiz != null);
            AddTaskCommand          = new Command(obj => CreateAndAddTask(obj as ICreatorTask), obj => CurrentQuiz != null);
            RemoveTaskCommand       = new Command(obj => CurrentQuiz.Tasks.Remove(SelectedTask), obj => SelectedTask != null);
            AddGradePointCommand    = new Command(obj => CurrentQuiz.AddNewGradePoint(), obj => CurrentQuiz != null);
            RemoveGradePointCommand = new Command(obj => CurrentQuiz.GradePoints.Remove(SelectedGradePoint), obj => SelectedGradePoint != null);
            AddAnswerCommand        = new Command(obj => SelectedTask.AddNewAnswer(), obj => SelectedTask != null);
            RemoveAnswerCommand     = new Command(obj => SelectedTask.RemoveAnswer(SelectedAnswer), obj => SelectedAnswer != null);
            CloseCommand            = new Command(obj => Close());
            MinimizeCommand         = new Command(obj => MinimizeAction());
            MaximizeCommand         = new Command(obj => MaximizeAction());
        }
        internal void FinishQuiz()
        {
            IsTakingQuiz = false;
            LeveledCombatPetModPlayer petPlayer = Player.GetModPlayer <LeveledCombatPetModPlayer>();

            petPlayer.TemporarilyUnflagPetBuff(result.BuffType);
            if (CurrentQuiz.ExtraResultItemID != ItemID.None)
            {
                Player.QuickSpawnItem(CurrentQuiz.ExtraResultItemID);
            }
            Player.QuickSpawnItem(result.ItemType);
            Player.AddBuff(result.BuffType, 2);
            // shift out the oldest personality quiz result, then save this answer
            for (int i = LastUsedTypes.Length - 2; i >= 0; i--)
            {
                LastUsedTypes[i + 1] = LastUsedTypes[i];
            }
            LastUsedTypes[0] = CurrentQuiz.GetResultType();
            ConsumeQuizActivatingItem();
        }