void Start() { rb = GameObject.Find("Player").GetComponent <Rigidbody>(); if (DialogueManager == null) { DialogueManager = GameObject.FindGameObjectWithTag("HUD").GetComponent <HandleDialogue>(); } // Cursor.lockState = CursorLockMode.Locked; oldwalkspeed = speed; }
private void HandleDialog() { if (m_StartedTalk) { if (DialogueHandler == null) { DialogueHandler = GameObject.FindGameObjectWithTag("HUD").GetComponent <HandleDialogue>(); } if (!m_SayingDialog) { bool QuestCheck = false; QuestNotReady = false; bool QuestCompleting = false; bool QuestCompleted = false; bool QuestStarted = false; if (m_QuestID > 0 && currentquest != null) { // Quest Unlocks met? if (currentquest.m_RequiresQuestUnlock) { int[] requiredquests = currentquest.m_RequiredQuestID; bool allcompleted = true; foreach (int questid in requiredquests) { bool check = QuestList.QuestListObject.CheckCompletedQuest(questid); if (!check) { allcompleted = false; break; } } if (!allcompleted) { QuestNotReady = true; QuestCheck = true; } } // Quest completing text? if (currentquest.m_QuestRequirementsMet) { QuestCompleting = true; QuestCheck = true; } // Quest Completed? if (currentquest.m_QuestCompleted && QuestCompleting == false) { QuestCompleted = true; QuestCheck = true; } // Quest already started? if (currentquest.m_QuestStarted && QuestCompleting == false) { QuestStarted = true; QuestCheck = true; } } if (QuestNotReady) { PrepareDialogue(m_QuestDeny); QuestText = true; } if (QuestStarted) { PrepareDialogue(m_QuestGiven); QuestText = true; } if (QuestCompleted) { PrepareDialogue(m_QuestAfterword); QuestText = true; } if (QuestCompleting) { QuestText = true; currentquest.m_QuestStarted = false; currentquest.m_QuestRequirementsMet = false; currentquest.m_QuestCompleted = true; m_TurningIn = true; PrepareDialogue(m_QuestCompletion); } if (!QuestCheck) { if (m_Dialogue != null) { m_DialogueLines = m_Dialogue.Length; if (m_DialogueLines > 0 && m_Dialogue[0].Length > 1) { PrepareDialogue(m_Dialogue[m_CurrentLine]); } else { Debug.LogWarning("[NPC] " + m_npcName + " does not have any dialogue lines!!"); m_StartedTalk = false; ReleasePlayer = true; m_Interactable = false; } } else { Debug.LogError("[NPC] " + m_npcName + "'s m_Dialogue is null!!"); m_StartedTalk = false; m_Interactable = false; ReleasePlayer = true; } } } if (m_WaitForInput && m_GotConfirm && m_DialogueFinished == false) { if (DialogueFxs.Length > 0 && AudioSource && !AudioSource.isPlaying) { AudioSource.PlayOneShot(DialogueFxs[2], AudioVolume); } m_LineFinished = false; m_WaitForInput = false; m_GotConfirm = false; m_CurrentCharacter = 0; DialogueHandler.SetWaitIcon(false); if (m_DialogueLines > m_CurrentLine) { m_CurrentLine++; StartCoroutine(DisplayDialog(m_Dialogue[m_CurrentLine])); } } if (m_DialogueFinished && m_GotConfirm) { if (DialogueFxs.Length > 0 && AudioSource && !AudioSource.isPlaying) { AudioSource.PlayOneShot(DialogueFxs[1], AudioVolume); } ResetDialogue(); if (!QuestNotReady) { if (!m_QuestActivated) { ActivateQuest(m_QuestID); bool check = QuestList.QuestListObject.CheckInventory(currentquest); // TODO, CHECK INVENTORY ON QUEST ITEMS if (check) { bool complete = QuestList.QuestListObject.RegisterItemIDWithQuest(m_QuestID); if (!complete) { Debug.Log("[QUEST] ERROR: Could not finish quest!! CHECK QUEST REQS"); } } QuestList.QuestListObject.SetQuestLogActive(m_QuestID); } } if (currentquest != null) { if (m_TurningIn) { m_TurningIn = false; QuestList.QuestListObject.FinishQuest(m_QuestID); Debug.Log("[QUEST] Finished Quest: " + currentquest.m_QuestTitle); } } } } }