From 1b9e52870004d200ec05f4fe88a62e4fc8d3c7ef Mon Sep 17 00:00:00 2001
From: deadlocker8 <deadlocker@gmx.de>
Date: Wed, 26 Oct 2016 16:18:27 +0200
Subject: [PATCH] implemented explosive ball

---
 src/de/bricked/game/board/Board.java   | 19 ++++++++++++++++---
 src/de/bricked/ui/LevelController.java |  4 ++--
 2 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/src/de/bricked/game/board/Board.java b/src/de/bricked/game/board/Board.java
index ff5782a..2354084 100644
--- a/src/de/bricked/game/board/Board.java
+++ b/src/de/bricked/game/board/Board.java
@@ -2,6 +2,8 @@ package de.bricked.game.board;
 
 import java.util.ArrayList;
 
+import de.bricked.game.balls.Ball;
+import de.bricked.game.balls.BallType;
 import de.bricked.game.bricks.Brick;
 import de.bricked.game.bricks.BrickType;
 import de.bricked.game.levels.Level;
@@ -151,11 +153,22 @@ public class Board
 		return HEIGHT;
 	}
 	
-	public int hitBrick(int row, int col, boolean instantDestroy)
+	public int hitBrick(int row, int col, Ball ball)
 	{
-		points = 0;
+		points = 0;		
 		
-		destroyBrick(row, col, instantDestroy);
+		if(ball.getType().equals(BallType.EXPLOSIVE))
+		{
+			Brick currentBrick = bricks.get(row).get(col);
+			if(currentBrick.getPowerUp() != null)
+			{
+				//TODO deploy PowerUp
+			}
+			
+			bricks.get(row).set(col, new Brick(BrickType.TNT));
+		}
+		
+		destroyBrick(row, col, false);
 		
 		return points;
 	}
diff --git a/src/de/bricked/ui/LevelController.java b/src/de/bricked/ui/LevelController.java
index f7e227e..5a37792 100644
--- a/src/de/bricked/ui/LevelController.java
+++ b/src/de/bricked/ui/LevelController.java
@@ -607,7 +607,7 @@ public class LevelController
 	{
 		anchorPaneGame.getChildren().remove(stackPaneBall);
 
-		game.setBall(new Ball(BallType.NO_COLLISION));
+		game.setBall(new Ball(BallType.EXPLOSIVE));
 
 		// create circle for ball
 		final Circle circle = new Circle(game.getBall().getBallRadius(), Color.web(game.getBall().getType().getColor()));
@@ -661,7 +661,7 @@ public class LevelController
 
 				correctBallPosition(hitLocation, ballPosition, brickPosition, stackPaneBrick.getWidth(), stackPaneBrick.getHeight());
 
-				game.setPoints(game.getPoints() + game.getBoard().hitBrick(i, k, false));
+				game.setPoints(game.getPoints() + game.getBoard().hitBrick(i, k, game.getBall()));
 				labelPoints.setText(String.valueOf(game.getPoints()));
 				labelBlocksRemaining.setText(game.getBoard().getNumberOfRemainingBricks() + " Bricks remaining");
 
-- 
GitLab