void InstantiateQuestButton(MBAQuest quest, int num) { float yspace = 10; GameObject Content = transform.FindChild("ScrollView_QuestButtons").FindChild("Viewport").FindChild("Content").gameObject; Content.GetComponent <RectTransform>().sizeDelta = new Vector2(Content.GetComponent <RectTransform>().sizeDelta.x, num * (83 + 15) + 100); GameObject newButton = JWInstantiateUnderParent_UI(Button_Quest, Content, false, new Vector3(Button_Quest.transform.localPosition.x, Button_Quest.transform.localPosition.y - num * (Button_Quest.GetComponent <RectTransform>().rect.height + yspace), 0)); GameObject reddot = newButton.transform.FindChild("Image_RedDot").gameObject; if (!db.issuedQuests.Contains(quest.ID)) { reddot.SetActive(false); } Text Text_Finished = newButton.transform.FindChild("Text_Finished").GetComponent <Text>(); if (db.finishedQuests.Contains(quest.ID)) { newButton.GetComponent <Image>().color = newButton.GetComponent <Image>().color * 0.9f; Text_Finished.text = "Finished"; } MBASettings_Subject subject = db.Settings.GetSubjectByID(quest.Subject); string subjectName = subject == null ? "Subject Name N/A" : subject.Name; newButton.transform.FindChild("Text_Intro").GetComponent <Text>().text = "<b>" + quest.Name + "</b>\n" + subjectName + " (ID: " + quest.ID + ")\n<color=grey>" + quest.Outcome + "</color> "; newButton.GetComponent <Button>().onClick.AddListener(delegate { db.currQuest = quest; db.currBuilding = quest.Building; InistantiateOutcomePanel(quest.Outcome); //SceneManager.LoadScene("BuildingInside");//building inside }); }
public void UpdateList_Quest(string listname) { MBAMapPanel_DashboardQuestButton[] buttons = FindObjectsOfType <MBAMapPanel_DashboardQuestButton>(); foreach (MBAMapPanel_DashboardQuestButton button in buttons) { Destroy(button.gameObject); } string category = transform.FindChild("Panel_Category").FindChild("Dropdown_Category").GetComponent <Dropdown>().captionText.text; int questCount = 0; switch (category) { case "Subjects": foreach (MBAQuest quest in db.Quests) { if (quest.Subject == listname) { //print(quest.Subject); InstantiateQuestButton(quest, questCount); questCount++; } } break; case "Contacts": foreach (string questid in db.allQuests) { MBAQuest quest = new MBAQuest(questid); if (quest.Building == listname) { InstantiateQuestButton(quest, questCount); questCount++; } } break; } }
void InstantiateCategoryButton_Subject(string subject) { int currAll = db.GetQuestCount_All("subject", subject); int currFinished = db.GetQuestCount_Finished("subject", subject); GameObject Panel_CategoryList = transform.FindChild("Panel_Category").FindChild("Scroll View").FindChild("Viewport") .FindChild("Content").gameObject; GameObject ButtonTemplate = Resources.Load <GameObject>("Prefab/GameElement/MBAButton_Subject"); GameObject newButton = JWInstantiateUnderParent_UI(ButtonTemplate, Panel_CategoryList, false); GameObject reddot = newButton.transform.FindChild("Image_RedDot").gameObject; reddot.SetActive(false); GameObject Text_Percentage = newButton.transform.FindChild("Text_Percentage").gameObject; Text_Percentage.GetComponent <Text>().text = currFinished + "/" + currAll; Slider slider = newButton.GetComponentInChildren <Slider>(); slider.value = (float)currFinished / (float)currAll; foreach (string questID in db.issuedQuests) { MBAQuest currQuest = new MBAQuest(questID); if (currQuest.Subject == subject) { reddot.SetActive(true); reddot.GetComponentInChildren <Text>().text = db.GetQuestCount_Issued("subject", subject).ToString(); break; } } string currSubject = subject; newButton.GetComponent <Button>().onClick.AddListener(delegate { UpdateList_Quest(currSubject); //ShowSubjectIntro(settings.GetSubjectByID(currSubject)); }); newButton.GetComponentInChildren <Text>().text = db.Settings.GetSubjectNameByID(subject); }
public void UpdateList_Category() { GameObject Panel_CategoryList = transform.FindChild("Panel_Category").FindChild("Scroll View").FindChild("Viewport") .FindChild("Content").gameObject; GameObject ButtonTemplate = Resources.Load <GameObject>("Prefab/GameElement/MBAButton_Subject"); string category = transform.FindChild("Panel_Category").FindChild("Dropdown_Category").GetComponent <Dropdown>().captionText.text; foreach (Transform child in Panel_CategoryList.transform) { Destroy(child.gameObject); } switch (category) { case "Contacts": List <string> buildings = new List <string>(); foreach (string questid in db.allQuests) { MBAQuest quest = new MBAQuest(questid); if (!buildings.Contains(quest.Building)) { buildings.Add(quest.Building); } } foreach (string building in buildings) { GameObject newButton = JWInstantiateUnderParent_UI(ButtonTemplate, Panel_CategoryList, false); string currBuilding = building; newButton.GetComponent <Button>().onClick.AddListener(delegate { UpdateList_Quest(currBuilding); }); newButton.GetComponentInChildren <Text>().text = db.Settings.GetBuildingNameByID(building); } break; case "Subjects": List <string> subjects = new List <string>(); foreach (string questid in db.allQuests) { MBAQuest quest = new MBAQuest(questid); if (!subjects.Contains(quest.Subject)) { subjects.Add(quest.Subject); } } List <string> issuedSubjects = new List <string>(); foreach (string issuedQuestID in db.issuedQuests) { MBAQuest quest = new MBAQuest(issuedQuestID); if (!issuedSubjects.Contains(quest.Subject)) { issuedSubjects.Add(quest.Subject); } } foreach (string issuedSubject in issuedSubjects) { InstantiateCategoryButton_Subject(issuedSubject); } foreach (string subject in subjects) { if (!issuedSubjects.Contains(subject)) { InstantiateCategoryButton_Subject(subject); } } break; } //Panel_CategoryList.GetComponentInChildren<Button>().onClick.Invoke(); StartCoroutine(InvokeFirstChildButton(Panel_CategoryList)); }