Example #1
0
    public void talk()
    {
        for (int i = dialogues.Length - 1; i >= 0; i--)
        {
            bool skipFirst = false;
            foreach (Quest q in dialogues[i].questsToAcess)
            {
                Debug.Log("FIRST_DIALOGUE: " + dialogues[i].dialogues[0] + " | " + q.getStatus() + " | " + q.getId());
                Quest playerq = player.lookupQuest(q.getId());
                if (playerq != null)
                {
                    if (playerq.getStatus() != e_QuestStatus.TURNED_IN)
                    {
                        skipFirst = true;
                        continue;
                    }
                }
                if (q.getStatus() == e_QuestStatus.NOT_STARTED)
                {
                    //skipFirst = true;
                    //continue;
                }
                else
                {
                    if (playerq != null)
                    {
                        if (playerq.getStatus() != q.getStatus())
                        {
                            skipFirst = true;
                            continue;
                        }
                    }
                    else
                    {
                        skipFirst = true;
                        continue;
                    }
                }
            }
            if (skipFirst)
            {
                continue;
            }

            currentDialoguePlaying = dialogues[i];
            currentDialoguePlaying.setId(i);
            canTalk   = false;
            isTalking = true;
            Debug.Log("REAL_DIALOGUE: " + dialogues[i].dialogues[0] + " | " + currentDialoguePlaying);
            return;
        }
    }
Example #2
0
    public void dispose()
    {
        this.player.getPlayerMovement().unfreeze();
        if (currentDialoguePlaying != null)
        {
            this.currentDialoguePlaying.dispose();
            currentDialoguePlaying = null;
        }
        dialogueUI.SetActive(false);
        isTalking = false;
        canTalk   = false;

        if (!animator.GetCurrentAnimatorStateInfo(0).IsName("Idle"))
        {
            animator.Play("Idle");
        }
    }