public void ProcessQuestTrigger(QuestTrigger questTrigger) { if (complete) { return; } if (questTrigger.questNode == currentObjective) { currentObjective.MarkTaskComplete(questTrigger.task); } else { if (questTrigger.questNode.taskType != TaskType.TALK) { questTrigger.questNode.MarkTaskComplete(questTrigger.task); } } while (canIAdvance()) { AdvanceQuestAndDisplayObjectives(); dialog = currentObjective.dialog; } }