Пример #1
0
    // Update is called once per frame
    void Update()
    {
        if (dialogBox.activeInHierarchy)
        {
            if (Input.GetButtonUp("Fire1"))
            {
                if (!justStarted)
                {
                    currentLine++;

                    if (currentLine >= dialogLines.Length)
                    {
                        dialogBox.SetActive(false);
                        npcSprite = null;
                        GameManager.instance.dialogActive = false;

                        if (shouldMarkQuest)
                        {
                            shouldMarkQuest = false;
                            QuestManager.instance.ArchiveQuest(questToMark, questState);
                            questToMark = "";
                            questState  = Quest.questState.Undiscovered;
                        }

                        if (shouldCreateQuest)
                        {
                            shouldCreateQuest = false;
                            QuestManager.instance.AddNewQuest(
                                questName,
                                questObjective,
                                questDescription,
                                questRewardAmount,
                                questRewardName
                                );
                            questName         = "";
                            questObjective    = "";
                            questDescription  = "";
                            questRewardAmount = null;
                            questRewardName   = null;
                        }
                    }
                    else
                    {
                        CheckIfName();
                        RenderDialog();
                    }
                }
                else
                {
                    justStarted = false;
                }
            }
        }
    }
Пример #2
0
    // Update is called once per frame
    void Update()
    {
        if (canActivate && Input.GetButtonDown("Fire1") && !DialogManager.instance.dialogBox.activeInHierarchy)
        {
            bool hasActiveQuest   = CheckForActiveQuest();
            bool hasFinishedQuest = CheckForFinishedQuest();
            bool noActiveQuest    = !hasActiveQuest && !hasFinishedQuest;

            if (isPerson && personSprite)
            {
                DialogManager.instance.npcSprite = personSprite;
            }

            if (noActiveQuest)
            {
                DialogManager.instance.ShowDialog(noQuestLines, isPerson);
            }
            else if (hasActiveQuest)
            {
                DialogManager.instance.ShowDialog(activeQuestLines, isPerson);
            }
            else
            {
                DialogManager.instance.ShowDialog(finishedQuestLines, isPerson);
            }

            if (shouldCompleteQuest & hasActiveQuest)
            {
                // shouldCompleteQuest = false;
                Quest.questState state = Quest.questState.Failed;
                if (successfulCompletion)
                {
                    state = Quest.questState.Completed;
                }
                DialogManager.instance.ShouldCompleteQuestAtEnd(completeQuestName, state);
            }

            if (shouldCreateQuest && noActiveQuest)
            {
                // shouldCreateQuest = false;
                DialogManager.instance.ShouldCreateQuestAtEnd(
                    newQuestName,
                    questObjective,
                    questDescription,
                    questRewardAmount,
                    questRewardName
                    );
            }
        }
    }
Пример #3
0
    public void ArchiveQuest(string questName, Quest.questState state)
    {
        for (int i = 0; i < questsList.Count; i++)
        {
            if (questsList[i].name == questName)
            {
                questsList[i].questStatus = state;

                if (questsList[i].questRewardAmount.Length > 0 && questsList[i].questStatus == Quest.questState.Completed)
                {
                    GiveQuestRewards(questsList[i]);
                }

                archivedQuests.Add(questsList[i]);
                questsList.Remove(questsList[i]);
            }
        }
    }
Пример #4
0
 public void ShouldCompleteQuestAtEnd(string questName, Quest.questState state)
 {
     questToMark     = questName;
     questState      = state;
     shouldMarkQuest = true;
 }