private void HandlingLast_Normal() { foreach (TalkObjectiveData to in currentTalker.GetData <TalkerData>().objectivesTalkToThis.Where(o => !o.IsComplete)) { if (to.AllPrevComplete && !to.AnyNextOngoing) { buttonDatas.Add(new ButtonWithTextData(to.parent.Model.Title, delegate { currentTalkObj = to; CurrentType = DialogueType.Objective; ShowButtons(false, false, false, false); StartDialogue(currentTalkObj.Model.Dialogue); })); } } foreach (SubmitObjectiveData so in currentTalker.GetData <TalkerData>().objectivesSubmitToThis.Where(o => !o.IsComplete)) { if (so.AllPrevComplete && !so.AnyNextOngoing) { buttonDatas.Add(new ButtonWithTextData(so.Model.DisplayName, delegate { if (CheckSumbitAble(so)) { currentSubmitObj = so; CurrentType = DialogueType.Objective; ShowButtons(false, false, false, false); StartOneWords(new DialogueWords(currentWords.model.TalkerInfo, currentSubmitObj.Model.WordsWhenSubmit)); } })); } } currentTalker.OnTalkFinished(); }
private void Clear() { currentTalker = null; currentQuest = null; currentTalkObj = null; currentSubmitObj = null; choiceOptionSaid.Clear(); ClearOptions(); HideQuestDescription(); }
public void GoBackDefault() { currentOption = null; currentDialogue = null; currentQuest = null; currentSubmitObj = null; currentTalkObj = null; currentWords = null; choiceOptionSaid.Clear(); ClearOptions(); HideQuestDescription(); StartTalking(currentTalker); }
private void HandlingLast_TalkObj() { if (!currentWords.IsDone) { return; } currentTalkObj.UpdateTalkState(); if (currentTalkObj.IsComplete) { QuestData qParent = currentTalkObj.parent; //该目标是任务的最后一个目标,则可以直接提交任务 if (qParent.currentQuestHolder == currentTalker.GetData <TalkerData>() && qParent.IsComplete && qParent.Objectives.IndexOf(currentTalkObj) == qParent.Objectives.Count - 1) { buttonDatas.Add(new ButtonWithTextData("继续", delegate { currentQuest = qParent; CurrentType = DialogueType.Quest; StartDialogue(qParent.Model.CompleteDialogue); })); } } currentTalkObj = null;//重置管理器的对话目标以防出错 }