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(); }
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(); }
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; }
/// <summary> /// Your GUI should call this when the player clicks to toggle quest tracking. /// </summary> /// <param name="data">Ignored.</param> public virtual void ClickTrackQuest(object data) { if (string.IsNullOrEmpty(selectedQuest)) { return; } bool track = !QuestLog.IsQuestTrackingEnabled(selectedQuest); QuestLog.SetQuestTracking(selectedQuest, track); }
/// <summary> /// Your GUI should call this when the player clicks to toggle quest tracking. /// </summary> /// <param name="data">Ignored.</param> public virtual void ClickTrackQuest(object data) { if (string.IsNullOrEmpty(selectedQuest)) { return; } bool track = !QuestLog.IsQuestTrackingEnabled(selectedQuest); QuestLog.SetQuestTracking(selectedQuest, track); DialogueManager.instance.BroadcastMessage(track ? DialogueSystemMessages.OnQuestTrackingEnabled : DialogueSystemMessages.OnQuestTrackingDisabled, selectedQuest, SendMessageOptions.DontRequireReceiver); }
public void UpdateTracker() { DestroyInstantiatedItems(); foreach (string quest in QuestLog.GetAllQuests()) { if (QuestLog.IsQuestActive(quest) && QuestLog.IsQuestTrackingEnabled(quest)) { InstantiateQuestTrack(quest); } } }
public virtual void Assign(string quest, ToggleChangedDelegate trackToggleDelegate) { if (UITextField.IsNull(label)) { label.uiText = button.GetComponentInChildren <UnityEngine.UI.Text>(); } label.text = quest; var canTrack = QuestLog.IsQuestActive(quest) && QuestLog.IsQuestTrackingAvailable(quest); trackToggleTemplate.Assign(canTrack, QuestLog.IsQuestTrackingEnabled(quest), quest, trackToggleDelegate); }
/// <summary> /// Your GUI should call this when the player clicks to toggle quest tracking. /// </summary> /// <param name="data">Ignored.</param> public void ClickTrackQuest(object data) { if (string.IsNullOrEmpty(SelectedQuest)) { return; } bool track = !QuestLog.IsQuestTrackingEnabled(SelectedQuest); QuestLog.SetQuestTracking(SelectedQuest, track); ShowQuests(currentQuestStateMask); DialogueManager.Instance.BroadcastMessage(track ? "OnQuestTrackingEnabled" : "OnQuestTrackingDisabled", SelectedQuest, SendMessageOptions.DontRequireReceiver); }
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); } } }
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); } } }
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); } } }
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)); }
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); } }