protected virtual IEnumerator RefreshAtEndOfFrame()
        {
            yield return(new WaitForEndOfFrame());

            // Move instances to the unused list:
            unusedInstances.AddRange(instantiatedItems);
            instantiatedItems.Clear();
            siblingIndexCounter = 0;

            // Add quests, drawing from unused list when possible:
            int        numTracked = 0;
            QuestState flags      = (showActiveQuests ? QuestState.Active : 0) |
                                    (showCompletedQuests ? QuestState.Success | QuestState.Failure : 0);

            foreach (string quest in QuestLog.GetAllQuests(flags))
            {
                if (QuestLog.IsQuestTrackingEnabled(quest))
                {
                    AddQuestTrack(quest);
                    numTracked++;
                }
            }
            if (container != null)
            {
                container.gameObject.SetActive(showContainerIfEmpty || numTracked > 0);
            }

            // Destroy remaining unused instances:
            for (int i = 0; i < unusedInstances.Count; i++)
            {
                Destroy(unusedInstances[i].gameObject);
            }
            unusedInstances.Clear();
            refreshCoroutine = null;
        }
        protected virtual void ShowQuests(QuestState questStateMask)
        {
            currentQuestStateMask = questStateMask;
            noQuestsMessage       = GetNoQuestsMessage(questStateMask);
            List <QuestInfo> questList = new List <QuestInfo>();

            if (useGroups)
            {
                var records = QuestLog.GetAllGroupsAndQuests(questStateMask, true);
                foreach (var record in records)
                {
                    if (!IsQuestVisible(record.questTitle))
                    {
                        continue;
                    }
                    questList.Add(GetQuestInfo(record.groupName, record.questTitle));
                }
            }
            else
            {
                string[] titles = QuestLog.GetAllQuests(questStateMask, true, null);
                foreach (var title in titles)
                {
                    if (!IsQuestVisible(title))
                    {
                        continue;
                    }
                    questList.Add(GetQuestInfo(string.Empty, title));
                }
            }
            quests = questList.ToArray();
            OnQuestListUpdated();
        }
Пример #3
0
        public void UpdateTracker()
        {
            // Move instances to the unused list:
            unusedInstances.AddRange(instantiatedItems);
            instantiatedItems.Clear();
            siblingIndexCounter = 0;

            // Add quests, drawing from unused list when possible:
            int        numTracked = 0;
            QuestState flags      = (showActiveQuests ? QuestState.Active : 0) |
                                    (showCompletedQuests ? QuestState.Success | QuestState.Failure : 0);

            foreach (string quest in QuestLog.GetAllQuests(flags))
            {
                if (QuestLog.IsQuestTrackingEnabled(quest))
                {
                    AddQuestTrack(quest);
                    numTracked++;
                }
            }
            if (container != null)
            {
                container.gameObject.SetActive(showContainerIfEmpty || numTracked > 0);
            }

            // Destroy remaining unused instances:
            for (int i = 0; i < unusedInstances.Count; i++)
            {
                Destroy(unusedInstances[i].gameObject);
            }
            unusedInstances.Clear();
        }
Пример #4
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();
        }
 public void UpdateTracker()
 {
     DestroyInstantiatedItems();
     foreach (string quest in QuestLog.GetAllQuests())
     {
         if (QuestLog.IsQuestActive(quest) && QuestLog.IsQuestTrackingEnabled(quest))
         {
             InstantiateQuestTrack(quest);
         }
     }
 }
 public void UpdateTracker()
 {
     screenRect = rect.GetPixelRect();
     lines.Clear();
     foreach (string quest in QuestLog.GetAllQuests())
     {
         if (QuestLog.IsQuestActive(quest) && QuestLog.IsQuestTrackingEnabled(quest))
         {
             AddQuestTitle(quest);
             AddQuestEntries(quest);
         }
     }
 }
Пример #7
0
        public void UpdateTracker()
        {
            DestroyInstantiatedItems();

            QuestState flags = (showActiveQuests ? QuestState.Active : 0) |
                               (showCompletedQuests ? QuestState.Success | QuestState.Failure : 0);

            foreach (string quest in QuestLog.GetAllQuests(flags))
            {
                if (QuestLog.IsQuestTrackingEnabled(quest))
                {
                    InstantiateQuestTrack(quest);
                }
            }
        }
Пример #8
0
        public void UpdateTracker()
        {
            screenRect = rect.GetPixelRect();
            lines.Clear();
            QuestState flags = (showActiveQuests ? QuestState.Active : 0) |
                               (showCompletedQuests ? QuestState.Success | QuestState.Failure : 0);

            foreach (string quest in QuestLog.GetAllQuests(flags))
            {
                if (QuestLog.IsQuestTrackingEnabled(quest))
                {
                    AddQuestTitle(quest);
                    AddQuestEntries(quest);
                }
            }
        }
Пример #9
0
        public void UpdateTracker()
        {
            DestroyInstantiatedItems();
            int        numTracked = 0;
            QuestState flags      = (showActiveQuests ? QuestState.Active : 0) |
                                    (showCompletedQuests ? QuestState.Success | QuestState.Failure : 0);

            foreach (string quest in QuestLog.GetAllQuests(flags))
            {
                if (QuestLog.IsQuestTrackingEnabled(quest))
                {
                    InstantiateQuestTrack(quest);
                    numTracked++;
                }
            }
            if (container != null)
            {
                container.gameObject.SetActive(showContainerIfEmpty || numTracked > 0);
            }
        }