Example #1
0
        private IEnumerator QuestReset()
        {
            progress = 0;

            if (Dialogue != null && subscribedToDialogueCallback)
            {
                Dialogue.OnPrimaryDialogueStarted -= DialogueStarted;
                Dialogue.OnPrimaryDialogueEnded   -= DialogueEnded;
                subscribedToDialogueCallback       = false;
            }
            ResetDialogue();

            for (int i = 0; i < Objectives.Count; i++)
            {
                QuestObjective currentObjective = Objectives[i];
                currentObjective.OnComplete -= UpdateQuestProgress;
                yield return(currentObjective.ResetObjective());
            }

            if (OnQuestReset != null)
            {
                OnQuestReset(this);
            }
        }