예제 #1
0
    public void GameOver(bool forceDead = false)
    {
        GlobalManager.Ui.GameOver();

        if (invDamage && !forceDead)
        {
            return;
        }

        ScreenShake.Singleton.ShakeGameOver();

        GameOverTok thisTok = new GameOverTok( );

        thisTok.totalDist = totalDis;

        StopPlayer = true;

        Camera.main.GetComponent <RainbowMove>().enabled   = false;
        Camera.main.GetComponent <RainbowRotate>().enabled = false;

        DOVirtual.DelayedCall(.2f, () => {
            Camera.main.transform.DORotate(new Vector3(-220, 0, 0), 1.8f, RotateMode.LocalAxisAdd);
            Camera.main.transform.DOLocalMoveZ(-50f, .4f);
        });



        Life--;

        if (Life > 0 || playerDead)
        {
            invDamage = true;
            Invoke("waitInvDmg", TimeInvincible);
            GlobalManager.Ui.StartBonusLife();

            return;
        }


        DOVirtual.DelayedCall(1f, () => {
            GlobalManager.Ui.OpenThisMenu(MenuType.GameOver, thisTok);
            ScreenShake.Singleton.ShakeGameOver();
            playerDead = true;
        });
        //GlobalManager.Ui.OpenThisMenu ( MenuType.GameOver );

        //GlobalManager.GameCont.Restart ( );
    }
예제 #2
0
    public override void OpenThis(MenuTokenAbstract GetTok = null)
    {
        base.OpenThis(GetTok);

        Debug.Log("GameOver");
        GameOverTok thisTok = GetTok as GameOverTok;

        PointsGameOver.text = Mathf.RoundToInt(thisTok.totalDist).ToString();
        YouGameOver.DOFade(0, 0);
        MadeGameOver.DOFade(0, 0);
        PointsGameOver.DOFade(0, 0);
        YouGameOver.transform.DOScale(5, 0);
        MadeGameOver.transform.DOScale(5, 0);
        PointsGameOver.transform.DOScale(5, 0);
        BarGameOver.transform.DOScaleY(0, 0);

        PatternGameOver.transform.DOLocalMoveY(-60, 5f).SetEase(Ease.Linear).OnComplete(() => {
            PatternGameOver.transform.DOLocalMoveY(1092, 0);
        }).SetLoops(-1, LoopType.Restart);


        gameObject.GetComponent <CanvasGroup>().DOFade(1f, 1.5f).OnComplete(() =>
        {
            YouGameOver.DOFade(1, .25f);
            YouGameOver.transform.DOScale(1, .25f).OnComplete(() => {
                MadeGameOver.DOFade(1, .25f);
                MadeGameOver.transform.DOScale(1, .25f).OnComplete(() =>
                {
                    PointsGameOver.DOFade(1, .25f);
                    BarGameOver.transform.DOScaleY(1.25f, .2f).OnComplete(() =>
                    {
                        BarGameOver.transform.DOScaleY(1, .05f);
                    });
                    PointsGameOver.transform.DOScale(1, .25f);

                    DOVirtual.DelayedCall(1.5f, () => {
                        PressGameOver.GetComponent <CanvasGroup>().DOFade(1, .5f);
                    });
                });
            });
        });
    }