Пример #1
0
 // START:
 void Start()
 {
     sfx           = GetComponent <AudioSource>();
     sfx.clip      = victorySFX;
     questDialogue = QuestNPC_collider.GetComponent <QuestDialogue>();
     HP            = this.GetComponent <EnemyHealth>();
 }
Пример #2
0
    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);
    }
Пример #3
0
 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();
 }
Пример #4
0
 // START:
 void Start()
 {
     sfx           = GetComponent <AudioSource>();
     sfx.clip      = collectSFX;
     questDialogue = QuestNPC_collider.GetComponent <QuestDialogue>();
 }
Пример #5
0
    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--;
        }
    }