コード例 #1
0
 void ContResumeTestimony()
 {
     tm.SetInTestimony(true);
     arrows.SetActive(true);
     tm.SetEnabled(true);
     tm.ParseLine();
     testimonyPaused = false;
     cam.MoveToPosition(1);
 }
コード例 #2
0
    void ParseLine()
    {
        if (characterTalking)
        {
            return;
        }

        lineIndex++;
        ScriptLine line = lines[lineIndex];

        if (line.command == "camera")
        {
            int pos = Int32.Parse(line.arguments[0]);
            cam.MoveToPosition(pos);
            ParseLine();
        }
        else if (line.command == "line")
        {
            charName.text = line.arguments[0].Split(' ')[0];
            if (charName.text.Length > 0 && charName.text[0] == '@')
            {
                charName.text = charName.text.Substring(1, charName.text.Length - 1);
            }
            typingRoutine = TypeDialogue(line.arguments[1]);
            StartCoroutine(typingRoutine);
        }
        else if (line.command == "wait")
        {
            float time = float.Parse(line.arguments[0]);
            StartCoroutine(KillTime(time));
        }
        else if (line.command == "show")
        {
            ShowUI();
            ParseLine();
        }
        else if (line.command == "hide")
        {
            HideUI();
            ParseLine();
        }
        else if (line.command == "losehealth")
        {
            float amount = float.Parse(line.arguments[0]);
            sm.LoseHealth(amount);
        }
        else if (line.command == "bgm")
        {
            sm.am.PlayBGM(line.arguments[0]);
            ParseLine();
        }
        else if (line.command == "fadein")
        {
            StartCoroutine(sm.FadeIn());
            ParseLine();
        }
        else if (line.command == "showcr")
        {
            sm.em.evidencebutton.SetActive(true);
            ParseLine();
        }
        else if (line.command == "branch")
        {
            SaveScript();
            if (line.arguments[0] == "generated")
            {
                LoadScript(line.arguments[1], true);
            }
            LoadScript(line.arguments[0]);
        }
        else if (line.command == "unbranch")
        {
            ReturnToScript();
        }
        else if (line.command == "testimony")
        {
            cam.MoveToPosition(1);
            sm.BeginTestimony(line.arguments[0]);
        }
        else if (line.command == "advance")
        {
            sm.Advance();
        }
        else if (line.command == "swapwit")
        {
            sm.SwapWitnesses();
            ParseLine();
        }
        else if (line.command == "end")
        {
            if (sm.testimonyPaused)
            {
                sm.ResumeTestimony();
            }
            else
            {
                sm.am.StopCurrentBGM();
                acceptingInput = false;
                StartCoroutine(sm.FadeOut());
            }
        }
        else if (line.command == "deathend")
        {
            sm.am.StopCurrentBGM();
            acceptingInput = false;
            StartCoroutine(sm.FadeOut());
        }
        else
        {
            lineIndex++;
            ParseLine();
        }
    }