Exemplo n.º 1
0
    void Update()
    {
        if (activateFirstTouch)
        {
            activateFirstTouch = false;
            firstTouch         = true;
            levelModel.ShowText();
        }

        if (firstTouch && Input.GetMouseButtonDown(0) && !thirdWindow)
        {
            if (curLevelEventPassed != this.curLevel)
            {
//                this.analyticsController.PushDesignEvent($"cs:core:start_level:{this.curLevel + 1}");
                curLevelEventPassed = this.curLevel;
            }

            Vector3 screenPos = Input.mousePosition;
            float   posH      = screenPos.y / Screen.height;

            if (posH >= 0.00f) // 0.25f Если будет нижнее меню
            {
                firstTouch = false;
                playerController.FirstStart(Input.mousePosition, countPartToWin);
                playerController.playable = true;
                mainCamera.playable       = true;
                downPanel.HideDownPanel();
            }

            levelModel.HideText();
        }

        // /////////////////////////////////////////////////////////////////////////////////

        if (calculateLackParts)
        {
            calculateLackParts = false;
            levelModel.finish.SetLackCounter();
        }

        if (calculateParts)
        {
            int currentSavingTails = playerController.currentSavingTails;

            if (calculateResidueVar)
            {
                calculateResidueVar = false;

                int collectedTails = playerController.GetComponent <SnakeTail>().positions.Count;

                residue     = collectedTails;
                residue     = Mathf.Clamp(residue, 0, countPartToWin);
                prevResidue = residue;
            }

            if (currentSavingTails != prevSavingTails)
            {
                prevSavingTails = currentSavingTails;
                levelModel.finish.UpdateCounter(currentSavingTails);
                residue--;
                residue = Mathf.Clamp(residue, 0, 1000);
            }

            if (residue < prevResidue)
            {
                prevResidue = residue;
                progressBar.SubtractCell(residue);
            }
        }

        // /////////////////////////////////////////////////////////////////////////////////

        if (calculateSuccessEnd)
        {
            if (timer > 0)
            {
                levelModel.finish.DoorAnimator();
                timer -= Time.deltaTime;

                if (timer <= 0)
                {
                    levelComplete.ShowWindow();
                    levelModel.finish.ActivateCounter(false);

                    timerDelay          = 3f;
                    gateCalculateResult = true;
                }
            }

            if (timerDelay > 0)
            {
                if (gateCalculateResult)
                {
                    gateCalculateResult = false;

                    upPanel.UpdateCoinBar(25, goldCount);

                    SaveData();
                    LoadingNewLevel();
                }

                timerDelay -= Time.deltaTime;

                if (timerDelay <= 0)
                {
                    levelComplete.HideWindow();

                    calculateSuccessEnd = false;
                    calculateParts      = false;

                    prevSavingTails = 0;

                    CalculateEndLevel();
                }
            }
        }

        if (calculateFailingEnd)
        {
            if (timer > 0)
            {
                timer -= Time.deltaTime;

                if (timer <= 0)
                {
//                    this.analyticsController.PushDesignEvent($"cs:core:bad_level:{this.curLevel + 1}");

                    if (calculateFailingRevive)
                    {
                        levelFailed.ShowWindow(true);
                        timerDelay             = 5.25f;
                        calculateFailingRevive = false;
                    }
                    else
                    {
                        levelFailed.ShowWindow(false);
                        timerDelay     = 1.5f;
                        calculateParts = false;
                    }
                }
            }

            if (timerDelay > 0)
            {
                timerDelay -= Time.deltaTime;

                if (timerDelay <= 0)
                {
                    timerDelay  = 0;
                    timerDelay2 = 0.25f;
                    loadingScreen.ShowLoadScreen();
                }
            }

            if (timerDelay2 > 0)
            {
                timerDelay2 -= Time.deltaTime;

                if (timerDelay2 <= 0)
                {
                    timerDelay2         = 0;
                    calculateFailingEnd = false;
                    SceneManager.LoadScene("MainScene");
                }
            }
        }

        if (calculateRevive)
        {
            if (timerDelay > 0)
            {
                timerDelay -= Time.deltaTime;

                if (timerDelay <= 0)
                {
                    timerDelay      = 0;
                    Time.timeScale  = 0;
                    calculateRevive = false;

                    // Start Rewarded video
                    // ------- тут -------
                    // А пока реклама не интегрирована - сразу возвращаем игрока в игру
                    ReviveSuccess();
                }
            }
        }

        if (calculateReviveEnd)
        {
            if (timerDelay > 0)
            {
                timerDelay -= Time.deltaTime;

                if (timerDelay <= 0)
                {
                    timerDelay         = 0;
                    calculateReviveEnd = false;

                    // Continue Game
                    activateFirstTouch         = true;
                    mainCamera.speedMoveCamera = 1.5f;
                }
            }
        }

        if (startNewLevel)
        {
            startNewLevel = false;
            StartNewLevel();
        }


        // EVENT
        if (sendEventBomb)
        {
//            this.analyticsController.PushDesignEvent($"cs:core:bad_level_bomb:{this.curLevel + 1}");
            sendEventBomb = false;
        }

        if (sendEventSuccessLevel)
        {
            // this.analyticsController.PushDesignEvent($"cs:core:success_level:{this.curLevel + 1}");
            sendEventSuccessLevel = false;
        }
    }