Exemple #1
0
 private string GetQuestEntryText(string quest, int entryNum, QuestState entryState)
 {
     if (entryState == QuestState.Unassigned || entryState == QuestState.Abandoned)
     {
         return(string.Empty);
     }
     else if ((entryState == QuestState.Success || entryState == QuestState.Failure) && !showCompletedEntryText)
     {
         return(string.Empty);
     }
     else if (entryState == QuestState.Success)
     {
         var text = DialogueLua.GetQuestField(quest, "Entry " + entryNum + " Success").AsString;
         if (!string.IsNullOrEmpty(text))
         {
             return(text);
         }
     }
     else if (entryState == QuestState.Failure)
     {
         var text = DialogueLua.GetQuestField(quest, "Entry " + entryNum + " Failure").AsString;
         if (!string.IsNullOrEmpty(text))
         {
             return(text);
         }
     }
     return(QuestLog.GetQuestEntry(quest, entryNum));
 }
Exemple #2
0
        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 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));
        }