private void CheckQuestTriggers() { Debug.Log("Checking quest triggers!!"); LocationList curLocation = locationManager.GetCurrentLocation(); int i = 0; foreach (var check in questActionChecks) { if (!check.hasTriggered && check.location == curLocation && questList.HasQuest(check.quest) && questList.HasObjectiveCompleted(check.quest, check.objective) == check.isOnCompletion) { if (check.buttonTrigger != null) { QuestTrigger trigger = check.buttonTrigger.gameObject.AddComponent <QuestTrigger>(); trigger.SetQuest(check.quest); trigger.SetObjectiveIndex(check.objective); int index = i; check.buttonTrigger.onClick.AddListener(() => { trigger.CompleteObjective(); MarkAsTriggered(index); }); } else { conversant.StartDialogue(check.dialogue); activeCheck = check; } } i++; } }
public void MarkAsTriggered() { if (activeCheck != null) { activeCheck.hasTriggered = true; } activeCheck = null; }