/// <summary> /// Sets up the currently queued node to be acted on /// </summary> private void ProcessNewNode() { if (toDisplay.Count > 0) { DialogueNode next = toDisplay[0]; if (next is DialogueLine) { textAnimator.Enqueue(next as DialogueLine); animatingText = true; } } }
/// <summary> /// Sets up the currently queued node to be acted on /// </summary> private void ProcessNewNode() { if (toDisplay.Count > 0 && !paused) { DialogueNode next = toDisplay[0]; if (next is DialogueLine) { textAnimator.Enqueue(next as DialogueLine); animatingText = true; } else if (next is DialogueSpriteSwitch) { DialogueSpriteSwitch trueNext = next as DialogueSpriteSwitch; trueNext.target.sprite = GameStorage.sprites[trueNext.newTexture]; ToNextNode(); } else if (next is DialogueWaitForButton) { waitingForKey = (next as DialogueWaitForButton).key; } else if (next is DialogueShowObject) { (next as DialogueShowObject).target.SetActive(true); ToNextNode(); } else if (next is DialogueHideObject) { (next as DialogueHideObject).target.SetActive(false); ToNextNode(); } else if (next is DialogueMoveObject) { DialogueMoveObject trueNext = next as DialogueMoveObject; trueNext.target.transform.position = trueNext.position; ToNextNode(); } else if (next is DialoguePause) { StartCoroutine(PauseDialogue((next as DialoguePause).seconds)); } } }
/// <summary> /// Sets up the currently queued node to be acted on /// </summary> private void ProcessNewNode() { if (toDisplay.Count > 0 && !paused) { DialogueNode next = toDisplay[0]; switch (next) { case DialogueLine line: textAnimator.Enqueue(line); animatingText = true; break; case DialogueConditionalBranch condBranch: ToNextNode(); break; //Also handles DialogueLockedChoiceBranch case DialogueChoiceBranch choiceBranch: List <string> options = choiceBranch.GetOptions(); foreach (string option in options) { Button optionButton = Instantiate(branchButtonPrefab, new Vector3(), Quaternion.Euler(Vector3.zero), branchButtonContainer.transform); string tempString = string.Copy(option); optionButton.GetComponentInChildren <Text>().text = tempString; optionButton.name = tempString; optionButton.onClick.AddListener(delegate { SelectBranch(tempString); }); Cursor.lockState = CursorLockMode.None; Cursor.visible = true; } break; case DialoguePause pause: StartCoroutine(PauseDialogue(pause.seconds)); break; case DialogueVisibleOther objVis: objVis.target.SetActive(objVis.newVisibility); ToNextNode(); break; case DialogueVisibleSelf objVis: gameObject.SetActive(objVis.newVisibility); ToNextNode(); break; case DialogueSpriteSwitch spriteSwitch: //spriteSwitch.target.sprite = GameStorage.sprites[spriteSwitch.newTexture]; ToNextNode(); break; case DialogueAcceptQuest giveQuest: QuestManager.Instance.AcceptQuest(giveQuest.questID); ToNextNode(); break; case DialogueSubmitQuest submitQuest: QuestManager.Instance.SubmitQuest(submitQuest.questID); ToNextNode(); break; case DialogueQuestReward questReward: ToNextNode(); break; case DialogueTriggerBattle battleTrigger: ToNextNode(); break; case DialogueCanPlayerMove playerMove: GameStorage.mapPlayer.CanMove = playerMove.canMove; ToNextNode(); break; } } }