void Update()
    {
        if (!finish)
        {
            StartLevel();
        }

        if (doLevel)
        {
            if (player.transform.position.x >= hoodedEnd.transform.position.x - 2f)
            {
                doLevel = false;
                StartCoroutine(FadeOut(theme));
                pickUps.SetActive(false);
                player.SetInStory(true);
                enemies.SetActive(false);
                metroSpawners.SetActive(false);
                dialogue.SetActive(true);
                dialogueText.SelectTextFile("Level1End");
            }
        }

        if (endLevel)
        {
            hoodedEnd.SetDissapears();
            player.SetMoveRight(true);
            endLevel = false;
        }
    }
    private void StartLevel()
    {
        if (canStart)
        {
            if (metroArrives)
            {
                if (!terraTheme.isPlaying)
                {
                    terraTheme.Play();
                }
                float distCovered = (Time.time - startTime) * 0.01f;
                float fracJourney = distCovered / journeyLength;
                metro.transform.position  = Vector3.Lerp(metro.transform.position, new Vector3(metroTarget, metro.transform.position.y, metro.transform.position.z), fracJourney);
                player.transform.position = Vector3.Lerp(player.transform.position, new Vector3(metroTarget, player.transform.position.y, player.transform.position.z), fracJourney);
                if (player.transform.position.x <= mainCamera.transform.position.x)
                {
                    mainCamera.GetComponent <FollowCam> ().SetTarget();
                }
                if (metro.transform.position.x <= -60f)
                {
                    metroArrives = false;
                    scottArrives = true;
                    metroDeparts = true;
                }
            }

            if (metroDeparts)
            {
                metro.transform.position -= new Vector3(0.1f, 0.0f, 0.0f);
                if (metro.transform.position.x <= -70f)
                {
                    scottGoesUp  = true;
                    metroDeparts = false;
                    Destroy(metro);
                }
            }

            if (scottArrives)
            {
                healthbar.SetActive(true);
                levelText.SetActive(true);
                player.GetComponent <Player> ().enabled = true;
                player.transform.position += new Vector3(0f, 0f, 10f);
                player.SetInStory(true);
                scottArrives = false;
            }

            if (scottGoesUp)
            {
                player.SetMoveUp(true);
                scottGoesUp   = false;
                scottStopMove = true;
            }

            if (scottStopMove)
            {
                if (player.transform.position.y >= -3.5f)
                {
                    player.SetMoveUp(false);
                    scottStopMove = false;
                    scottCanWalk  = true;
                }
            }

            if (scottCanWalk)
            {
                player.SetCanWalk(true);
                if (player.transform.position.x >= -40f)
                {
                    scottCanWalk = false;
                    player.SetCanWalk(false);
                    hoodedStartTalking = true;
                }
            }

            if (hoodedStartTalking)
            {
                if (terraTheme.isPlaying)
                {
                    StartCoroutine(FadeOut(terraTheme));
                }
                hoodedStartTalking = false;
                dialogue.SetActive(true);
                dialogueText.SelectTextFile("FirstScene");
            }

            if (hoodedFinishedTalking)
            {
                StartCoroutine(FadeIn(theme));
                hoodedFinishedTalking = false;
                hoodedDissapeared     = true;
                hooded.SetDissapears();
            }

            if (hoodedDissapeared)
            {
                healthbar.SetActive(true);
                pickUps.SetActive(true);
                pause.SetActive(true);
                player.SetInStory(false);
                enemies.SetActive(true);
                hoodedDissapeared = false;
                metroSpawners.SetActive(true);
                levelStuff.SetActive(true);
                control.SetActive(true);
                doLevel = true;
                hoodedEnd.gameObject.SetActive(true);
                finish = true;
            }
        }
    }