Exemplo n.º 1
0
    public void OnTriggerEnter2D(Collider2D collision)
    {
        Blastbeam pd = collision.GetComponent <Blastbeam>();

        if (pd != null)
        {
            explosionTimer = 0.05f;
        }
    }
Exemplo n.º 2
0
    private void Explode()
    {
        Blastbeam middle = Instantiate(BombController.Instance.BlastbeamPrefab);

        middle.Show(BombController.Instance.GetDirectionSprites(Direction.MIDDLE).EndSprites, this, true);
        Direction[] directions = new Direction[4] {
            Direction.DOWN, Direction.UP, Direction.LEFT, Direction.RIGHT
        };
        Vector3[] dirs = new Vector3[4] {
            Vector2.down, Vector2.up, Vector2.left, Vector2.right
        };
        middle.transform.position = transform.position;
        for (int i = 0; i < 4; i++)
        {
            for (int x = 1; x < Strength; x++)
            {
                Vector3  pos = transform.position + x * dirs[i];
                TileType tt  = MapController.Instance.GetTileTypeAt(pos);
                if (tt == TileType.Wall)
                {
                    break;
                }
                Blastbeam beam = Instantiate(BombController.Instance.BlastbeamPrefab);
                if (tt == TileType.Box)
                {
                    x = Strength - 1;
                }
                if (x == Strength - 1)
                {
                    beam.Show(BombController.Instance.GetDirectionSprites(directions[i]).EndSprites, this);
                }
                else
                {
                    beam.Show(BombController.Instance.GetDirectionSprites(directions[i]).MiddleSprites, this);
                }
                beam.transform.position = pos;
                if (tt == TileType.Box)
                {
                    break;
                }
            }
        }
        OnExplodecb?.Invoke(this);
        Destroy(this.gameObject);
    }