コード例 #1
0
ファイル: TwineTest.cs プロジェクト: bigstupidx/TheCompass
    void Start()
    {
        TDialogue = TwineReader.Parse(DialogueFile);
        List <PassageNode> AlternateStarts = TDialogue.GetPassagesTagged(AlternateStartTag);

        //BranchData.Singleton.EnemiesKilled = 5; //Testing the alternate beginning.
        CurrentPassage = AlternateStarts.Count > 0 && BranchData.Singleton.EnemiesKilled >= EnemiesKilledThreshhold ?
                         AlternateStarts[0] : TDialogue.StartPassage;
        TDialogue.SetCurrentPassage(CurrentPassage);
        PassageText         = CurrentPassage.GetContent();
        _currentlyTyping    = true;
        _activatedCoRoutine = false;
    }
コード例 #2
0
ファイル: TwineTest.cs プロジェクト: bigstupidx/TheCompass
 public void ChoiceSelect(string choiceContent)
 {
     if (Choices.Count > 0)
     {
         PassageNode decision = CurrentPassage.GetDecision(choiceContent);
         TDialogue.SetCurrentPassage(decision);
         if (decision != null)
         {
             CurrentPassage = decision;
             foreach (Button b in Choices)
             {
                 Destroy(b.gameObject);
             }
             Choices.Clear();
             PassageTextDisplay.text = "";
             PassageText             = CurrentPassage.GetContent();
             _currentlyTyping        = true;
         }
         else
         {
             Debug.Log("ChoiceSelect failed!");
         }
     }
     else
     {
         List <PassageNode> AlternateEnds = TDialogue.GetPassagesTagged(AlternateEndTag);
         Debug.Log("AlternateEnds: " + AlternateEnds.Count);
         Debug.Log("Visited: " + BranchData.Singleton.ColorVisited);
         if (AlternateEnds.Count > 0 && BranchData.Singleton.ColorVisited && !AlternateEndVisited)
         {
             Destroy(ContinueButton.gameObject);
             PassageTextDisplay.text = "...";
             _currentlyTyping        = false;
             CurrentPassage          = AlternateEnds[0];
             Invoke("AlternateEndDelay", AlternateEndDelayTime);
         }
         else
         {
             List <string> tags = CurrentPassage.GetTags();
             if (tags.Contains(LoadTag))
             {
                 tags.Remove(LoadTag);
                 if (tags.Count == 1)
                 {
                     NextScene = tags[0];
                 }
             }
             if (tags.Contains(GameOverTag))
             {
                 //TODO: CALL GAMEOVER FUNCTION
                 if (GAMEOVERTHING != null)
                 {
                     GAMEOVERTHING.SetActive(true);
                     Time.timeScale = 0f;
                 }
             }
             else
             {
                 StartCoroutine(StartEndingDialogueTransition());
             }
         }
     }
 }