// Use this for initialization private void Start() { IsWriting = false; currentSpeaker = null; currentDiscussion = null; currentDiscussionContentIndex = -1; topicsPanels = new List <GameObject>(); RetrieveTopicsPanels(); }
private void EndOfDiscussion() { topicGUI.SetActive(false); discussionGUI.SetActive(false); nextGUI.SetActive(false); currentSpeaker = null; currentDiscussion = null; currentDiscussionContentIndex = -1; player.ExitInteractionWithNPC(); Cursor.visible = false; }
public void SetCurrentSpeaker(InteractableNPC speaker) { topicGUI.SetActive(false); discussionGUI.SetActive(false); nextGUI.SetActive(false); currentSpeaker = speaker; currentDiscussion = speaker.GetIntroDiscussion(); currentDiscussionContentIndex = 0; mainCamera.transform.position = currentSpeaker.PositionForInteraction.position; mainCamera.transform.LookAt(currentSpeaker.transform.position); speakerName.text = currentSpeaker.Npc.name; BuildDiscussionArea(); }
public void SetCurrentSpeakerTopic(int topicIndex) { NPC_Discussion_Scriptable_Object nextDiscussion = currentDiscussion.relatedDiscussions[topicIndex]; currentDiscussion = nextDiscussion; if (currentDiscussion.isQuestAttached && !currentDiscussion.isFinalQuestDiscussion) { if (currentSpeaker.Npc.hasAlreadyProposeQuest) { NPC_Discussion_Quest_Scriptable_Object asQuest = (NPC_Discussion_Quest_Scriptable_Object)currentDiscussion; currentDiscussion = asQuest.questSeen; } else { NPC_Discussion_Quest_Scriptable_Object asQuest = (NPC_Discussion_Quest_Scriptable_Object)currentDiscussion; currentDiscussion = asQuest.questUnseen; currentSpeaker.Npc.hasAlreadyProposeQuest = true; } } currentDiscussionContentIndex = 0; topicGUI.SetActive(false); discussionGUI.SetActive(false); if (currentDiscussion.content.Count == 0 && currentDiscussion.relatedDiscussions.Count == 0) { if (currentDiscussion.isQuestAttached) { NPC_Quest_Scriptable_Object quest = currentSpeaker.Quest; player.AcceptQuest(quest); } EndOfDiscussion(); } else { BuildDiscussionArea(); } }