IEnumerator CutsceneNormal() { FalseTruth.Dialogue dialogue0 = new FalseTruth.Dialogue(); dialogue0.Add(FalseTruth.LocalizationScript.Get("Girl"), FalseTruth.LocalizationScript.Get("C01EndNormalGirl00")); dialogueManager.StartDialogue(dialogue0); while (!dialogueManager.isFinished()) { yield return(null); } doorAnimator.SetBool("Open", true); fadeWhiteAnimator.SetTrigger("White"); while (!fadeWhiteAnimator.GetCurrentAnimatorStateInfo(0).IsName("isWhite")) { yield return(null); } player.position = playerEndPosition.position; player.rotation = playerEndPosition.rotation; girl.position = girlEndPosition.position; girl.rotation = girlEndPosition.rotation; girlAnimator.SetBool("Walk", true); playerAnimator.enabled = true; playerAnimator.SetTrigger("Walk"); FalseTruth.Dialogue dialogue1 = new FalseTruth.Dialogue(); for (int i = 0; i <= 2; i++) { dialogue1.Add(FalseTruth.LocalizationScript.Get("Girl"), FalseTruth.LocalizationScript.Get("C01EndNormalGirl0" + (i + 1))); dialogue1.Add(FalseTruth.LocalizationScript.Get("C01EndNormal0" + i)); } for (int i = 4; i <= 7; i++) { dialogue1.Add(FalseTruth.LocalizationScript.Get("Girl"), FalseTruth.LocalizationScript.Get("C01EndNormalGirl0" + i)); } dialogue1.Add(FalseTruth.LocalizationScript.Get("C01EndNormal03")); dialogue1.Add(FalseTruth.LocalizationScript.Get("Girl"), FalseTruth.LocalizationScript.Get("C01EndNormalGirl08")); dialogue1.Add(FalseTruth.LocalizationScript.Get("C01EndNormal04"), true); yield return(null); fadeWhiteAnimator.SetTrigger("White"); yield return(new WaitForSeconds(1f)); dialogueManager.StartDialogue(dialogue1); while (!dialogueManager.isFinished()) { yield return(null); } GameObject.FindObjectOfType <FalseTruth.GameController>().EndScene("99 - Credits"); //TODO: scene }
IEnumerator Cutscene() { yield return(null); CharacterController charController = FindObjectOfType <CharacterController>(); FalseTruth.FirstPersonControllerExtended fpsController = FindObjectOfType <FalseTruth.FirstPersonControllerExtended>(); FalseTruth.DialogueManager dialogueManager = FindObjectOfType <FalseTruth.DialogueManager>(); fpsController.SetMovement(FalseTruth.FirstPersonControllerExtended.NO_MOVEMENT); charController.enabled = true; yield return(new WaitForSeconds(0.5f)); float timer = Time.time; while (Time.time - timer < 1.6f) { charController.Move(charController.gameObject.transform.forward * Time.deltaTime * 2.5f); yield return(null); } charController.enabled = false; FalseTruth.Dialogue dialogue = new FalseTruth.Dialogue(); dialogue.Add(FalseTruth.LocalizationScript.Get("C00Start00"), true); dialogue.Add(FalseTruth.LocalizationScript.Get("C00Start01"), true); dialogueManager.StartDialogue(dialogue); while (!dialogueManager.isFinished()) { yield return(null); } fpsController.SetMovement(FalseTruth.FirstPersonControllerExtended.FULL_MOVEMENT); }
public override IEnumerator TheCutscene() { fpsController.SetMovement(FalseTruth.FirstPersonControllerExtended.NO_MOVEMENT); FalseTruth.Dialogue dialogue = new FalseTruth.Dialogue(); if (alreadyUsed) { dialogue = new FalseTruth.Dialogue(FalseTruth.LocalizationScript.Get("C01OccultDoorYouRepeat")); dialogueManager.StartDialogue(dialogue, true); } else { alreadyUsed = true; GetComponent <Animator>().SetTrigger("Open"); //Play Animation dialogue = new FalseTruth.Dialogue(); dialogue.Add(FalseTruth.LocalizationScript.Get("C01OccultDoorYou00")); dialogue.Add(FalseTruth.LocalizationScript.Get("OccultGirl0"), FalseTruth.LocalizationScript.Get("C01OccultDoorGirl00")); FalseTruth.Dialogue dialogueInput = new FalseTruth.Dialogue("@Out1"); FalseTruth.Dialogue dialogueWhatPassword = new FalseTruth.Dialogue(FalseTruth.LocalizationScript.Get("C01OccultDoorYou03") + "@Out0"); for (int i = 3; i < 6; i++) { dialogueWhatPassword.Add(FalseTruth.LocalizationScript.Get("OccultGirl0"), FalseTruth.LocalizationScript.Get("C01OccultDoorGirl0" + (i - 1))); dialogueWhatPassword.Add(FalseTruth.LocalizationScript.Get("C01OccultDoorYou0" + (i + 1))); } dialogueWhatPassword.Add("", "..."); dialogueWhatPassword.Add(FalseTruth.LocalizationScript.Get("C01OccultDoorYou08")); dialogueWhatPassword.Add(FalseTruth.LocalizationScript.Get("OccultGirl0"), FalseTruth.LocalizationScript.Get("C01OccultDoorGirl06")); dialogueWhatPassword.Add(FalseTruth.LocalizationScript.Get("C01OccultDoorYou09")); dialogueWhatPassword.Add(FalseTruth.LocalizationScript.Get("OccultGirl0"), FalseTruth.LocalizationScript.Get("C01OccultDoorGirl07")); dialogueWhatPassword.Add(FalseTruth.LocalizationScript.Get("C01OccultDoorYou10")); dialogueWhatPassword.Add(FalseTruth.LocalizationScript.Get("C01OccultDoorYou11")); dialogueWhatPassword.lastText.italic = true; dialogue.AddChoices(new List <FalseTruth.Dialogue> { dialogueInput, dialogueWhatPassword }, new List <string> { FalseTruth.LocalizationScript.Get("C01OccultDoorYou01") + "...", FalseTruth.LocalizationScript.Get("C01OccultDoorYou03") }); dialogueManager.StartDialogue(dialogue, true); bool firstLoop = true; while (dialogueManager.dialogueOutput != 0) { while (dialogueManager.dialogueOutput == -1) { yield return(null); } if (dialogueManager.dialogueOutput == 0) { break; } inputUI.SetActive(true); input.ActivateInputField(); while (!gotInput) { yield return(null); } inputUI.SetActive(false); gotInput = false; if (input.text == RIGHT_PASSWORD) { dialogueManager.dialogueOutput = 0; StartCoroutine(SuperSecretSecret1()); } else { if (firstLoop) { firstLoop = false; FalseTruth.Dialogue dialogueWrong = new FalseTruth.Dialogue(FalseTruth.LocalizationScript.Get("C01OccultDoorYou01") + " " + input.text + "?"); dialogueWrong.Add(FalseTruth.LocalizationScript.Get("OccultGirl0"), FalseTruth.LocalizationScript.Get("C01OccultDoorGirl01")); dialogueWrong.AddChoices(new List <FalseTruth.Dialogue> { dialogueInput, dialogueWhatPassword }, new List <string> { FalseTruth.LocalizationScript.Get("C01OccultDoorYou02") + "...", FalseTruth.LocalizationScript.Get("C01OccultDoorYou03") }); dialogueManager.StartDialogue(dialogueWrong, true); } else { FalseTruth.Dialogue dialogueWrong = new FalseTruth.Dialogue(FalseTruth.LocalizationScript.Get("C01OccultDoorYou02") + " " + input.text + "?"); dialogueWrong.Add(FalseTruth.LocalizationScript.Get("OccultGirl0"), FalseTruth.LocalizationScript.Get("C01OccultDoorGirl01")); dialogueWrong.AddChoices(new List <FalseTruth.Dialogue> { dialogueInput, dialogueWhatPassword }, new List <string> { FalseTruth.LocalizationScript.Get("C01OccultDoorYou02") + "...", FalseTruth.LocalizationScript.Get("C01OccultDoorYou03") }); dialogueManager.StartDialogue(dialogueWrong, true); } } } } while (!dialogueManager.isFinished()) { yield return(null); } fpsController.SetMovement(FalseTruth.FirstPersonControllerExtended.FULL_MOVEMENT); FalseTruth.Checkpoints.SetCheckpoint(-1f); }
IEnumerator Cutscene() { yield return(null); //Waits 1 Frame, so everything is initialized FalseTruth.Dialogue dialogue0 = new FalseTruth.Dialogue(); dialogue0.Add(FalseTruth.LocalizationScript.Get("C01Start00"), true); dialogue0.Add("@Out0" + FalseTruth.LocalizationScript.Get("C01Start01"), true); dialogue0.Add(FalseTruth.LocalizationScript.Get("C01Start02"), true); dialogue0.Add(FalseTruth.LocalizationScript.Get("C01Start03"), true); dialogue0.Add("@Out1" + FalseTruth.LocalizationScript.Get("C01Start04"), true); fpsController.SetMovement(FalseTruth.FirstPersonControllerExtended.NO_MOVEMENT); playerAnimator.SetTrigger("Start"); yield return(new WaitForSeconds(2f)); dialogueManager = FindObjectOfType <FalseTruth.DialogueManager>(); dialogueManager.StartDialogue(dialogue0, true); while (dialogueManager.dialogueOutput != 0) { yield return(null); } playerAnimator.SetTrigger("Paper"); paperAnimator.SetBool("Hold", true); yield return(new WaitForSeconds(1f)); paperAnimator.gameObject.transform.LookAt(playerAnimator.gameObject.transform); while (dialogueManager.dialogueOutput != 1) { yield return(null); } playerAnimator.SetTrigger("Paper"); paperAnimator.SetBool("Hold", false); float timer = Time.time; while (!dialogueManager.isFinished() || Time.time - timer < 0.75f) { yield return(null); } playerAnimator.enabled = false; fpsController.ClampY(160, 20); fpsController.SetMovement(FalseTruth.FirstPersonControllerExtended.FULL_MOVEMENT); Transform player = playerAnimator.gameObject.transform; timer = Time.time; float playerRotY; while (Time.time - timer < 10f) { playerRotY = player.eulerAngles.y; if (playerRotY > 5 && playerRotY < 90) { fpsController.SetMovement(FalseTruth.FirstPersonControllerExtended.NO_MOVEMENT); fpsController.ClampY(false); fpsController.RotateToFast(new Vector3(0f, 45f, 0f), .5f); StartCoroutine(dialogueManager.StartDialogue(FalseTruth.LocalizationScript.Get("You"), FalseTruth.LocalizationScript.Get("C01Start09"), 1.5f)); yield return(new WaitForSeconds(0.2f)); ghost.SetActive(false); yield return(new WaitForSeconds(1.0f)); fpsController.SetMovement(FalseTruth.FirstPersonControllerExtended.FULL_MOVEMENT); break; } yield return(null); } fpsController.SetMovement(FalseTruth.FirstPersonControllerExtended.NO_MOVEMENT); if (player.localEulerAngles.y > 90) { fpsController.RotateTo(new Vector3(24.681f, 270f, 0f), .02f); } else { fpsController.RotateTo(new Vector3(24.681f, -90f, 0f), .02f); } fpsController.ClampY(false); ghost.SetActive(false); while (fpsController.isInScriptedMovement) { yield return(null); } playerAnimator.enabled = true; playerAnimator.Play("C01StartPlayerIdle00", 0); if (gong != null) { audioSource.PlayOneShot(gong, .8f); } yield return(new WaitForSeconds(2f)); //TODO: GroupOfPeopleAnimator.SetTrigger("GoAway"); //TODO: Start babble (murmeln) sound effect Transform girl = girlAnimator.gameObject.transform; girlAnimator.SetTrigger("StandUp"); girlChairAnimator.SetTrigger("Move"); Vector3 oldPosition = girl.position; for (float i = 3.02f; i <= 3.17; i += .005f) { girl.position = new Vector3(oldPosition.x, i, oldPosition.z); yield return(new WaitForSeconds(1f / 60f)); } girlAnimator.SetBool("Walk", true); while (!girlAnimator.GetCurrentAnimatorStateInfo(0).IsName("Walking")) { yield return(null); } StartCoroutine(FalseTruth.GameController.RotateTo(girl, Quaternion.Euler(new Vector3(0f, 0f, 0f)), 10)); yield return(FalseTruth.GameController.GoTo(girl, new Vector3(-7.67f, 3.17f, -4.55f), 40)); playerAnimator.SetTrigger("Start"); StartCoroutine(FalseTruth.GameController.RotateTo(girl, Quaternion.Euler(new Vector3(0f, 35f, 0f)), 10)); yield return(FalseTruth.GameController.GoTo(girl, new Vector3(-7.333f, 3.17f, -4.07f), 40)); girlAnimator.SetBool("Walk", false); StartCoroutine(FalseTruth.GameController.RotateTo(girl, Quaternion.Euler(new Vector3(0f, 80f, 0f)), 10)); FalseTruth.Dialogue dialogue1 = new FalseTruth.Dialogue(); dialogue1.Add(FalseTruth.LocalizationScript.Get("Girl"), "@Out2" + FalseTruth.LocalizationScript.Get("C01StartGirl00")); dialogue1.Add(FalseTruth.LocalizationScript.Get("C01Start10")); dialogue1.Add(FalseTruth.LocalizationScript.Get("Girl"), FalseTruth.LocalizationScript.Get("C01StartGirl01")); dialogue1.Add(FalseTruth.LocalizationScript.Get("C01Start11")); dialogue1.Add(FalseTruth.LocalizationScript.Get("Girl"), FalseTruth.LocalizationScript.Get("C01StartGirl02") + "@Out3"); dialogue1.Add(FalseTruth.LocalizationScript.Get("Girl"), FalseTruth.LocalizationScript.Get("C01StartGirl03")); dialogue1.Add(FalseTruth.LocalizationScript.Get("C01Start12")); dialogue1.Add(FalseTruth.LocalizationScript.Get("Girl"), FalseTruth.LocalizationScript.Get("C01StartGirl04")); dialogue1.Add(FalseTruth.LocalizationScript.Get("C01Start13") + "@Out4"); dialogue1.Add(FalseTruth.LocalizationScript.Get("C01Start14"), true); dialogueManager.StartDialogue(dialogue1, true); while (dialogueManager.dialogueOutput != 2) { yield return(null); } girlAnimator.SetTrigger("faceAngry"); while (dialogueManager.dialogueOutput != 3) { yield return(null); } girlAnimator.SetTrigger("faceHappy"); while (dialogueManager.dialogueOutput != 4) { yield return(null); } girlAnimator.SetTrigger("faceDefault"); playerAnimator.SetTrigger("Start"); girlAnimator.SetBool("Walk", true); StartCoroutine(FalseTruth.GameController.RotateTo(girl, Quaternion.Euler(new Vector3(0f, 160f, 0f)), 10)); yield return(FalseTruth.GameController.GoTo(girl, new Vector3(-7.2f, 3.17f, -4.55f), 20)); StartCoroutine(FalseTruth.GameController.RotateTo(girl, Quaternion.Euler(new Vector3(0f, 90f, 0f)), 10)); yield return(FalseTruth.GameController.GoTo(girl, new Vector3(-5.2f, 3.17f, -4.55f), 50)); while (!dialogueManager.isFinished()) { yield return(null); } girl.gameObject.SetActive(false); while (!playerAnimator.GetCurrentAnimatorStateInfo(0).IsName("C01StartPlayerIdle00")) { yield return(null); } playerAnimator.enabled = false; fpsController.SetMovement(FalseTruth.FirstPersonControllerExtended.FULL_MOVEMENT); deskNChair.GetComponent <FalseTruth.Useable>().Use(); FalseTruth.Checkpoints.SetCheckpoint(0f); }