public void OnTriggerEnter2D(Collider2D collision) { Blastbeam pd = collision.GetComponent <Blastbeam>(); if (pd != null) { explosionTimer = 0.05f; } }
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); }