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; }
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()); } } } }