using System.Collections; using System.Collections.Generic; using UnityEngine; public class QuestMenuController : MonoBehaviour { [SerializeField] public GameObject menuItemObject; private List menuItems; public void Setup(HashSet acceptingQuests, HashSet inProgressQuests, NpcController npcController) { Debug.Log("Setting up for " + npcController.npcID.ToString()); foreach(Transform child in transform) { Destroy(child.gameObject); } menuItems = new List(); foreach(QuestID questID in acceptingQuests) { // Already validated as acceptable, no need to check prerequisites agian. GameObject menuItem = Instantiate(menuItemObject); menuItem.GetComponent().Setup(questID, npcController, "Available"); menuItem.transform.SetParent(this.transform); menuItem.transform.localScale = Vector3.one; menuItems.Add(menuItem); } foreach(QuestID questID in inProgressQuests) { GameObject menuItem = Instantiate(menuItemObject); if (State.state.quests.allQuestProgress.ContainsKey(questID) && ((QuestProgress)State.state.quests.allQuestProgress[questID]).CheckComplete()) { menuItem.GetComponent().Setup(questID, npcController, "Complete"); } else { menuItem.GetComponent().Setup(questID, npcController, "In Progress"); } menuItem.transform.SetParent(this.transform); menuItem.transform.localScale = Vector3.one; menuItems.Add(menuItem); } } // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { } }