public void AcceptQuest(Quest quest) { if (currentCount < maxCount) { currentCount++; questCount.text = currentCount + "/" + maxCount; foreach (CollectObjective objective in quest.MyCollectObjectives) { InventoryScript.MyInstance.itemCountChangedEvent += new ItemCountChanged(objective.UpdateItemCount); objective.UpdateItemCount(); } foreach (KillObjective objective in quest.MyKillObjectives) { GameManager.MyInstance.killConfirmedEvent += new KillConfirmed(objective.UpdateKillCount); } MyQuests.Add(quest); GameObject go = Instantiate(questPrefab, questParent); QuestScript qs = go.GetComponent <QuestScript>(); qs.MyQuest = quest; quest.MyQuestScript = qs; questScripts.Add(qs); go.GetComponent <TextMeshProUGUI>().text = quest.MyTitle; CheckCompletion(); } }
public void RemoveQuest(QuestScript qs) { questScripts.Remove(qs); Destroy(qs.gameObject); MyQuests.Remove(qs.MyQuest); questDescription.text = string.Empty; selected = null; currentCount--; questCount.text = currentCount + "/" + maxCount; qs.MyQuest.MyQuestGiver.UpdateQuestStatus(); qs = null; }
public bool HasQuest(Quest quest) { return(MyQuests.Exists(x => x.MyTitle == quest.MyTitle)); }