Files
pgs/Assets/Scripts/UI/QuestMenuController.cs

53 lines
1.9 KiB
C#
Raw Normal View History

2026-02-21 16:58:22 -08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class QuestMenuController : MonoBehaviour
{
[SerializeField] public GameObject menuItemObject;
private List<GameObject> menuItems;
public void Setup(HashSet<QuestID> acceptingQuests, HashSet<QuestID> inProgressQuests, NpcController npcController) {
Debug.Log("Setting up for " + npcController.npcID.ToString());
foreach(Transform child in transform) {
Destroy(child.gameObject);
}
menuItems = new List<GameObject>();
foreach(QuestID questID in acceptingQuests) {
// Already validated as acceptable, no need to check prerequisites agian.
GameObject menuItem = Instantiate(menuItemObject);
menuItem.GetComponent<QuestMenuItemController>().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<QuestMenuItemController>().Setup(questID, npcController, "Complete");
} else {
menuItem.GetComponent<QuestMenuItemController>().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()
{
}
}