public void DestroyBricks(Vector3 center)
    {
        Collider2D[] objects = Physics2D.OverlapCircleAll(center, explosionRadius); //transform.position + center

        foreach (Collider2D obj in objects)
        {
            if (obj.Equals(this.gameObject.GetComponent <Collider2D>()))
            {
                continue;
            }
            BrickZero brick = obj.GetComponent <BrickZero>();
            if (brick != null)
            {
                Instantiate(explosion, obj.transform.position, obj.transform.rotation); //obj.transform.position + center
                brick.MyDestroy();
            }
        }
    }
Exemplo n.º 2
0
    // Update
    void Update()
    {
        #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WEBPLAYER
        {
            MoveWithMouse();
        }
#else
        {
            if (powerManager.currentPower == PowerManager.Power.reverse && powerManager.powerStrength == PowerManager.Strength.x2)
            {
                MoveWithAccelerometer();
            }
            else if (powerManager.currentPower == PowerManager.Power.reverse && powerManager.powerStrength == PowerManager.Strength.x3)
            {
                AutoPlay();
            }
            else
            {
                MoveWithTouch();
            }
        }
#endif


        // Change State - Enlarge / Minimize
        if (powerManager.currentPower == PowerManager.Power.enlarge)
        {
            // Check Strength and enlarge
            if (powerManager.powerStrength == PowerManager.Strength.x1)
            {
                transform.localScale = new Vector3(1.5f, 1, 0);
            }
            else if (powerManager.powerStrength == PowerManager.Strength.x2)
            {
                transform.localScale = new Vector3(2f, 1, 0);
            }
            else if (powerManager.powerStrength == PowerManager.Strength.x3)
            {
                transform.localScale = new Vector3(4f, 1, 0);
            }

            ResetCollider();
            paddleHalfWidth = (myCollider.size.x / 2) * transform.localScale.x;
            rightBorder     = gameWorldWidth - paddleHalfWidth;

            /*
             * // Set Animation
             * myAnimator.SetTrigger("Enlarge");
             *
             * //Set Collider
             * myCollider.size = new Vector2(2.5f, 0.44f);
             *
             * // Set Mouse Limits
             * mouseXMin = mouseEnlargeXMin;
             * mouseXMax = mouseEnlargeXMax;
             */
        }
        else if (powerManager.currentPower == PowerManager.Power.minimize)
        {
            // Check Strength and minimize
            if (powerManager.powerStrength == PowerManager.Strength.x1)
            {
                transform.localScale = new Vector3(0.75f, 1, 0);
            }
            else if (powerManager.powerStrength == PowerManager.Strength.x2)
            {
                transform.localScale = new Vector3(0.5f, 1, 0);
            }
            else if (powerManager.powerStrength == PowerManager.Strength.x3)
            {
                transform.localScale = new Vector3(0.2f, 1, 0);
            }

            ResetCollider();
            paddleHalfWidth = (myCollider.size.x / 2) * transform.localScale.x;
            rightBorder     = gameWorldWidth - paddleHalfWidth;

            /*
             * // Set Animation
             * myAnimator.SetTrigger("Minimize");
             *
             * //Set Collider
             * myCollider.size = new Vector2(1.5f, 0.44f);
             *
             * // Set Mouse Limits
             * mouseXMin = mouseMinimizeXMin;
             * mouseXMax = mouseMinimizeXMax;
             */
        }
        else
        {
            // Set size
            if (transform.localScale.x != 1)
            {
                transform.localScale = new Vector3(1, 1, 0);

                ResetCollider();
                paddleHalfWidth = (myCollider.size.x / 2) * transform.localScale.x;
                rightBorder     = gameWorldWidth - paddleHalfWidth;
            }

            // Set Animation
            //myAnimator.SetTrigger("Normal");

            //Set Collider
            //myCollider.size = new Vector2 (2f, 0.44f);

            // Set Mouse Limits
            //mouseXMin = mouseNormalXMin;
            //mouseXMax = mouseNormalXMax;
        }

        // Change State - Laser
        if (powerManager.currentPower == PowerManager.Power.laser)
        {
            // Check for mouse input
            if (PlayerInput(Controls.clickHold) && overheat == false) //Input.GetMouseButton(0)
            {
                // Check Strength and set Rate Of Fire
                if (powerManager.powerStrength == PowerManager.Strength.x1)
                {
                    rateOfFire = rateOfFireX1;
                }
                else if (powerManager.powerStrength == PowerManager.Strength.x2)
                {
                    rateOfFire = rateOfFireX2;
                }
                else if (powerManager.powerStrength == PowerManager.Strength.x3)
                {
                    rateOfFire = rateOfFireX3;
                }

                if (!shootingLaser && ball.hasStarted)
                {
                    InvokeRepeating("ShootLaser", 0, rateOfFire); shootingLaser = true;
                }
            }
            else
            {
                ResetLaser();
            }

            if (PlayerInput(Controls.clickEnd) && !overheat) //Input.GetMouseButtonUp(0)
            {
                if (overheatShootCounter == overheatShootLimit)
                {
                    Invoke("ResetOverheat", 1);
                }
                overheatShootCounter--;
                if (overheatShootCounter <= 0)
                {
                    overheat = true; CancelInvoke("ResetOverheat"); Invoke("ResetOverheat", overheatCooldown);
                }
                //Debug.Log(overheatShootCounter);
            }
        }
        else
        {
            if (shootingLaser)
            {
                ResetLaser();
            }
        }

        // Change State - Xplosion
        if (powerManager.currentPower == PowerManager.Power.xplosion)
        {
            // destroy unbreakables
            foreach (GameObject obj in GameObject.FindGameObjectsWithTag("Unbreakable"))
            {
                Vector3   center = (obj.GetComponent <SpriteRenderer>().bounds.center) / 18;
                BrickZero brick  = obj.GetComponent <BrickZero>();
                if (brick != null)
                {
                    Instantiate(explosion, obj.transform.position + center, obj.transform.rotation);
                    brick.MyDestroy();
                }
            }

            // destroy breakables
            foreach (GameObject obj in GameObject.FindGameObjectsWithTag("Breakable"))
            {
                Vector3   center = (obj.GetComponent <SpriteRenderer>().bounds.center) / 18;
                BrickZero brick  = obj.GetComponent <BrickZero>();
                if (brick != null)
                {
                    Instantiate(explosion, obj.transform.position + center, obj.transform.rotation);
                    brick.MyDestroy();
                }
            }

            powerManager.ResetPower();
        }
    }