// 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; } } } }
// 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 ); } } }
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]); } } }
public void ShouldCompleteQuestAtEnd(string questName, Quest.questState state) { questToMark = questName; questState = state; shouldMarkQuest = true; }