public void FocusOnDialog() { if (sequenceId == "rebel") { int count = 0; count += gameManager.peasant1 ? 1 : 0; count += gameManager.peasant2 ? 1 : 0; count += gameManager.peasant3 ? 1 : 0; if (count < 2) { sequenceId = "rebellose"; dialogSequence = gameManager.dialogModel.GetSequenceById(sequenceId); dialogFlow = dialogSequence.GetDialogFlow(); totalOfDialogs = dialogFlow.Count; } } dialogCanvasController.SetActive(true); //playerObject.GetComponent<PlayerBehavior>().AddInteractionDisabler(triggerId); playerController.deactivateCharacter(); currentState = DialogBoxStates.SendText; if (playableDirector != null) { playableDirector.Pause(); } }
// Update is called once per frame void Update() { if (endDialogue) { return; } if (currentState == DialogBoxStates.SendText) { ShowDialogText(); // dialogCanvasController.PlayRandomWhisper(); } else { if (currentState == DialogBoxStates.WaitingUser && Input.GetButtonDown("Use")) // TODO change key { currentDialogIndex++; currentState = DialogBoxStates.SendText; if (currentDialogIndex == totalOfDialogs) { if (selfDestroyAfterInteraction) { EraseInfluencesAndDestroyObject(); } else { currentDialogIndex = 0; UnfocusOnDialog(); } } } } }
IEnumerator ApperingCharacters(int currentDialogIndex) { currentState = DialogBoxStates.Texting; int textLenght = dialogFlow[currentDialogIndex].text.Length; for (int currentCharacter = 0; currentCharacter <= textLenght; currentCharacter++) { dialogCanvasController.setDialog(dialogFlow[currentDialogIndex], currentCharacter); yield return(null); } currentState = DialogBoxStates.WaitingUser; }