Beispiel #1
0
        IEnumerator StartCutscene()
        {
            playerController.SetMovement(FalseTruth.FirstPersonControllerExtended.NO_MOVEMENT); //Deactivates Movement

            pos  = player.position;                                                             //Positions and Rotations before lerping
            rot1 = player.rotation;
            rot2 = playerCamera.rotation;

            for (float i = 0; i < 1; i = i + 0.01f)                     //Lerps to the start position
            {
                player.position       = Vector3.Lerp(pos, cutsceneStartPosition.position, i);
                player.rotation       = Quaternion.Lerp(rot1, cutsceneStartPosition.rotation, i);
                playerCamera.rotation = Quaternion.Lerp(rot2, Quaternion.LookRotation(cutsceneStartPosition.forward, cutsceneStartPosition.up), i);
                yield return(new WaitForSeconds(1f / 60f));
            }
            cutscene.enabled = true;
            cutscene.SetTrigger("Start");       //Starts the actual cutscene

            yield return(new WaitForSeconds(1f));

            StartCoroutine(dialogueManager.StartDialogue(FalseTruth.LocalizationScript.Get("You"), FalseTruth.LocalizationScript.Get("C00Start02"), 3));

            yield return(new WaitForSeconds(4f));

            StartCoroutine(dialogueManager.StartDialogue(FalseTruth.LocalizationScript.Get("You"), FalseTruth.LocalizationScript.Get("Girl") + "?", 1));
            girlAnimator.SetTrigger("Falling");

            yield return(new WaitForSeconds(1f));

            StartCoroutine(dialogueManager.StartDialogue(FalseTruth.LocalizationScript.Get("You"), FalseTruth.LocalizationScript.Get("Girl") + "!", 1));
        }
Beispiel #2
0
        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);
        }
Beispiel #4
0
        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);
        }