private void ShowQuests(QuestState questStateMask) { currentQuestStateMask = questStateMask; NoQuestsMessage = GetNoQuestsMessage(questStateMask); List <QuestInfo> questList = new List <QuestInfo>(); string[] titles = QuestLog.GetAllQuests(questStateMask); foreach (var title in titles) { FormattedText description = FormattedText.Parse(QuestLog.GetQuestDescription(title), DialogueManager.MasterDatabase.emphasisSettings); FormattedText localizedTitle = FormattedText.Parse(QuestLog.GetQuestTitle(title), DialogueManager.MasterDatabase.emphasisSettings); FormattedText heading = (questHeadingSource == QuestHeadingSource.Description) ? description : localizedTitle; bool abandonable = QuestLog.IsQuestAbandonable(title) && IsShowingActiveQuests; bool trackable = QuestLog.IsQuestTrackingAvailable(title) && IsShowingActiveQuests; bool track = QuestLog.IsQuestTrackingEnabled(title); int entryCount = QuestLog.GetQuestEntryCount(title); FormattedText[] entries = new FormattedText[entryCount]; QuestState[] entryStates = new QuestState[entryCount]; for (int i = 0; i < entryCount; i++) { entries[i] = FormattedText.Parse(QuestLog.GetQuestEntry(title, i + 1), DialogueManager.MasterDatabase.emphasisSettings); entryStates[i] = QuestLog.GetQuestEntryState(title, i + 1); } questList.Add(new QuestInfo(title, heading, description, entries, entryStates, trackable, track, abandonable)); } Quests = questList.ToArray(); OnQuestListUpdated(); }
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 string GetQuestEntryDescription(string quest) { StringBuilder sb = new StringBuilder(); int entryCount = QuestLog.GetQuestEntryCount(quest); for (int i = 1; i <= entryCount; i++) { sb.Append(FormattedText.Parse(QuestLog.GetQuestEntry(quest, i), DialogueManager.MasterDatabase.emphasisSettings).text); if (i < entryCount) { sb.Append("\n"); } } return(sb.ToString()); }
private void AddQuestEntries(string quest) { int entryCount = QuestLog.GetQuestEntryCount(quest); for (int i = 1; i <= entryCount; i++) { QuestState entryState = QuestLog.GetQuestEntryState(quest, i); if (entryState != QuestState.Unassigned) { QuestTrackerLine line = new QuestTrackerLine(); line.text = FormattedText.Parse(QuestLog.GetQuestEntry(quest, i), DialogueManager.MasterDatabase.emphasisSettings).text; line.guiStyleName = GetEntryStyleName(entryState); line.guiStyle = null; lines.Add(line); } } }
protected virtual QuestInfo GetQuestInfo(string group, string title) { FormattedText description = FormattedText.Parse(QuestLog.GetQuestDescription(title), DialogueManager.masterDatabase.emphasisSettings); FormattedText localizedTitle = FormattedText.Parse(QuestLog.GetQuestTitle(title), DialogueManager.masterDatabase.emphasisSettings); FormattedText heading = (questHeadingSource == QuestHeadingSource.Description) ? description : localizedTitle; bool abandonable = QuestLog.IsQuestAbandonable(title) && isShowingActiveQuests; bool trackable = QuestLog.IsQuestTrackingAvailable(title) && isShowingActiveQuests; bool track = QuestLog.IsQuestTrackingEnabled(title); int entryCount = QuestLog.GetQuestEntryCount(title); FormattedText[] entries = new FormattedText[entryCount]; QuestState[] entryStates = new QuestState[entryCount]; for (int i = 0; i < entryCount; i++) { entries[i] = FormattedText.Parse(QuestLog.GetQuestEntry(title, i + 1), DialogueManager.masterDatabase.emphasisSettings); entryStates[i] = QuestLog.GetQuestEntryState(title, i + 1); } return(new QuestInfo(group, title, heading, description, entries, entryStates, trackable, track, abandonable)); }
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); } } }
private void AddQuestEntries(string quest) { int entryCount = QuestLog.GetQuestEntryCount(quest); for (int i = 1; i <= entryCount; i++) { QuestState entryState = QuestLog.GetQuestEntryState(quest, i); if (entryState == QuestState.Unassigned) { continue; } if ((entryState == QuestState.Success || entryState == QuestState.Failure) && !showCompletedEntryText) { continue; } QuestTrackerLine line = new QuestTrackerLine(); var entryText = GetQuestEntryText(quest, i, entryState); line.text = FormattedText.Parse(entryText, DialogueManager.MasterDatabase.emphasisSettings).text; line.guiStyleName = GetEntryStyleName(entryState); line.guiStyle = null; lines.Add(line); } }