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 5a92ab2cc60029962bd36c8f055c690b584f2973..6f3448c0559f8b78862486fbf01c9504fc9c653a 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Controller/GameSceneController.java @@ -159,8 +159,8 @@ public class GameSceneController implements Initializable { updateExplosionspawns(); player.checkGameplayObjectInteraction(player, graphicsContext2D); enemy.checkGameplayObjectInteraction(enemy, graphicsContext2D); - player.placeBomb(player, graphicsContext2D); - enemy.placeBomb(enemy, graphicsContext2D); + player.placeBombAction(player, graphicsContext2D); + enemy.placeBombAction(enemy, graphicsContext2D); } private void renderContent(GraphicsContext graphicsContext) { diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityFactory.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityFactory.java index 41ad8a56dcbfc2d95e2df85a8ae062bcaff523e0..af43fcc605e31050d518c2c73b59f642e9aa00a1 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityFactory.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/EntityFactory.java @@ -34,6 +34,8 @@ public class EntityFactory { return new BigBombItemFrame(cordX, cordY, graphicsContext); } else if (objectType == ObjectType.BLASTUP_ITEMFRAME) { return new BlastUpItemFrame(cordX, cordY, graphicsContext); + } else if (objectType == ObjectType.BLASTDOWN_ITEMFRAME) { + return new BlastDownItemFrame(cordX, cordY, graphicsContext); } else if (objectType == ObjectType.SHIELD_ITEMFRAME) { return new ShieldItemFrame(cordX, cordY, graphicsContext); } else if (objectType == ObjectType.EXPLOSION) { diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BigBomb.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BigBomb.java index 39def82209831ca5da65cfa6d4ec2abfe69b6d32..b058fe8f78362a69e37694e50fe5d056bc9d39be 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BigBomb.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BigBomb.java @@ -65,7 +65,7 @@ public class BigBomb implements IEntity { } @Override - public void placeBomb(IEntity entity, GraphicsContext graphicsContext) { + public void placeBombAction(IEntity entity, GraphicsContext graphicsContext) { } @@ -208,6 +208,7 @@ public class BigBomb implements IEntity { final double dropChanceBigBombItemFrame = 0.1; final double dropChanceHeart = 0.15; final double dropChanceBlastUpItemFrame = 0.15; + final double dropChanceBlastDownItemFrame = 0.15; final double dropChanceShieldItemFrame = 0.1; final double dropChanceTeleportItemFrame = 0.3; double randomDropChance = Math.random() * 1; @@ -228,12 +229,19 @@ public class BigBomb implements IEntity { } else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame) { List<IEntity> gameplayObjects = runtimeInfo.getGameplayObjects(); - IEntity bigBombItemFrame = EntityFactory.createGameplayObject(ObjectType.BLASTUP_ITEMFRAME, x, y, graphicsContext); - gameplayObjects.add(bigBombItemFrame); + IEntity blastUpItemFrame = EntityFactory.createGameplayObject(ObjectType.BLASTUP_ITEMFRAME, x, y, graphicsContext); + gameplayObjects.add(blastUpItemFrame); + runtimeInfo.setGameplayObjects(gameplayObjects); + log.info("BlastUpItemFrame dropped"); + } + else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame + dropChanceBlastDownItemFrame) { + List<IEntity> gameplayObjects = runtimeInfo.getGameplayObjects(); + IEntity blastDownItemFrame = EntityFactory.createGameplayObject(ObjectType.BLASTDOWN_ITEMFRAME, x, y, graphicsContext); + gameplayObjects.add(blastDownItemFrame); runtimeInfo.setGameplayObjects(gameplayObjects); log.info("BlastUpItemFrame dropped"); } - else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame + dropChanceShieldItemFrame) { + else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame + dropChanceBlastDownItemFrame + dropChanceShieldItemFrame) { List<IEntity> gameplayObjects = runtimeInfo.getGameplayObjects(); IEntity shieldItemFrame = EntityFactory.createGameplayObject(ObjectType.SHIELD_ITEMFRAME, x, y, graphicsContext); gameplayObjects.add(shieldItemFrame); diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BigBombItemFrame.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BigBombItemFrame.java index 50bc6d7a4e1def701e43fdcf58e2e05da54dc818..08aeae8a588a618306f4dddf226fd36ef9029a1c 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BigBombItemFrame.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BigBombItemFrame.java @@ -62,7 +62,7 @@ public class BigBombItemFrame implements IEntity { } @Override - public void placeBomb(IEntity entity, GraphicsContext graphicsContext) { + public void placeBombAction(IEntity entity, GraphicsContext graphicsContext) { } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BlastDownItemFrame.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BlastDownItemFrame.java new file mode 100644 index 0000000000000000000000000000000000000000..77e65cade3f0c45633dba49d1efc51fbc9644a0d --- /dev/null +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BlastDownItemFrame.java @@ -0,0 +1,153 @@ +package de.hdm_stuttgart.battlearena.Model.Entity.GameplayObjects; + +import de.hdm_stuttgart.battlearena.Controller.GameSceneController; +import de.hdm_stuttgart.battlearena.Model.Entity.EntityDirection; +import de.hdm_stuttgart.battlearena.Model.Entity.IEntity; + +import javafx.geometry.BoundingBox; +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.image.Image; + +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.LogManager; + +import java.util.Objects; + + +public class BlastDownItemFrame implements IEntity { + private static final Logger log = LogManager.getLogger(BlastDownItemFrame.class); + private final int posX; + private final int posY; + + private int frameIndex = 0; + private int frameCounter = 0; + private Image[] frames = new Image[4]; + private final GraphicsContext graphicsContext; + private BoundingBox boxCollider; + private final ObjectType OBJECT_TYPE = ObjectType.BLASTDOWN_ITEMFRAME; + private ObjectStatus OBJECT_STATUS = ObjectStatus.UNUSED; + + public BlastDownItemFrame(int posX, int posY, GraphicsContext graphicsContext) { + this.posX = posX; + this.posY = posY; + this.graphicsContext = graphicsContext; + + initializeEntity(); + } + + @Override + public void initializeEntity() { + loadEntitySprites(); + boxCollider = new BoundingBox(posX + 12, posY + 12, 24, 24); + } + + @Override + public void loadEntitySprites() { + frames[0] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/BlastDownItemFrameUp.png"))); + frames[1] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/BlastDownItemFrameMiddle.png"))); + frames[2] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/BlastDownItemFrameDown.png"))); + frames[3] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/BlastDownItemFrameMiddle.png"))); + } + + + @Override + public void updateEntity(GameSceneController gameScene, GraphicsContext graphicsContext) { + + } + + @Override + public void checkGameplayObjectInteraction(IEntity entity, GraphicsContext graphicsContext) { + + } + + @Override + public void placeBombAction(IEntity entity, GraphicsContext graphicsContext) { + + } + + @Override + public void attack(IEntity entity, GraphicsContext graphicsContext) { + + } + + @Override + public void updateEntityWalkAnimation() { + + } + + public void renderEntity(GraphicsContext graphicsContext) { + graphicsContext.drawImage(frames[frameIndex], posX, posY, 48, 48); + updateAnimation(); + } + private void updateAnimation() { + frameCounter++; + + if (frameCounter > 25) { + if (frameIndex == 0) { + frameIndex = 1; + } else if (frameIndex == 1) { + frameIndex = 2; + } else if (frameIndex == 2) { + frameIndex = 3; + } else if (frameIndex == 3) { + frameIndex = 0; + } + frameCounter = 0; + } + } + + @Override + public void healPlayer(int heal) { + + } + + @Override + public BoundingBox getBoxCollider() { + return boxCollider; + } + + @Override + public EntityDirection getEntityDirection() { + return null; + } + + @Override + public int getEntitySpeed() { + return 0; + } + + @Override + public void gotHit(int damageDone) { + + } + + @Override + public int getMapPosX() { + return posX; + } + + @Override + public int getMapPosY() { + return posY; + } + + @Override + public ObjectType getOBJECT_TYPE() { + return OBJECT_TYPE; + } + + @Override + public ObjectStatus getOBJECT_STATUS() { + return OBJECT_STATUS; + } + + @Override + public void setObjectStatus(ObjectStatus objectStatus) { + OBJECT_STATUS = objectStatus; + } + + @Override + public int getplayer() { + return 0; + } +} diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BlastUpItemFrame.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BlastUpItemFrame.java index 411dcc047f74268476d4646cd5c8067d6849be07..7f6a9381fb475523c4515ce84580272f47fbc539 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BlastUpItemFrame.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BlastUpItemFrame.java @@ -15,7 +15,7 @@ import java.util.Objects; public class BlastUpItemFrame implements IEntity { - private static final Logger log = LogManager.getLogger(Bomb.class); + private static final Logger log = LogManager.getLogger(BlastUpItemFrame.class); private final int posX; private final int posY; @@ -61,7 +61,7 @@ public class BlastUpItemFrame implements IEntity { } @Override - public void placeBomb(IEntity entity, GraphicsContext graphicsContext) { + public void placeBombAction(IEntity entity, GraphicsContext graphicsContext) { } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Bomb.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Bomb.java index daa68bb7d281586c28c4aa4e6dcf4eb137a008fc..e6681cbae585568a93d87a93de6156c1ceeb2a3b 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Bomb.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Bomb.java @@ -64,7 +64,7 @@ public class Bomb implements IEntity { } @Override - public void placeBomb(IEntity entity, GraphicsContext graphicsContext) { + public void placeBombAction(IEntity entity, GraphicsContext graphicsContext) { } @@ -206,6 +206,7 @@ public class Bomb implements IEntity { final double dropChanceBigBombItemFrame = 0.1; final double dropChanceHeart = 0.15; final double dropChanceBlastUpItemFrame = 0.15; + final double dropChanceBlastDownItemFrame = 0.15; final double dropChanceShieldItemFrame = 0.1; final double dropChanceTeleportItemFrame = 0.3; double randomDropChance = Math.random() * 1; @@ -226,12 +227,19 @@ public class Bomb implements IEntity { } else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame) { List<IEntity> gameplayObjects = runtimeInfo.getGameplayObjects(); - IEntity bigBombItemFrame = EntityFactory.createGameplayObject(ObjectType.BLASTUP_ITEMFRAME, x, y, graphicsContext); - gameplayObjects.add(bigBombItemFrame); + IEntity blastUpItemFrame = EntityFactory.createGameplayObject(ObjectType.BLASTUP_ITEMFRAME, x, y, graphicsContext); + gameplayObjects.add(blastUpItemFrame); + runtimeInfo.setGameplayObjects(gameplayObjects); + log.info("BlastUpItemFrame dropped"); + } + else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame + dropChanceBlastDownItemFrame) { + List<IEntity> gameplayObjects = runtimeInfo.getGameplayObjects(); + IEntity blastDownItemFrame = EntityFactory.createGameplayObject(ObjectType.BLASTDOWN_ITEMFRAME, x, y, graphicsContext); + gameplayObjects.add(blastDownItemFrame); runtimeInfo.setGameplayObjects(gameplayObjects); log.info("BlastUpItemFrame dropped"); } - else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame + dropChanceShieldItemFrame) { + else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame + dropChanceBlastDownItemFrame + dropChanceShieldItemFrame) { List<IEntity> gameplayObjects = runtimeInfo.getGameplayObjects(); IEntity shieldItemFrame = EntityFactory.createGameplayObject(ObjectType.SHIELD_ITEMFRAME, x, y, graphicsContext); gameplayObjects.add(shieldItemFrame); diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Explosion.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Explosion.java index 617e4a96e8e6b83428d9a886cbcf5b19b48b69f0..af8e8380ac9a292af77f6d1e315c984780c10671 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Explosion.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Explosion.java @@ -52,7 +52,7 @@ public class Explosion implements IEntity { } @Override - public void placeBomb(IEntity entity, GraphicsContext graphicsContext) { + public void placeBombAction(IEntity entity, GraphicsContext graphicsContext) { } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Heart.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Heart.java index 1486c01277ddc9f39e0cb094b10aca3ba8403107..b9008f9159468df17dde180895c0ddcdbc465d95 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Heart.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Heart.java @@ -55,7 +55,7 @@ public class Heart implements IEntity { } @Override - public void placeBomb(IEntity entity, GraphicsContext graphicsContext) { + public void placeBombAction(IEntity entity, GraphicsContext graphicsContext) { } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Marker.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Marker.java index c68551be67432dcaec9ef3b4bb4247e72016117c..139e0f2aea190770b622363a6a85a8b66395f185 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Marker.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/Marker.java @@ -65,7 +65,7 @@ public class Marker implements IEntity { } @Override - public void placeBomb(IEntity entity, GraphicsContext graphicsContext) { + public void placeBombAction(IEntity entity, GraphicsContext graphicsContext) { } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/ObjectType.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/ObjectType.java index 02641317f09d5d480481d89d2754f51dd56f77e6..a91e415d752c38c90a6bb7bf1736cd49488339e3 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/ObjectType.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/ObjectType.java @@ -2,6 +2,7 @@ package de.hdm_stuttgart.battlearena.Model.Entity.GameplayObjects; public enum ObjectType { BLASTUP_ITEMFRAME, + BLASTDOWN_ITEMFRAME, SHIELD_ITEMFRAME, BLASTUP, BIG_BOMB_ITEMFRAME, diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/ShieldItemFrame.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/ShieldItemFrame.java index d8c0ca29d479c18d53d21a3c7e079f42566ff808..8a87adaf4a36871852d00d46bd0b171c91eed0a9 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/ShieldItemFrame.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/ShieldItemFrame.java @@ -60,7 +60,7 @@ public class ShieldItemFrame implements IEntity { } @Override - public void placeBomb(IEntity entity, GraphicsContext graphicsContext) { + public void placeBombAction(IEntity entity, GraphicsContext graphicsContext) { } diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/TeleportationItemFrame.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/TeleportationItemFrame.java index bb0eef1ca68c9167322c22f901df2fb3eb2bbb0a..e35ebc1d6504c0432fd0b54b2d7a245a42021a32 100644 --- a/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/TeleportationItemFrame.java +++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/TeleportationItemFrame.java @@ -58,7 +58,7 @@ public class TeleportationItemFrame implements IEntity { } @Override - public void placeBomb(IEntity entity, GraphicsContext graphicsContext) { + public void placeBombAction(IEntity entity, 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 026a7fe2d148b578d9b6b186cbac180a41773b4e..47e681a77da905d9cbb218aa72aef7717c14330f 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 @@ -17,7 +17,7 @@ public interface IEntity { //checks collision with GameplayObjects by iterating through GameplayObjects list void checkGameplayObjectInteraction(IEntity entity, GraphicsContext graphicsContext); - void placeBomb(IEntity entity, GraphicsContext graphicsContext); + void placeBombAction(IEntity entity, 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 7458948bb4c8afb0101e603be59499799b8169eb..0e6141da5ee1915e6682a6d81c16fd8897e3b759 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 @@ -44,7 +44,7 @@ class NetworkPlayerTwo implements IEntity{ } @Override - public void placeBomb(IEntity entity, GraphicsContext graphicsContext) { + public void placeBombAction(IEntity entity, 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 72b84884801b70389e2a06fae70dd812d0ffb3e4..1cc7dc437d7138bb4c28d585e49b0430b7f0bc12 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 @@ -75,6 +75,7 @@ class Player implements IEntity { private int bombPlacementRate = 0; private boolean isBigBombItemFrame = false; private boolean isBlastUpItemFrame = false; + private boolean isBlastDownItemFrame = false; private boolean isShieldItemFrame = false; private boolean markerPlacedPlayerOne = false; private boolean markerPlacedPlayerTwo = false; @@ -341,14 +342,14 @@ class Player implements IEntity { IEntity marker = EntityFactory.createMarker(ObjectType.MARKER, xTile * scaledTileSize, yTile * scaledTileSize, graphicsContext, player); gameplayObjects.add(marker); runtimeInfo.setGameplayObjects(gameplayObjects); - log.info("Player 1 marker placed"); + log.debug("Player 1 marker placed"); //isTeleportItemFrame = false; } else if(isTeleportItemFrame && TileManager.tileMap[yTile][xTile] < 10 && PLAYER_MODE == PlayerMode.PLAYER_TWO){ player = 2; IEntity marker = EntityFactory.createMarker(ObjectType.MARKER, xTile * scaledTileSize, yTile * scaledTileSize, graphicsContext, player); gameplayObjects.add(marker); runtimeInfo.setGameplayObjects(gameplayObjects); - log.info("Player 2 marker placed"); + log.debug("Player 2 marker placed"); //isTeleportItemFrame = false; } @@ -420,7 +421,7 @@ class Player implements IEntity { if(markerPlacedPlayer == markerPlacedPlayerOne) { for (IEntity gameplayObject : gameplayObjects) { if (gameplayObject.getOBJECT_TYPE() == ObjectType.MARKER && gameplayObject.getplayer() == 1) { - log.info("Removed Marker Player 1"); + log.debug("Removed Marker Player 1"); gameplayObject.setObjectStatus(ObjectStatus.USED); } @@ -428,7 +429,7 @@ class Player implements IEntity { } else if(markerPlacedPlayer == markerPlacedPlayerTwo){ for (IEntity gameplayObject : gameplayObjects) { if (gameplayObject.getOBJECT_TYPE() == ObjectType.MARKER && gameplayObject.getplayer() == 2) { - log.info("Removed Marker Player 2"); + log.debug("Removed Marker Player 2"); gameplayObject.setObjectStatus(ObjectStatus.USED); } @@ -479,8 +480,14 @@ class Player implements IEntity { isBlastUpItemFrame = true; log.info("Collision with blastUpItemFrame"); gameplayObject.setObjectStatus(ObjectStatus.USED); - } - } else if (gameplayObject.getOBJECT_TYPE() == ObjectType.SHIELD_ITEMFRAME) { + } + } else if (gameplayObject.getOBJECT_TYPE() == ObjectType.BLASTDOWN_ITEMFRAME) { + if (gameplayObject.getBoxCollider().intersects(boxCollider)) { + isBlastDownItemFrame = true; + log.info("Collision with blastDownItemFrame"); + gameplayObject.setObjectStatus(ObjectStatus.USED); + } + }else if (gameplayObject.getOBJECT_TYPE() == ObjectType.SHIELD_ITEMFRAME) { if (gameplayObject.getBoxCollider().intersects(boxCollider)) { isShieldItemFrame = true; log.info("Collision with shieldItemFrame"); @@ -497,7 +504,7 @@ class Player implements IEntity { } @Override - public void placeBomb(IEntity entity, GraphicsContext graphicsContext) { + public void placeBombAction(IEntity entity, GraphicsContext graphicsContext) { List<IEntity> gameplayObjects = runtimeInfo.getGameplayObjects(); if (inputHandler.isBomb() && PLAYER_MODE == PlayerMode.PLAYER_ONE && bombPlacementRate == 0 || @@ -564,6 +571,12 @@ class Player implements IEntity { blastradius ++; log.debug("Upping blastradius:" + blastradius); isBlastUpItemFrame = false; + } else if(isBlastDownItemFrame){ + if(blastradius > 1) { + blastradius--; + log.debug("Lowering blastradius:" + blastradius); + } + isBlastDownItemFrame = false; } return blastradius; } diff --git a/src/main/resources/textures/objects/itemFrames/BlastDownItemFrameDown.png b/src/main/resources/textures/objects/itemFrames/BlastDownItemFrameDown.png new file mode 100644 index 0000000000000000000000000000000000000000..396307ff82f7e7c36d47af5b3df5409728423ac7 Binary files /dev/null and b/src/main/resources/textures/objects/itemFrames/BlastDownItemFrameDown.png differ diff --git a/src/main/resources/textures/objects/itemFrames/BlastDownItemFrameMiddle.png b/src/main/resources/textures/objects/itemFrames/BlastDownItemFrameMiddle.png new file mode 100644 index 0000000000000000000000000000000000000000..fb6e3e5a438fcd5ddee5c6f76343bdcedf208b6f Binary files /dev/null and b/src/main/resources/textures/objects/itemFrames/BlastDownItemFrameMiddle.png differ diff --git a/src/main/resources/textures/objects/itemFrames/BlastDownItemFrameUp.png b/src/main/resources/textures/objects/itemFrames/BlastDownItemFrameUp.png new file mode 100644 index 0000000000000000000000000000000000000000..36a1b3ca360bfb460b390582b1397c5f1d965257 Binary files /dev/null and b/src/main/resources/textures/objects/itemFrames/BlastDownItemFrameUp.png differ