Example #1
0
    // Update is called once per frame
    void Update()
    {
        if (playerInstance != null)
        {
            overheadCamera.transform.position = new Vector3(playerInstance.transform.position.x,
                                                            overheadCamera.transform.position.y,
                                                            playerInstance.transform.position.z);
            overheadCamera.transform.rotation = overheadCameraStart;
            overheadCamera.transform.Rotate(new Vector3(playerInstance.transform.eulerAngles.z,
                                                        playerInstance.transform.eulerAngles.x,
                                                        -playerInstance.transform.eulerAngles.y));
        }

        if (Input.GetButtonDown("Pause") && gamePaused && uiManager.InPauseMain())
        {
            UnpauseGame();
        }
        else
        if (gameActive)
        {
            if (Input.GetButtonDown("Pause"))
            {
                PauseGame();
            }

            if ((Input.GetButtonDown("Fire2")) && (playerInstance != null) && (Scoring.GetLight() > 0))
            {
                PlayerProjectile projectile = Instantiate(projectilePrefab) as PlayerProjectile;
                projectile.FireProjectile(playerInstance);
            }
            if (prevLight != Scoring.GetLight())
            {
                prevLight = Scoring.GetLight();
                if (Scoring.GetLight() <= 0)
                {
                    playerInstance.setWalkSpeed(slowWalk);
                }
                else
                {
                    playerInstance.setWalkSpeed(fastWalk);
                }
            }
            //Debug.Log("Time Remaining: " + Mathf.Round(maxTime - timer.GetElapsedTime()) + " seconds");
            //Debug.Log("Ghosts Remaining: " + Ghost.GhostCountGet());
            //TODO: UI updating (light, time, and ghosts remaining goes here)

            if (Ghost.GhostCountGet() <= 0)
            {
                playerInstance.setMove(false);
                Debug.Log("You Win!");
                gameActive = false;
                timer.PauseTime();
                playerInstance.FreeCursor();
                levelManager.LoadLevel("06Win");
            }

            uiManager.UpdateNumbers(Scoring.GetLight(), (maxTime - timer.GetElapsedTime()), Ghost.GhostCountGet());
        }

        if (timer.GetElapsedTime() > maxTime && !outOfTime)
        {
            playerInstance.setMove(false);
            outOfTime  = true;
            gameActive = false;
            Debug.Log("GameOver");
            playerInstance.FreeCursor();
            levelManager.LoadLevel("05Lose");
        }
    }