Beispiel #1
0
    void questUIPrompt(NPCManager.QuestInfo info)
    {
        info.completed = false;
        NPCManager.QuestInfo q = new NPCManager.QuestInfo();

        PlayerMovement.canMove = false;
        questUI.SetActive(true);

        Title  = GameObject.FindGameObjectWithTag("QuestTitle").GetComponent <TextMeshProUGUI>();
        Detail = GameObject.FindGameObjectWithTag("QuestDetail").GetComponent <TextMeshProUGUI>();
        Reward = GameObject.FindGameObjectWithTag("QuestReward").GetComponent <TextMeshProUGUI>();

        q           = info;
        Title.text  = q.name;
        Detail.text = q.detail;
        Reward.text = "Reward " + q.reward + " gold";

        if (Accepted)
        {
            q.accepted = true;
            acceptedQuestLists.Add(q);
            Accepted     = false;
            currentQuest = null;
            questUI.SetActive(false);
            PlayerMovement.canMove = true;
        }
    }
Beispiel #2
0
    void Update()
    {
        if (currentQuest != null)
        {
            questUIPrompt(currentQuest);
        }

        if (currentTrader != null)
        {
            tradeUIPrompt(currentTrader);
        }

        if (interactable && Input.GetKeyDown(KeyCode.Mouse0) && npcmanager.currentNpc != null)
        {
            resetIndicator();

            if (npcmanager.returnNPCType(npcmanager.currentNpc.NPC, 0))
            {
                currentQuest = (NPCManager.QuestInfo)npcmanager.returnNPCData(npcmanager.currentNpc.NPC, 0);
                questUIPrompt(currentQuest);
            }

            else if (npcmanager.returnNPCType(npcmanager.currentNpc.NPC, 1))
            {
                questStatusCheck((NPCManager.QuestInfo)npcmanager.returnNPCData(npcmanager.currentNpc.NPC, 1));
            }

            else if (npcmanager.returnNPCType(npcmanager.currentNpc.NPC, 2))
            {
                currentTrader = (NPCManager.Trader)npcmanager.returnNPCData(npcmanager.currentNpc.NPC, 2);
                traderInfo    = currentTrader;
                tradeUIPrompt(currentTrader);
            }

            //local data record
            if (!recorded)
            {
                if (npcmanager.currentNpc.npcType == "Human")
                {
                    GetComponent <gsheet_data>().sendData(3, 1);
                }
                else if (npcmanager.currentNpc.npcType == "Animal")
                {
                    GetComponent <gsheet_data>().sendData(4, 1);
                }

                //local data record
                DataRecord.AddEvents(9, npcmanager.currentNpc.NPC.name);
                recorded = true;
            }
        }

        if (npcmanager.currentNpc == null)
        {
            recorded = false;
        }

        showQuestIndicator();
    }
Beispiel #3
0
    void questStatusCheck(NPCManager.QuestInfo q)
    {
        int count = 0;

        if (q != null)
        {
            foreach (NPCManager.NPCItem i in q.requirement)
            {
                if (i.collected >= i.amount)
                {
                    count++;
                }
            }
            if (count == q.requirementCount)
            {
                resetIndicator();
                QuestLog log = new QuestLog();
                q.completed     = true;
                log.questID     = q.id;
                log.questName   = q.name;
                log.questDetail = q.detail;
                log.reward      = q.reward;
                log.completed   = q.completed;

                StartCoroutine(q.DelayReset(2f));

                completedQuestLists.Add(log);
                acceptedQuestLists.Remove(q);

                questUICompletion.SetActive(true);
                //questUICompletion.GetComponentInChildren<Text>().text = "Quest Completed ! \n" + "Rewarded " + log.reward + " Gold";

                //local data record
                DataRecord.AddEvents(10, q.name + " Quest");

                StartCoroutine(closeUI(2f));
            }
        }
    }
Beispiel #4
0
    public void decline()
    {
        if (currentTrader != null)
        {
            //local data record
            DataRecord.AddEvents(8, "Trader " + currentTrader.name + "'s Trade");
            currentTrader.accepted = false;
        }

        //local data record
        if (currentQuest != null)
        {
            DataRecord.AddEvents(8, currentQuest.name + " Quest");
        }
        Accepted = false;
        questUI.SetActive(false);
        tradeUI.SetActive(false);
        currentQuest           = null;
        currentTrader          = null;
        traderInfo             = null;
        PlayerMovement.canMove = true;
    }