From f6d8e3a0d56721f205643b1f0e2d35cd2ed0b187 Mon Sep 17 00:00:00 2001
From: koz01 <koz01@PCCPIT1V203-040.msad.vsb.cz>
Date: Mon, 24 Oct 2022 12:12:13 +0200
Subject: [PATCH] final solution

---
 src/main/java/lab/BulletAnimated.java |  5 +++++
 src/main/java/lab/HitListener.java    |  2 ++
 src/main/java/lab/World.java          | 10 +++++++++-
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/main/java/lab/BulletAnimated.java b/src/main/java/lab/BulletAnimated.java
index d232287..0120333 100644
--- a/src/main/java/lab/BulletAnimated.java
+++ b/src/main/java/lab/BulletAnimated.java
@@ -113,4 +113,9 @@ public class BulletAnimated  implements DrawableSimulable, Collisionable{
 		speed = initialSpeed;
 	}
 	
+	public void setHitListener(HitListener hitListener) {
+		this.hitListener = hitListener;
+		System.out.println(hitListener.getClass());
+	}
+	
 }
diff --git a/src/main/java/lab/HitListener.java b/src/main/java/lab/HitListener.java
index 51cc8dd..5e58e3e 100644
--- a/src/main/java/lab/HitListener.java
+++ b/src/main/java/lab/HitListener.java
@@ -1,5 +1,7 @@
 package lab;
 
+@FunctionalInterface
 public interface HitListener {
 	void hit();
+	
 }
diff --git a/src/main/java/lab/World.java b/src/main/java/lab/World.java
index f73df60..18896e1 100644
--- a/src/main/java/lab/World.java
+++ b/src/main/java/lab/World.java
@@ -27,7 +27,9 @@ public class World {
 		Cannon cannon = new Cannon(this, new Point2D(50, 50), new Point2D(100, 20));
 		entities = new DrawableSimulable[2 + NUMBER_OF_DRAGONS];
 		entities[0] = cannon;
-		entities[1] = new BulletAnimated(this, cannon, new Point2D(30, 60), new Point2D(0, 0), 40);
+		BulletAnimated bulletAnimated;
+		entities[1] = bulletAnimated = new BulletAnimated(this, cannon, new Point2D(30, 60), new Point2D(0, 0), 40);
+		bulletAnimated.setHitListener(this::hit);
 		Random rnd = new Random();
 		
 		for (int i = 2; i < entities.length; i++) {
@@ -118,5 +120,11 @@ public class World {
 	public void setGameListener(GameListener gameListener) {
 		this.gameListener = gameListener;
 	}
+	
+	
+	private void hit() {
+		hits++;
+		gameListener.stateChanged(shoots, hits);
+	}
 
 }
-- 
GitLab