Esempio n. 1
0
        private void loadQuestDetails(dynamic resource)
        {
            foreach (dynamic questDetailRes in resource.QuestDetailList)
            {
                var questDetail = new QuestDetail();
                questDetail.Index            = questDetailRes.Index;
                questDetail.GameMode         = GameMode.Parse(questDetailRes.GameMode);
                questDetail.LevelRestriction = questDetailRes.LevelRestriction;

                int conditionIndex = 1;
                while (questDetailRes.Members.ContainsKey("ConditionType" + conditionIndex))
                {
                    var condition = new QuestCondition(QuestConditionType.Parse(questDetailRes.Members["ConditionType" + conditionIndex]),
                                                       ((string)questDetailRes.Members["ConditionCount" + conditionIndex]).Split(',').Select(int.Parse).ToList());
                    questDetail.Conditions.Add(condition);
                    conditionIndex++;
                }

                int requireItemIndex = 1;
                while (questDetailRes.Members.ContainsKey("RequireItem" + requireItemIndex))
                {
                    var requirement = new QuestItemRequirement(questDetailRes.Members["RequireItem" + requireItemIndex], questDetailRes.Members["Quantity" + requireItemIndex]);
                    questDetail.ItemRequirement.Add(requirement);
                    requireItemIndex++;
                }
                _questDetails.Add(questDetail.Index, questDetail);
            }
        }
Esempio n. 2
0
    /// <summary>
    /// UI event for mini quest display onclick (will show quest detail)
    /// </summary>
    public void spawnQuestDetail()      //happens when pressed
    {
        GameObject qd = questDetails;   //GO with the aiming sprite

        qd = Instantiate(qd) as GameObject;

        qd.transform.Find("Description").GetComponent <Text>().text = longDesc;
        qd.transform.Find("Message").GetComponent <Text>().text     = longMSG;

        qd.transform.SetParent(GameObject.Find("CanvasBG").transform, false);
        qd.transform.localRotation = new Quaternion(0, 0, 0, 0);

        qd.SetActive(true);

        QuestDetail qDetail = qd.GetComponent <QuestDetail>();

        qDetail.questLoader = questLoader;
        qDetail.questIndex  = questIndex;

        /*
         * foreach (Button b in transform.parent.GetComponentsInChildren<Button>()) {
         *      b.interactable = false;
         * }
         */
    }
Esempio n. 3
0
    public void AddActiveQuest(Quest newQuest)
    {
        GameObject questDetailInstance = Instantiate(questDetailPrefab);

        questDetailInstance.transform.SetParent(scrollViewContent.transform);
        QuestDetail instance = questDetailInstance.GetComponent <QuestDetail>();

        instance.DisplayQuest(newQuest);
        questDetailInstances.Add(instance);
    }
Esempio n. 4
0
 // make all the quest item associated with this quest toggeable
 private void ToggleQuestItemInteractable(QuestDetail quest)
 {
     GameObject[] objects = GameObject.FindGameObjectsWithTag(PickupItem.DEFAULT_TAG);
     foreach (GameObject gameObj in objects)
     {
         PickupItem item = gameObj.GetComponent <PickupItem>();
         if (item.itemName == quest.itemName)
         {
             item.BecomeInteractible();
         }
     }
 }
Esempio n. 5
0
    /// <summary>
    /// Add a quest to the manager.
    /// </summary>
    /// <param name="questName">
    /// Name of the Quest Detail Scriptable Object.
    /// </param>
    public void AddQuest(string questName)
    {
        QuestDetail detail = Resources.Load <QuestDetail>("Quests/" + questName);
        QuestUI     quest;

        switch (detail.questType)
        {
        case QuestType.TALK:
            quest = Instantiate(talkQuestPrefab, transform).GetComponent <QuestUI>();
            break;

        default:
            quest = Instantiate(progressQuestPrefab, transform).GetComponent <QuestUI>();
            break;
        }
        quest.StartQuest(detail);
        activeQuests.Add(quest);
        DisplayQuests();
        ToggleQuestItemInteractable(detail);
    }
Esempio n. 6
0
 public void StartQuest(QuestDetail _detail)
 {
     detail = _detail;
     descriptionTxt.text = detail.description;
 }
 // start a new quest
 // need to call this first after instantiaing a Quest Prefab
 public new void StartQuest(QuestDetail _detail)
 {
     base.StartQuest(_detail);
     curAmount        = 0;
     progressTxt.text = $"{curAmount}/{detail.amount}";
 }