コード例 #1
0
    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();
        }
    }
コード例 #2
0
 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;
 }
コード例 #3
0
 public bool HasQuest(Quest quest)
 {
     return(MyQuests.Exists(x => x.MyTitle == quest.MyTitle));
 }