From 9cbc5acf2eefae6b910120a8eccc3dcbd864c57c Mon Sep 17 00:00:00 2001
From: yschl <ys037@hdm-stuttgart.de>
Date: Wed, 17 Jan 2024 00:09:42 +0100
Subject: [PATCH] IEntity.java & GameSceneController.java &
 NetworkPlayerTwo.java: Add: second Identity for placeBomb Method Player.java:
 Add: Logic Comments for future Fixes and Added second Identity coordinates

---
 .../Controller/GameSceneController.java            |  4 ++--
 .../battlearena/Model/Entity/IEntity.java          |  2 +-
 .../battlearena/Model/Entity/NetworkPlayerTwo.java |  2 +-
 .../battlearena/Model/Entity/Player.java           | 14 +++++++++++---
 4 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
index 79fd84cb..008e1ecc 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java
@@ -109,8 +109,8 @@ public class GameSceneController implements Initializable {
         enemy.attack(player, graphicsContext2D);
         player.checkHealTile(player, graphicsContext2D);
         enemy.checkHealTile(enemy, graphicsContext2D);
-        player.placeBomb(player, graphicsContext2D);
-        enemy.placeBomb(enemy, graphicsContext2D);
+        player.placeBomb(player, enemy, graphicsContext2D);
+        enemy.placeBomb(enemy, player, graphicsContext2D);
     }
 
     private void renderContent(GraphicsContext graphicsContext) {
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/IEntity.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/IEntity.java
index 97e4a532..b55bde72 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/IEntity.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/IEntity.java
@@ -14,7 +14,7 @@ public interface IEntity {
 
    void checkHealTile(IEntity entity, GraphicsContext graphicsContext);
 
-    void placeBomb(IEntity entity, GraphicsContext graphicsContext);
+    void placeBomb(IEntity entity, IEntity entity2, GraphicsContext graphicsContext);
 
     void attack(IEntity entity, GraphicsContext graphicsContext);
 
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/NetworkPlayerTwo.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/NetworkPlayerTwo.java
index 36fa8143..70dc4e04 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/NetworkPlayerTwo.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/NetworkPlayerTwo.java
@@ -42,7 +42,7 @@ class NetworkPlayerTwo implements IEntity{
     }
 
     @Override
-    public void placeBomb(IEntity entity, GraphicsContext graphicsContext) {
+    public void placeBomb(IEntity entity, IEntity entity2, GraphicsContext graphicsContext) {
 
     }
 
diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java
index 49430df1..89ed0203 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/Player.java
@@ -292,31 +292,39 @@ class Player implements IEntity {
     }
 
     @Override
-    public void placeBomb(IEntity entity, GraphicsContext graphicsContext){
+    public void placeBomb(IEntity entity, IEntity entity2, GraphicsContext graphicsContext){
         boolean isDestructible;
         int xTile = entity.getMapPosX() / gameSceneController.getScaledTileSize();
         int yTile = entity.getMapPosY() / gameSceneController.getScaledTileSize();
+        int xTile2 = entity2.getMapPosX() / gameSceneController.getScaledTileSize();
+        int yTile2 = entity2.getMapPosY() / gameSceneController.getScaledTileSize();
         if(inputHandler.isBomb() &&  PLAYER_MODE == PlayerMode.PLAYER_ONE ||
                 inputHandler.isSdBomb() && PLAYER_MODE == PlayerMode.PLAYER_TWO) {
             isDestructible = checkTileNon_Destructible(yTile, xTile);
             if(isDestructible){
                 TileManager.tileMap[yTile][xTile] = 7;
                 for (int i=0;i<3; i++){
-                    isDestructible = checkTileNon_Destructible(yTile +1 +i, xTile);
-                    if(isDestructible && (yTile < 18 && xTile <18)){
+                    isDestructible = checkTileNon_Destructible(yTile +1 +i, xTile);         //If Tile solid , -> should stop comparing,
+                    if(isDestructible && (yTile < 18 && xTile <18)){                            //because for now, Tile behind gets destroyed aswell
                        TileManager.tileMap[yTile +1 + i][xTile] = 8;
+                       /*if(entity || entity2) {
+                           entity2.gotHit(2);    //See if enemy or player hit
+                       }*/
                     }
                     isDestructible = checkTileNon_Destructible(yTile -1 -i, xTile);
                     if(isDestructible && (yTile < 18 && xTile <18)){
                         TileManager.tileMap[yTile -1 -i][xTile] = 8;
+                        entity.gotHit(2);
                     }
                     isDestructible = checkTileNon_Destructible(yTile , xTile +1 +i);
                     if(isDestructible && (yTile < 18 && xTile <18)){
                         TileManager.tileMap[yTile][xTile +1 +i] = 8;
+                        entity.gotHit(2);
                     }
                     isDestructible = checkTileNon_Destructible(yTile, xTile -1 -i);
                     if(isDestructible && (yTile < 18 && xTile <18)){
                         TileManager.tileMap[yTile][xTile -1 -i] = 8;
+                        entity.gotHit(2);
                     }
                 }
             }
-- 
GitLab