void Update()
    {
        if (!MyGameManager.pause && !gameOver)
        {
            SetCountText();

            if (gameOver)
            {
                if (manager != null)
                {
                    StartCoroutine(BackToMainGame());
                }
                else
                {
                    timer.Finish();
                    Destroy(FindObjectOfType <SoloPlayerController>().gameObject);
                    StartCoroutine(ScoreScreen());
                }
            }

            if (reset)
            {
                Init();
                reset = false;
            }
        }
    }
예제 #2
0
 void OnTriggerEnter2D()
 {
     if (openDoor == true)
     {
         if (manager != null)
         {
             StartCoroutine(BackToMainGame());
         }
         else
         {
             timer.Finish();
             Destroy(FindObjectOfType <MazeRunner>().gameObject);
             StartCoroutine(ScoreScreen());
         }
     }
 }
예제 #3
0
 public void DecreaseCardCount()
 {
     _cardsLeft -= 2;
     if (_cardsLeft <= 0)
     {
         if (manager != null)
         {
             StartCoroutine(BackToMainGame());
         }
         else
         {
             winCanvas.SetActive(true);
             timer.Finish();
             winText.text = "Finished Time: " + timer.GetFormatedTime();
             StartCoroutine(ScoreScreen());
         }
     }
 }
예제 #4
0
    void Update()
    {
        if (gameOver)
        {
            gameOver = false;
            gameOverCanvas.SetActive(true);
            if (manager != null)
            {
                StartCoroutine(BackToMainGame());
            }
            else
            {
                timer.Finish();
                StartCoroutine(ScoreScreen());
            }
        }

        if (reset)
        {
            Init();
        }
    }
예제 #5
0
    void FixedUpdate()
    {
        if (!MyGameManager.pause)
        {
            if (spawning)
            {
                if (Time.time > nextSpawnTime)
                {
                    int   spawnSide            = Random.Range(0, 4);
                    float secondsBetweenSpawns = Mathf.Lerp(MIN_TIME, MAX_TIME, Difficulty.GetDifficultyPercent());
                    nextSpawnTime = Time.time + secondsBetweenSpawns;

                    Vector2    spawnPosition;
                    GameObject obj;

                    switch (spawnSide)
                    {
                    case 0:
                        spawnPosition = new Vector2(Random.Range(topLeft.position.x, topRight.position.x), topLeft.position.y);
                        obj           = Instantiate(block, spawnPosition, Quaternion.identity, transform);
                        obj.GetComponent <SoloWaterBalloon>().MovePosition = Vector2.down * 2;
                        break;

                    case 1:
                        spawnPosition = new Vector2(Random.Range(bottomLeft.position.x, bottomRight.position.x), bottomLeft.position.y);
                        obj           = Instantiate(block, spawnPosition, Quaternion.Euler(0, 0, 180), transform);
                        obj.GetComponent <SoloWaterBalloon>().MovePosition = Vector2.up * 2;
                        break;

                    case 2:
                        spawnPosition = new Vector2(topLeft.position.x, Random.Range(topLeft.position.y, bottomLeft.position.y));
                        obj           = Instantiate(block, spawnPosition, Quaternion.Euler(0, 0, 90), transform);
                        obj.GetComponent <SoloWaterBalloon>().MovePosition = Vector2.right * 2;
                        break;

                    case 3:
                        spawnPosition = new Vector2(bottomRight.position.x, Random.Range(topRight.position.y, bottomRight.position.y));
                        obj           = Instantiate(block, spawnPosition, Quaternion.Euler(0, 0, -90), transform);
                        obj.GetComponent <SoloWaterBalloon>().MovePosition = Vector2.left * 2;
                        break;
                    }
                }
            }

            if (gameOver)
            {
                spawning = false;
                gameOver = false;
                gameOverCanvas.SetActive(true);
                if (manager != null)
                {
                    StartCoroutine(BackToMainGame());
                }
                else
                {
                    timer.Finish();
                    StartCoroutine(ScoreScreen());
                }
            }
            //This is only for the main game
            //For solo play changing screens will reset
            if (reset)
            {
                Init();
                reset = false;
            }
        }
    }