// START: void Start() { sfx = GetComponent <AudioSource>(); sfx.clip = victorySFX; questDialogue = QuestNPC_collider.GetComponent <QuestDialogue>(); HP = this.GetComponent <EnemyHealth>(); }
public override List <DialogueChoice> GetChoices(GameObject player) { PlayerQuests playerQuests = player.GetComponent <PlayerQuests>(); List <DialogueChoice> result = new List <DialogueChoice>(); // quests foreach (ScriptableQuest quest in quests) { // can we accept this yet, or did we accept it already? // (don't show quests for level 50 if we are level 1, etc.) if (playerQuests.CanAccept(quest) || playerQuests.HasActive(quest.name)) { result.Add(new DialogueChoice( quest.name, true, (() => { // construct a new QuestDialogue for this quest and show it // (need to create runtime scriptable objects via // ScriptableObject.CreateInstance) QuestDialogue dialogue = CreateInstance <QuestDialogue>(); dialogue.quest = quest; UINpcDialogue.singleton.Show(dialogue, player); }) )); } } // trade result.Add(new DialogueChoice( tradeText, true, (() => { UIMainPanel.singleton.Show(); UINpcDialogue.singleton.Hide(); }) )); // close result.Add(new DialogueChoice(closeText, true, UINpcDialogue.singleton.Hide)); return(result); }
public void StartDialogue(QuestDialogue dialogue, int QuestIndex, int QuestDig) { QD = QuestDig; QI = QuestIndex; DialoguePan.SetActive(true); sentences.Clear(); sprites.Clear(); names.Clear(); foreach (string sentence in dialogue.sentences) { sentences.Enqueue(sentence); } foreach (Sprite sprite in dialogue.sprites) { sprites.Enqueue(sprite); } foreach (string name in dialogue.name) { names.Enqueue(name); } DisplayNextSentence(); }
// START: void Start() { sfx = GetComponent <AudioSource>(); sfx.clip = collectSFX; questDialogue = QuestNPC_collider.GetComponent <QuestDialogue>(); }
void DisplayDialogue() { QuestDialogue dialogue = ((QuestTrigger_Dialogue)node.trigger).dialogue; EditorGUILayout.Space(); dialogueActive = EditorGUILayout.Foldout(dialogueActive, "Dialogue"); if (dialogueActive) { EditorGUI.indentLevel++; for (int i = 0; i < dialogue.sentences.Count; i++) { if (dialogue.sentences[i].text == "") { dialogue.sentences.RemoveAt(i--); } else { EditorGUILayout.LabelField("Sentence"); dialogue.sentences[i].text = EditorGUILayout.TextArea(dialogue.sentences[i].text); dialogue.sentences[i].line = EditorGUILayout.IntField(dialogue.sentences[i].line); if (active.Count < i + 1) { active.Add(false); } active[i] = EditorGUILayout.Foldout(active[i], "Responses"); if (active[i]) { EditorGUI.indentLevel++; for (int y = 0; y < dialogue.sentences[i].responses.Count; y++) { if (dialogue.sentences[i].responses[y].text == "") { dialogue.sentences[i].responses.RemoveAt(y--); } else { dialogue.sentences[i].responses[y].text = EditorGUILayout.TextField(dialogue.sentences[i].responses[y].text); dialogue.sentences[i].responses[y].line = EditorGUILayout.IntField(dialogue.sentences[i].responses[y].line); EditorGUILayout.Space(); } } string newResponse = EditorGUILayout.TextField(""); if (newResponse != "") { dialogue.sentences[i].responses.Add(new Response(newResponse, 0)); } EditorGUI.indentLevel--; } EditorGUILayout.LabelField("", GUI.skin.horizontalSlider); } } string newSentence = EditorGUILayout.TextArea(""); if (newSentence != "") { dialogue.sentences.Add(new Sentence(newSentence, 0)); } if (active.Count > dialogue.sentences.Count) { active.RemoveRange(dialogue.sentences.Count - 1, active.Count - 1); } EditorGUI.indentLevel--; } }