53 lines
1.9 KiB
C#
53 lines
1.9 KiB
C#
|
|
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()
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|