private void CreateQuests() { List <Quest> questsOrdered = QuestManager.instance.GetQuests.OrderBy(x => x.questName).ToList(); for (int i = 0; i < questsOrdered.Count; i++) { Quest quest = questsOrdered[i]; QuestManager.QuestData questData = QuestManager.instance.GetQuestDataByID(quest.questID); GameObject item = questLogItem; if (i >= 1) { item = Instantiate(questLogItem, questLogItem.transform.parent); } questIDToLogItemDictionary.Add(quest.questID, item); questIDToLogDataDictionary.Add(quest.questID, QuestManager.instance.GetQuestLogEntry(quest, "")); QuestState questState = questData.currentQuestState; RefreshSpecificQuestColour(item.GetComponentInChildren <TextMeshProUGUI> (), quest); item.GetComponentInChildren <Button> ().onClick.AddListener(() => { OpenQuestDisplayPanel(quest); }); } if (questsOrdered.Count <= 0) { questLogItem.SetActive(false); } }
private void RefreshSpecificQuestColour(TextMeshProUGUI textMesh, Quest quest) { string colour = ""; QuestManager.QuestData data = QuestManager.instance.GetQuestDataByID(quest.questID); switch (QuestManager.instance.GetQuestDataByID(quest.questID).currentQuestState) { case QuestState.NotStarted: colour = "red"; break; case QuestState.InProgress: colour = "yellow"; break; case QuestState.Completed: colour = "green"; break; case QuestState.Failed: colour = "gray"; break; default: break; } textMesh.text = string.Format("<color={0}>{1}</color>", colour, quest.questName); }