Example #1
0
    public void DLine_FromYarnLine_TitleCaseFace()
    {
        line.text = "Nora (Happy): Test.";
        DLine dLine = DLine.FromYarnLine(line);

        Assert.AreEqual("Nora", dLine.name);
        Assert.AreEqual("Happy", dLine.face);
        Assert.AreEqual("Test.", dLine.text);
    }
Example #2
0
    public void DLine_FromYarnLine_WordsWithColonsAndParens()
    {
        line.text = "Nora (Sad): Test Test (Test): More test.";
        DLine dLine = DLine.FromYarnLine(line);

        Assert.AreEqual("Nora", dLine.name);
        Assert.AreEqual("Sad", dLine.face);
        Assert.AreEqual("Test Test (Test): More test.", dLine.text);
    }
Example #3
0
    public void DLine_FromYarnLine_Default()
    {
        line.text = "Henry: Test";
        DLine dLine = DLine.FromYarnLine(line);

        Assert.AreEqual("Henry", dLine.name);
        Assert.AreEqual("Default", dLine.face);
        Assert.AreEqual("Test", dLine.text);
    }
Example #4
0
    public void DLine_FromYarnLine_Pause()
    {
        line.text = "Nora (Happy) <nopause>: Test.";
        DLine dLine = DLine.FromYarnLine(line);

        Assert.AreEqual("Nora", dLine.name);
        Assert.AreEqual("Happy", dLine.face);
        Assert.AreEqual("Test.", dLine.text);
        Assert.AreEqual(false, dLine.pause);
    }
Example #5
0
    public void DLine_FromYarnLine_Jitter()
    {
        line.text = "Nora (Happy) <jitter=1.5>: Test.";
        DLine dLine = DLine.FromYarnLine(line);

        Assert.AreEqual("Nora", dLine.name);
        Assert.AreEqual("Happy", dLine.face);
        Assert.AreEqual("Test.", dLine.text);
        Assert.AreEqual(1.5f, dLine.jitter);
    }
Example #6
0
    public void DLine_FromYarnLine_Speed()
    {
        line.text = "Nora (Happy) <speed=1.5>: Test.";
        DLine dLine = DLine.FromYarnLine(line);

        Assert.AreEqual("Nora", dLine.name);
        Assert.AreEqual("Happy", dLine.face);
        Assert.AreEqual("Test.", dLine.text);
        Assert.AreEqual(1.5f, dLine.speed);
    }
Example #7
0
    public void DLine_FromYarnLine_ClearText()
    {
        line.text = "Nora (Happy) <nocleartext>: Test.";
        DLine dLine = DLine.FromYarnLine(line);

        Assert.AreEqual("Nora", dLine.name);
        Assert.AreEqual("Happy", dLine.face);
        Assert.AreEqual("Test.", dLine.text);
        Assert.AreEqual(false, dLine.clear_text);
    }
Example #8
0
    public void DLine_FromYarnLine_WaitAndClear()
    {
        line.text = "Nora (Happy) <nocleartext; wait=1.5>: Test.";
        DLine dLine = DLine.FromYarnLine(line);

        Assert.AreEqual("Nora", dLine.name);
        Assert.AreEqual("Happy", dLine.face);
        Assert.AreEqual("Test.", dLine.text);
        Assert.AreEqual(false, dLine.clear_text);
        Assert.AreEqual(1.5f, dLine.wait);
    }
Example #9
0
        /// Show a line of dialogue, gradually
        public override IEnumerator RunLine(Yarn.Line line)
        {
            // Convert line text to DLine
            DLine dLine = DLine.FromYarnLine(line);

            if (cinematic_mode)
            {
                dLine.pause = false;
                // Set default wait time if not defined
                if (dLine.wait <= 0)
                {
                    dLine.wait = 1;
                }
            }

            nameText.text        = dLine.name;
            portraitImage.sprite = dLine.GetFace();

            // Show the text
            if (dLine.clear_text)
            {
                lineText.text = "";
            }
            else
            {
                last_text = lineText.text;
            }

            lineText.gameObject.SetActive(true);

            talkButtonPressed = false;

            ShowCanvas();

            if (dLine.speed > 0.0f)
            {
                // Display the line one character at a time
                var stringBuilder = new StringBuilder();

                foreach (char c in dLine.text)
                {
                    // Detect keypress to skip text animation
                    if (talkButtonPressed)
                    {
                        break;
                    }
                    stringBuilder.Append(c);
                    lineText.text = stringBuilder.ToString();
                    yield return(new WaitForSeconds(dLine.speed));
                }
            }
            // Display the line immediately if textSpeed == 0
            if (dLine.clear_text)
            {
                lineText.text = dLine.text;
            }
            else
            {
                lineText.text = last_text + dLine.text;
            }

            if (dLine.pause)
            {
                talkButtonPressed = false;

                // Delay before showing continue prompt
                for (int i = 0; i < 10; i++)
                {
                    if (talkButtonPressed == true)
                    {
                        break;
                    }
                    yield return(new WaitForSeconds(0.1f));
                }

                // Show the 'press any key' prompt when done, if we have one
                if (!talkButtonPressed && continuePrompt != null)
                {
                    continuePrompt.SetActive(true);
                }

                // Wait for any user input
                while (!talkButtonPressed)
                {
                    yield return(null);
                }

                if (continuePrompt != null)
                {
                    continuePrompt.SetActive(false);
                }
            }
            else
            {
                if (dLine.wait > 0)
                {
                    yield return(new WaitForSeconds(dLine.wait));
                }
            }

            // Hide the text and prompt
            lineText.gameObject.SetActive(false);
        }