Example #1
0
    public void SetPhase(StagePhase phase)
    {
        this.Phase = phase;
        switch (Phase)
        {
        case StagePhase.MEMORY:
            break;

        case StagePhase.COUNTDOWN:
            view.startPanel.gameObject.SetActive(false);
            Camera.main.transform.parent.DOMove(Constant.PLAY_CAM_POS, 1f).SetEase(Ease.Linear);
            StartCoroutine(view.CountDown());
            break;

        case StagePhase.PLAY:
            view.inGamePanel.gameObject.SetActive(true);
            Camera.main.gameObject.GetComponent <MouseLook> ().enabled = true;
            rifle.SetActive(true);
            CreateCharacter();
            break;

        case StagePhase.SHOT:
            view.inGamePanel.gameObject.SetActive(false);
            rifle.SetActive(false);
            var citizens = GameObject.FindGameObjectsWithTag("Citizen");
            foreach (var c in citizens)
            {
                c.GetComponent <UnityEngine.AI.NavMeshAgent> ().speed = 0;
            }
            break;

        case StagePhase.CLEAR:
            Debug.Log("CLEAR");
            AudioManager.Instance.PlaySE("gameclear");
            Cursor.lockState = CursorLockMode.None;
            Cursor.visible   = true;
            if (GameManager.Instance.CurrentLevel <= 2)
            {
                var clearTime = (float)Constant.TIME_LIMIT_ARRAY[GameManager.Instance.CurrentLevel - 1] - stageTimer.Value;
                GameManager.Instance.SetClearTime(GameManager.Instance.CurrentLevel - 1, clearTime);
                view.clearPanel.gameObject.SetActive(true);
            }
            else
            {
                GameManager.Instance.CalculateClearTime();
                view.gameClearPanel.gameObject.SetActive(true);
                naichilab.RankingLoader.Instance.SendScoreAndShowRanking(GameManager.Instance.clearTime);
            }
            break;

        case StagePhase.GAMEOVER:
            AudioManager.Instance.PlaySEWithVolume("gameover", 0.5f);
            Debug.Log("GAMEOVER");
            Cursor.lockState = CursorLockMode.None;
            Cursor.visible   = true;
            view.gameOverPanel.gameObject.SetActive(true);
            break;
        }
    }