private void AddQuestTrack(string quest) { if (container == null || questTrackTemplate == null) { return; } var questDescription = (questDescriptionSource == QuestDescriptionSource.Title) ? QuestLog.GetQuestTitle(quest) : QuestLog.GetQuestDescription(quest); var heading = FormattedText.Parse(questDescription, DialogueManager.MasterDatabase.emphasisSettings).text; GameObject go; if (unusedInstances.Count > 0) { // Try to use an unused instance: go = unusedInstances[0].gameObject; unusedInstances.RemoveAt(0); } else { // Otherwise instantiate one: go = Instantiate(questTrackTemplate.gameObject) as GameObject; if (go == null) { Debug.LogError(string.Format("{0}: {1} couldn't instantiate quest track template", new object[] { DialogueDebug.Prefix, name })); return; } } go.name = heading; go.transform.SetParent(container.transform, false); go.SetActive(true); var questTrack = go.GetComponent <UnityUIQuestTrackTemplate>(); instantiatedItems.Add(questTrack); if (questTrack != null) { questTrack.Initialize(); var questState = QuestLog.GetQuestState(quest); questTrack.SetDescription(heading, questState); int entryCount = QuestLog.GetQuestEntryCount(quest); for (int i = 1; i <= entryCount; i++) { var entryState = QuestLog.GetQuestEntryState(quest, i); var entryText = FormattedText.Parse(GetQuestEntryText(quest, i, entryState), DialogueManager.MasterDatabase.emphasisSettings).text; if (!string.IsNullOrEmpty(entryText)) { questTrack.AddEntryDescription(entryText, entryState); } } questTrack.transform.SetSiblingIndex(siblingIndexCounter++); } }
private void AddQuestTitle(string quest) { QuestTrackerLine line = new QuestTrackerLine(); var questDescription = (questDescriptionSource == QuestDescriptionSource.Title) ? QuestLog.GetQuestTitle(quest) : QuestLog.GetQuestDescription(quest); line.text = FormattedText.Parse(questDescription, DialogueManager.MasterDatabase.emphasisSettings).text; line.guiStyleName = GetTitleStyleName(QuestLog.GetQuestState(quest)); line.guiStyle = null; lines.Add(line); }
/// <summary> /// Update the current quest state indicator based on the specified quest state indicator /// levels and quest entry state indicator levels. /// </summary> public void UpdateIndicator() { // Check quest state: var questState = QuestLog.GetQuestState(questName); for (int i = 0; i < questStateIndicatorLevels.Length; i++) { var questStateIndicatorLevel = questStateIndicatorLevels[i]; if (questState == questStateIndicatorLevel.questState && questStateIndicatorLevel.condition.IsTrue(null)) { if (DialogueDebug.logInfo) { Debug.Log("Dialogue System: " + name + ": Quest '" + questName + "' changed to state " + questState + ".", this); } if (questStateIndicator != null) { questStateIndicator.SetIndicatorLevel(this, questStateIndicatorLevel.indicatorLevel); } questStateIndicatorLevel.onEnterState.Invoke(); } } // Check quest entry states: for (int i = 0; i < questEntryStateIndicatorLevels.Length; i++) { var questEntryStateIndicatorLevel = questEntryStateIndicatorLevels[i]; var questEntryState = QuestLog.GetQuestEntryState(questName, questEntryStateIndicatorLevel.entryNumber); if (questEntryState == questEntryStateIndicatorLevel.questState && questEntryStateIndicatorLevel.condition.IsTrue(null)) { if (DialogueDebug.logInfo) { Debug.Log("Dialogue System: " + name + ": Quest '" + questName + "' entry " + questEntryStateIndicatorLevel.entryNumber + " changed to state " + questEntryState + ".", this); } if (questStateIndicator != null) { questStateIndicator.SetIndicatorLevel(this, questEntryStateIndicatorLevel.indicatorLevel); } questEntryStateIndicatorLevel.onEnterState.Invoke(); } } }
private void InstantiateQuestTrack(string quest) { if (container == null || questTrackTemplate == null) { return; } var go = Instantiate(questTrackTemplate.gameObject) as GameObject; if (go == null) { Debug.LogError(string.Format("{0}: {1} couldn't instantiate quest track template", new object[] { DialogueDebug.Prefix, name })); return; } instantiatedItems.Add(go); var questDescription = (questDescriptionSource == QuestDescriptionSource.Title) ? QuestLog.GetQuestTitle(quest) : QuestLog.GetQuestDescription(quest); var heading = FormattedText.Parse(questDescription, DialogueManager.MasterDatabase.emphasisSettings).text; go.name = heading; go.transform.SetParent(container.transform, false); go.SetActive(true); var questTrack = go.GetComponent <UnityUIQuestTrackTemplate>(); if (questTrack != null) { questTrack.Initialize(); var questState = QuestLog.GetQuestState(quest); questTrack.SetDescription(heading, questState); int entryCount = QuestLog.GetQuestEntryCount(quest); for (int i = 1; i <= entryCount; i++) { var entryState = QuestLog.GetQuestEntryState(quest, i); var entryText = FormattedText.Parse(GetQuestEntryText(quest, i, entryState), DialogueManager.MasterDatabase.emphasisSettings).text; questTrack.AddEntryDescription(entryText, entryState); } } }
protected virtual void SetupQuestTrackInstance(StandardUIQuestTrackTemplate questTrack, string quest, string heading) { if (questTrack == null) { return; } questTrack.Initialize(); var questState = QuestLog.GetQuestState(quest); questTrack.SetDescription(heading, questState); int entryCount = QuestLog.GetQuestEntryCount(quest); for (int i = 1; i <= entryCount; i++) { var entryState = QuestLog.GetQuestEntryState(quest, i); var entryText = FormattedText.Parse(GetQuestEntryText(quest, i, entryState), DialogueManager.masterDatabase.emphasisSettings).text; if (!string.IsNullOrEmpty(entryText)) { questTrack.AddEntryDescription(entryText, entryState); } } }