Exemple #1
0
    public static void GameOver(bool bTimeUp)
    {
        if (instance == null)
        {
            return;
        }

        instance.bPlaying = false;
        instance.tileSystem.GameOver();

        ScenesManager.SetEscapeMethod(null);

        SoundManager.GetInstance().FadeOutAndStopBGM(Define.SoundType.TickTock, 0.5f);
        SoundManager.GetInstance().FadeOutAndStopBGM(Define.SoundType.TickTockBack, 0.5f);
        SoundManager.GetInstance().FadeOutAndStopBGM(Define.SoundType.GameBGM, 0.5f);

        TimeUpPopup popup = PopupSystem.GetPopup <TimeUpPopup>(Define.PopupType.TimeUp);

        popup.SetData(bTimeUp, () =>
        {
            bool bShowContinue = DataManager.GetInstance().CanShowContinueVideo();
            if (bShowContinue && UnityAdsController.IsReady(Define.continueId))
            {
                ContinueDialog.SetData(bTimeUp);
                UISystem.OpenDialog(Define.DialogType.ContinueDialog);
            }
            else
            {
                UISystem.OpenDialog(Define.DialogType.ResultDialog);
            }
        });
        PopupSystem.OpenPopup(Define.PopupType.TimeUp);

        instance.uiSystem.GameOver();
    }
 private IEnumerator OnTimeUp()
 {
     while (true)
     {
         if (checking || gameState == GAMESTATE.PAUSED)
         {
             yield return(new WaitForSeconds(0.1f));
         }
         else
         {
             break;
         }
     }
     if (gameState == GAMESTATE.PLAYING)
     {
         int totalCount = ConfigController.Config.rubyCostToContinue.Length;
         int cost       = ConfigController.Config.rubyCostToContinue[continueCount];
         if (CurrencyController.GetBalance() >= cost && continueCount < totalCount)
         {
             System.Action onYes = (System.Action)(() =>
             {
                 continueCount++;
                 CurrencyController.DebitBalance(cost);
                 totalTime  += ConfigController.Config.continueTime;
                 warningTime = false;
                 timeUp      = false;
                 gameState   = GAMESTATE.PLAYING;
             });
             System.Action onNo = (System.Action)(() =>
             {
                 ShowEndGame(gameMode == GameMode.CLASSIC_MODE, false);
             });
             gameState = GAMESTATE.PAUSED;
             ContinueDialog contDialog = (ContinueDialog)DialogController.instance.GetDialog(DialogType.Continue);
             contDialog.message.SetText(cost.ToString());
             contDialog.onYesClick = onYes;
             contDialog.onNoClick  = onNo;
             DialogController.instance.ShowDialog(contDialog);
         }
         else
         {
             ShowEndGame(gameMode == GameMode.CLASSIC_MODE, false);
         }
     }
 }