Exemple #1
0
    private void Explode()
    {
        Collider2D[] surround = Physics2D.OverlapBoxAll(transform.position, new Vector2(2f, 2f), 0f);
        foreach (var objectCollider2D in surround)
        {
            //Debug.Log(objectCollider2D.gameObject);
            BombController surrondBC = objectCollider2D.gameObject.GetComponent <BombController>();
            //Debug.Log(surrondBC);
            //if (surrondBC != null
            //    //(objectCollider2D.gameObject.CompareTag("Bomb") || objectCollider2D.gameObject.CompareTag("BombPickUp"))
            //    && objectCollider2D.gameObject != gameObject && (canExpl = objectCollider2D.GetComponent<DestroyByExplosion>().CanExplode(transform.position)))
            ////objectCollider2D.gameObject.GetComponent<BombController>().ReadyToExplode();
            //{
            //    surrondBC.ReadyToExplode();
            //    Debug.Log(canExpl);
            //}
            if (surrondBC != null)
            {
                Debug.Log(surrondBC);
                //Debug.Log(objectCollider2D.gameObject);
                if (objectCollider2D.gameObject != gameObject)
                {
                    Debug.Log(objectCollider2D.gameObject);
                    Debug.Log(objectCollider2D.GetComponent <DestroyByExplosion>().CanExplode(transform.position));
                    if (objectCollider2D.GetComponent <DestroyByExplosion>().CanExplode(transform.position))
                    {
                        {
                            //           surrondBC.ReadyToExplode();
                        }
                    }
                }
            }
            if (surrondBC != null)
            {
                //(objectCollider2D.gameObject.CompareTag("Bomb") || objectCollider2D.gameObject.CompareTag("BombPickUp"))
                continue;
            }

            DestroyByExplosion objectToDestroy = objectCollider2D.gameObject.GetComponent <DestroyByExplosion>();
            if (objectToDestroy != null && objectToDestroy.CanExplode(transform.position))
            {
                objectToDestroy.ToDestroyByExplosion();
            }
        }
        var neighbours = Physics2D.OverlapBoxAll(transform.position, new Vector2(4f, 4f), 0f);

        foreach (var neighbour in neighbours)
        {
            CornersAndBordersController cabc = neighbour.gameObject.GetComponent <CornersAndBordersController>();
            if (cabc != null)
            {
                cabc.needToUpdate = true;
            }
        }
    }
    private void OnDestroy()
    {
        var neighbours = Physics2D.OverlapBoxAll(transform.position, new Vector2(2f, 2f), 0f);

        foreach (var neighbour in neighbours)
        {
            CornersAndBordersController cabc = neighbour.gameObject.GetComponent <CornersAndBordersController>();
            if (cabc != null)
            {
                cabc.needToUpdate = true;
            }
        }
    }