public void AddQuest(Quest quest) { if (Quests.Contains(quest)) { Debug.LogErrorFormat("Quest {0} has already been added!", quest.name); } Quests.Add(quest); quest.IsQuestAdded = true; quest.OnQuestCompleted += OnQuestComplete; quest.TriggerQuestAdded(); if (OnQuestAdded != null) OnQuestAdded(quest); // A new quest has been added recheck all associations CheckAllEntitiesForQuestAssociation(); // Check all entities when an objective has been completed quest.OnQuestObjectiveCompleted += QuestObjectiveCompleted; TryAutoSetTrackedQuest(); AssignAllQuestNumbers(); }