From 9f611b2da47a11c980e90e1dea886f819a1a989d Mon Sep 17 00:00:00 2001 From: yschl <ys037@hdm-stuttgart.de> Date: Tue, 20 Feb 2024 22:45:21 +0100 Subject: [PATCH] Add: BombClockItem that reduces the time a player is able to place bombs Update: Blastradius and bombplacementRate pickup logic and Blastradius Up and Down png's #83 # 79 --- .../Model/Entity/EntityFactory.java | 4 +- .../Model/Entity/GameplayObjects/BigBomb.java | 14 +++--- .../GameplayObjects/BlastUpItemFrame.java | 8 ++-- .../Model/Entity/GameplayObjects/Bomb.java | 14 +++--- ...ItemFrame.java => BombClockItemFrame.java} | 16 +++---- .../Entity/GameplayObjects/ObjectType.java | 2 +- .../battlearena/Model/Entity/Player.java | 40 ++++++++++++------ .../itemFrames/BlastDownItemFrameDown.png | Bin 312 -> 288 bytes .../itemFrames/BlastDownItemFrameMiddle.png | Bin 312 -> 289 bytes .../itemFrames/BlastDownItemFrameUp.png | Bin 321 -> 293 bytes .../objects/itemFrames/BlastItemFrameDown.png | Bin 291 -> 0 bytes .../itemFrames/BlastItemFrameDownBlue.png | Bin 292 -> 0 bytes .../itemFrames/BlastItemFrameMiddle.png | Bin 292 -> 0 bytes .../itemFrames/BlastItemFrameMiddleBlue.png | Bin 292 -> 0 bytes .../objects/itemFrames/BlastItemFrameUp.png | Bin 300 -> 0 bytes .../itemFrames/BlastItemFrameUpBlue.png | Bin 295 -> 0 bytes .../itemFrames/BlastUpItemFrameDown.png | Bin 0 -> 318 bytes .../itemFrames/BlastUpItemFrameMiddle.png | Bin 0 -> 318 bytes .../objects/itemFrames/BlastUpItemFrameUp.png | Bin 0 -> 321 bytes .../objects/itemFrames/ClockItemFrame1Up.png | Bin 0 -> 224 bytes .../itemFrames/ClockItemFrame2Middle.png | Bin 0 -> 218 bytes .../itemFrames/ClockItemFrame3Down.png | Bin 0 -> 222 bytes .../itemFrames/ClockItemFrame4Middle.png | Bin 0 -> 223 bytes .../battlearena/Model/Entity/PlayerTest.java | 29 +++++++++++++ 24 files changed, 85 insertions(+), 42 deletions(-) rename src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/{ShieldItemFrame.java => BombClockItemFrame.java} (84%) delete mode 100644 src/main/resources/textures/objects/itemFrames/BlastItemFrameDown.png delete mode 100644 src/main/resources/textures/objects/itemFrames/BlastItemFrameDownBlue.png delete mode 100644 src/main/resources/textures/objects/itemFrames/BlastItemFrameMiddle.png delete mode 100644 src/main/resources/textures/objects/itemFrames/BlastItemFrameMiddleBlue.png delete mode 100644 src/main/resources/textures/objects/itemFrames/BlastItemFrameUp.png delete mode 100644 src/main/resources/textures/objects/itemFrames/BlastItemFrameUpBlue.png create mode 100644 src/main/resources/textures/objects/itemFrames/BlastUpItemFrameDown.png create mode 100644 src/main/resources/textures/objects/itemFrames/BlastUpItemFrameMiddle.png create mode 100644 src/main/resources/textures/objects/itemFrames/BlastUpItemFrameUp.png create mode 100644 src/main/resources/textures/objects/itemFrames/ClockItemFrame1Up.png create mode 100644 src/main/resources/textures/objects/itemFrames/ClockItemFrame2Middle.png create mode 100644 src/main/resources/textures/objects/itemFrames/ClockItemFrame3Down.png create mode 100644 src/main/resources/textures/objects/itemFrames/ClockItemFrame4Middle.png create mode 100644 src/test/java/de/hdm_stuttgart/battlearena/Model/Entity/PlayerTest.java 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 af43fcc6..e15dec50 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 @@ -36,8 +36,8 @@ public class EntityFactory { 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.BOMBCLOCK_ITEMFRAME) { + return new BombClockItemFrame(cordX, cordY, graphicsContext); } else if (objectType == ObjectType.EXPLOSION) { return new Explosion(cordX, cordY, graphicsContext); } else if (objectType == ObjectType.TELEPORT_ITEMFRAME) { 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 b058fe8f..f1b78b0e 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 @@ -209,8 +209,8 @@ public class BigBomb implements IEntity { 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; + final double dropChanceBombClock = 0.1; + final double dropChanceTeleportItemFrame = 0.15; double randomDropChance = Math.random() * 1; if (randomDropChance < dropChanceBigBombItemFrame) { @@ -241,14 +241,14 @@ public class BigBomb implements IEntity { runtimeInfo.setGameplayObjects(gameplayObjects); log.info("BlastUpItemFrame dropped"); } - else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame + dropChanceBlastDownItemFrame + dropChanceShieldItemFrame) { + else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame + dropChanceBlastDownItemFrame + dropChanceBombClock) { List<IEntity> gameplayObjects = runtimeInfo.getGameplayObjects(); - IEntity shieldItemFrame = EntityFactory.createGameplayObject(ObjectType.SHIELD_ITEMFRAME, x, y, graphicsContext); - gameplayObjects.add(shieldItemFrame); + IEntity bombClockItemFrame = EntityFactory.createGameplayObject(ObjectType.BOMBCLOCK_ITEMFRAME, x, y, graphicsContext); + gameplayObjects.add(bombClockItemFrame); runtimeInfo.setGameplayObjects(gameplayObjects); - log.info("ShieldItemFrame dropped"); + log.info("BombClockItemFrame dropped"); } - else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame + dropChanceShieldItemFrame + dropChanceTeleportItemFrame) { + else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame + dropChanceBombClock + dropChanceTeleportItemFrame) { List<IEntity> gameplayObjects = runtimeInfo.getGameplayObjects(); IEntity teleportItemFrame = EntityFactory.createGameplayObject(ObjectType.TELEPORT_ITEMFRAME, x, y, graphicsContext); gameplayObjects.add(teleportItemFrame); 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 7f6a9381..4651559b 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 @@ -43,10 +43,10 @@ public class BlastUpItemFrame implements IEntity { @Override public void loadEntitySprites() { - frames[0] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/BlastItemFrameUpBlue.png"))); - frames[1] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/BlastItemFrameMiddleBlue.png"))); - frames[2] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/BlastItemFrameDownBlue.png"))); - frames[3] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/BlastItemFrameMiddleBlue.png"))); + frames[0] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/BlastUpItemFrameUp.png"))); + frames[1] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/BlastUpItemFrameMiddle.png"))); + frames[2] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/BlastUpItemFrameDown.png"))); + frames[3] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/BlastUpItemFrameMiddle.png"))); } 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 e6681cba..ac60f927 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 @@ -207,8 +207,8 @@ public class Bomb implements IEntity { 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; + final double dropChanceBombClock = 0.1; + final double dropChanceTeleportItemFrame = 0.15; double randomDropChance = Math.random() * 1; if (randomDropChance < dropChanceBigBombItemFrame) { @@ -239,14 +239,14 @@ public class Bomb implements IEntity { runtimeInfo.setGameplayObjects(gameplayObjects); log.info("BlastUpItemFrame dropped"); } - else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame + dropChanceBlastDownItemFrame + dropChanceShieldItemFrame) { + else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame + dropChanceBlastDownItemFrame + dropChanceBombClock) { List<IEntity> gameplayObjects = runtimeInfo.getGameplayObjects(); - IEntity shieldItemFrame = EntityFactory.createGameplayObject(ObjectType.SHIELD_ITEMFRAME, x, y, graphicsContext); - gameplayObjects.add(shieldItemFrame); + IEntity bombClock = EntityFactory.createGameplayObject(ObjectType.BOMBCLOCK_ITEMFRAME, x, y, graphicsContext); + gameplayObjects.add(bombClock); runtimeInfo.setGameplayObjects(gameplayObjects); - log.info("ShieldItemFrame dropped"); + log.info("BombClockItemFrame dropped"); } - else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame + dropChanceShieldItemFrame + dropChanceTeleportItemFrame) { + else if (randomDropChance < dropChanceHeart + dropChanceBigBombItemFrame + dropChanceBlastUpItemFrame + dropChanceBlastDownItemFrame + dropChanceBombClock + dropChanceTeleportItemFrame) { List<IEntity> gameplayObjects = runtimeInfo.getGameplayObjects(); IEntity teleportItemFrame = EntityFactory.createGameplayObject(ObjectType.TELEPORT_ITEMFRAME, x, y, graphicsContext); gameplayObjects.add(teleportItemFrame); 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/BombClockItemFrame.java similarity index 84% rename from src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/ShieldItemFrame.java rename to src/main/java/de/hdm_stuttgart/battlearena/Model/Entity/GameplayObjects/BombClockItemFrame.java index 8a87adaf..eed22f29 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/BombClockItemFrame.java @@ -12,9 +12,9 @@ import org.apache.logging.log4j.Logger; import java.util.Objects; -public class ShieldItemFrame implements IEntity { +public class BombClockItemFrame implements IEntity { - private static final Logger log = LogManager.getLogger(ShieldItemFrame.class); + private static final Logger log = LogManager.getLogger(BombClockItemFrame.class); private final int posX; private final int posY; @@ -23,10 +23,10 @@ public class ShieldItemFrame implements IEntity { private Image[] frames = new Image[4]; private final GraphicsContext graphicsContext; private BoundingBox boxCollider; - private final ObjectType OBJECT_TYPE = ObjectType.SHIELD_ITEMFRAME; + private final ObjectType OBJECT_TYPE = ObjectType.BOMBCLOCK_ITEMFRAME; private ObjectStatus OBJECT_STATUS = ObjectStatus.UNUSED; - public ShieldItemFrame(int posX, int posY, GraphicsContext graphicsContext) { + public BombClockItemFrame(int posX, int posY, GraphicsContext graphicsContext) { this.posX = posX; this.posY = posY; this.graphicsContext = graphicsContext; @@ -42,10 +42,10 @@ public class ShieldItemFrame implements IEntity { @Override public void loadEntitySprites() { - frames[0] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/ArmorFrameGreyUp.png"))); - frames[1] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/ArmorFrameGreyMiddle.png"))); - frames[2] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/ArmorFrameGreyDown.png"))); - frames[3] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/ArmorFrameGreyMiddle.png"))); + frames[0] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/ClockItemFrame1Up.png"))); + frames[1] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/ClockItemFrame2Middle.png"))); + frames[2] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/ClockItemFrame3Down.png"))); + frames[3] = new Image(Objects.requireNonNull(getClass().getResourceAsStream("/textures/objects/itemFrames/ClockItemFrame4Middle.png"))); } 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 a91e415d..b11ccc5f 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 @@ -3,7 +3,7 @@ package de.hdm_stuttgart.battlearena.Model.Entity.GameplayObjects; public enum ObjectType { BLASTUP_ITEMFRAME, BLASTDOWN_ITEMFRAME, - SHIELD_ITEMFRAME, + BOMBCLOCK_ITEMFRAME, BLASTUP, BIG_BOMB_ITEMFRAME, BIG_BOMB, 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 1cc7dc43..2f186bcd 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 @@ -73,10 +73,11 @@ class Player implements IEntity { private int iFrameCounter = 0; private int attackRate = 0; private int bombPlacementRate = 0; + private int bombReducedPlacementRate = 100; private boolean isBigBombItemFrame = false; private boolean isBlastUpItemFrame = false; private boolean isBlastDownItemFrame = false; - private boolean isShieldItemFrame = false; + private boolean isBombClockItemFrame = false; private boolean markerPlacedPlayerOne = false; private boolean markerPlacedPlayerTwo = false; private boolean isTeleportItemFrame = false; @@ -292,12 +293,12 @@ class Player implements IEntity { int pos; - if(PLAYER_MODE == PlayerMode.PLAYER_ONE && !markerPlacedPlayerOne /* && isShieldItemFrame*/){ + if(PLAYER_MODE == PlayerMode.PLAYER_ONE && !markerPlacedPlayerOne){ markerPlacedPlayerOne = findNearestTpTile(yTile, xTile, graphicsContext); } - if(PLAYER_MODE == PlayerMode.PLAYER_TWO && !markerPlacedPlayerTwo /* && isShieldItemFrame*/){ + if(PLAYER_MODE == PlayerMode.PLAYER_TWO && !markerPlacedPlayerTwo){ markerPlacedPlayerTwo = findNearestTpTile(yTile, xTile, graphicsContext); } @@ -434,7 +435,7 @@ class Player implements IEntity { gameplayObject.setObjectStatus(ObjectStatus.USED); } } - } //TODO: Marker gets ONLY visually removed when explosion is set to USED ?? + } //TODO: Marker - AND other Bombs - get ONLY visually removed when explosion is set to USED ?? return false; } @@ -477,20 +478,23 @@ class Player implements IEntity { } } else if (gameplayObject.getOBJECT_TYPE() == ObjectType.BLASTUP_ITEMFRAME) { if (gameplayObject.getBoxCollider().intersects(boxCollider)) { - isBlastUpItemFrame = true; log.info("Collision with blastUpItemFrame"); + isBlastUpItemFrame = true; + blastradius = updateBlastradius(blastradius); gameplayObject.setObjectStatus(ObjectStatus.USED); } } else if (gameplayObject.getOBJECT_TYPE() == ObjectType.BLASTDOWN_ITEMFRAME) { if (gameplayObject.getBoxCollider().intersects(boxCollider)) { - isBlastDownItemFrame = true; log.info("Collision with blastDownItemFrame"); + isBlastDownItemFrame = true; + blastradius = updateBlastradius(blastradius); gameplayObject.setObjectStatus(ObjectStatus.USED); } - }else if (gameplayObject.getOBJECT_TYPE() == ObjectType.SHIELD_ITEMFRAME) { + }else if (gameplayObject.getOBJECT_TYPE() == ObjectType.BOMBCLOCK_ITEMFRAME) { if (gameplayObject.getBoxCollider().intersects(boxCollider)) { - isShieldItemFrame = true; - log.info("Collision with shieldItemFrame"); + log.info("Collision with bombClockItemFrame"); + isBombClockItemFrame = true; + bombPlacementRate = updateBombPlacementRate(bombPlacementRate); gameplayObject.setObjectStatus(ObjectStatus.USED); } }else if (gameplayObject.getOBJECT_TYPE() == ObjectType.TELEPORT_ITEMFRAME) { @@ -513,7 +517,7 @@ class Player implements IEntity { blastradius = updateBlastradius(blastradius); if(isBigBombItemFrame && !isTeleportItemFrame) { log.debug("We have Big_Bomb ItemFrames in the List"); - bombPlacementRate = 100; + bombPlacementRate = updateBombPlacementRate(bombPlacementRate); int xTile = (pixelpadding + mapPosX) / scaledTileSize; int yTile = (pixelpadding + mapPosY) / scaledTileSize; @@ -553,7 +557,8 @@ class Player implements IEntity { } else if(!isTeleportItemFrame){ log.debug("No Big_Bomb ItemFrames in the List"); - bombPlacementRate = 100; + bombPlacementRate = bombReducedPlacementRate; + bombPlacementRate = updateBombPlacementRate(bombPlacementRate); int xTile = (pixelpadding + mapPosX) / scaledTileSize; int yTile = (pixelpadding + mapPosY) / scaledTileSize; @@ -566,15 +571,24 @@ class Player implements IEntity { } } } + private int updateBombPlacementRate(int bombPlacementRate){ + if(isBombClockItemFrame && bombReducedPlacementRate > 10){ + bombReducedPlacementRate -= 10; + log.info("Reducing bomb Placementrate:" + bombReducedPlacementRate); + isBombClockItemFrame = false; + } + return bombReducedPlacementRate; + } + public int updateBlastradius(int blastradius){ if(isBlastUpItemFrame){ blastradius ++; - log.debug("Upping blastradius:" + blastradius); + log.info("Upping blastradius:" + blastradius); isBlastUpItemFrame = false; } else if(isBlastDownItemFrame){ if(blastradius > 1) { blastradius--; - log.debug("Lowering blastradius:" + blastradius); + log.info("Lowering blastradius:" + blastradius); } isBlastDownItemFrame = false; } diff --git a/src/main/resources/textures/objects/itemFrames/BlastDownItemFrameDown.png b/src/main/resources/textures/objects/itemFrames/BlastDownItemFrameDown.png index 396307ff82f7e7c36d47af5b3df5409728423ac7..9147e7e301037b901445a3492aac6ce9c4351c30 100644 GIT binary patch delta 247 zcmV<T00{rM0-yqrF@M@gL_t(IPh(`D5HM1xp8;&Z!a4E($uTHCWg#Qn07+?8uo-%~ zibR>UbH^?Q3<DC{BpA*u=L8#I6!{&_2Jt`2q`?j5e=>^!!vJ>=H?XEZ>;?>%7Tjde zOHgNE`FR1w5M-y}H2|9*&<!Km0Fa@`h7dI1)gBWDF_$x7$8aFCVTO=x0LVa47!fo8 zUtAJxz~MdiU~_C;4x*Tc(*RifgQBwRLI7Bk@0<51hJZAK0M>*AONF5HfDT~k0~`jI x?=w7qdK)t(5|flcnn3`=0HQJgnj%nM008G_vJq0z5|aP`002ovPDHLkV1g)3V<7+l delta 272 zcmV+r0q_2x0=NQ@F@N$&L_t(IPh(`D5HM1xp8;&ZmMvTUlVgyNj}If<fG_Wtg3WNS z;XpB~()=ug_P=)wF{fSO;!8|-GhAg7VwnHx5~=}t3yT>p&7KNYDA6>V;YD34n2l@* zOmpzOHU<<Im}swM&`Zr`cqMB9)(A2H1keou+1!58nBmOTV1L{O;0lk#twvzYAV8J@ z$Sxvmz<d@4hQvP*#~`zz-lBs6coGIEU<tc`fq~)Xe15Po>WLpwjKgUFNEIw9dp0Y8 zHTk}Ik75WcS}|MzN{O&k2r>j6z|sdu{J@bP3_OC-sObP#Qbsojq!|P-3?Mf%0RWQR WxDov>P1pbc00{s|MNUMnLSTZQjc~XC diff --git a/src/main/resources/textures/objects/itemFrames/BlastDownItemFrameMiddle.png b/src/main/resources/textures/objects/itemFrames/BlastDownItemFrameMiddle.png index fb6e3e5a438fcd5ddee5c6f76343bdcedf208b6f..30e08a4dac0225a815d2587ffe4d06f2312317e1 100644 GIT binary patch delta 248 zcmV<U00;lL0-*wsF@M`hL_t(IPh(`D5HN!DFPszqpB!`IQx-D94Um*p1)HI#t4Net zJ9q42z%U@8O@iUva!#-TMv>p)Y!LsWOd8x^{wK2-Fbr__a06@l!*0NEX~9hfy##dz zmY)|;3_*4pUIVcC0o^c?4FDO6YzRREUhOeq5OX;Lb__BbW^oAF27n9%g%Lpm@Wmz3 z1{~gF4>rfv<sgcAI1PZsKPW28E(Cxz`M!CNVhBhx2w+V}uv7?259k1vKEPpc`98z* yr?)XvA~8uBq!|P-3?M24pecgq1#&dQ^Z)=H8L|-^91XDm0000<MNUMnLSTY7s$SXv delta 272 zcmV+r0q_2y0=NQ@F@N$&L_t(IPh(`D5HN!DZ`rctKRM?3`1mlw4fyhYDcB4L8x9n+ zD$UO_X#ac15OdlUF22NcH^WsXA%^*{E}<Hbx3HMu((I{Vg%VA(8D7+-g4xK1z%&QX zYhyrhfr<872EEj5hF7u%V2vOHKmgqkkj?EUjTz2d4aRK%u7B`I+-d~Y3<6{sfb1f| z2Fzz+U`YG}aSSpW>Mc4LfG1&q0+z4~7#J9C&gTakqn`K?#W<V>fK<VvvS+gbSd;IY z_b7(Iq7}mhpp*zpg&;%F0W5uh#19<#!N4OJjhYT{C1rGjK$<}S!vKmh6FHh;dH_wG WxDiRAE585$00{s|MNUMnLSTZjE_J;C diff --git a/src/main/resources/textures/objects/itemFrames/BlastDownItemFrameUp.png b/src/main/resources/textures/objects/itemFrames/BlastDownItemFrameUp.png index 36a1b3ca360bfb460b390582b1397c5f1d965257..9e295e1b884e5a89489d81c61aaa5f343e5424ff 100644 GIT binary patch delta 252 zcmV<Y00aNQ0;K|wF@N7lL_t(IPh(_YU|?7{C;mT(CKbe|EM#Pa86YXG3f8Zut4NeN zJ9q42z%U@8O@iUva!#-TMv>p)Y!LsWOd8x^{wK2-Fbr__a06@l!*0NEX~9hfy##dz zmY)|;3_*4pUIVcC0o^c?4FDO6YzRREUhOeq5OX;Lb__BbW_1YJ27n9%g%Lpm@Wmz3 z1{~gF4>rfv<sgcAI1PZsKPW28E(Cxz`M!CNVhBhx2w+V}uv7?259k1vKEPpc`98z* zr?)XvA~8uBq!|P-3?M24pecgq1#&dQ^ni0CB>(_Wys{BKq30$50000<MNUMnLSTa8 C9AL)) delta 281 zcmV+!0p|Xt0>J{1F@O6>L_t(IPh(_YU|`s?Wy^mMO)Bv5@nK|y8Sv%(Qm}pp8x9n6 zD$UO_X#ac15OdlUF22NcH^WsXA%^*{E}<Hbx3HMu((I{Vg%VA(8D7+-g4xK1z%&QX zYhyrhfr<872EEj5hF7u%V2vOHKmgqkkj?EUjTz2d4aRK%u79vd+-d~Y3<6{sfb1f| z2Fzz+U`YG}aSSpW>Mc4LfG1Ia0+z4~7#J9C&gTakqn`K?#W<V>fK<VvvS+gbSd;IY z_b7(Iq7}mhpp*zpg&;%F0W5uh#19<#!N4OJjhYT{C1rGjK$<}S!vH*ChEocjl*!Qy f(*w?plmGw-UJ|$wy_Sa!00000NkvXXu0mjfG!=OA diff --git a/src/main/resources/textures/objects/itemFrames/BlastItemFrameDown.png b/src/main/resources/textures/objects/itemFrames/BlastItemFrameDown.png deleted file mode 100644 index e5d250bb9b20c7e192358a4dd143cd8b7a908f6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmV+;0o?wHP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp) z=>Px#-AP12R5(v#WS|f*QmCH+Y`{$h?*HT%q|We_5pKZ7Wi!EMJae$aYnIf3LtuIT zsB{Jl18`~XdK$n`CcOcyvFp4t!-S9XF%6jh>^fGPL7JHuE;E!!-(~1|s?6~36$3+= z;a!GIDNR%tAR7SFgv~^P2H?{SG7zr;FwHEczZw3VW(7L{nN83DkRQ=Ck!1kBc*N@k zm<vD#+%;uGF-Q6IFNS{%x(p1jF5`~{<Uj-&vW|n9q4e-~6wM%$F`^Na5@87mWC+M6 pbO4Hf5CEk{tSOPAq)cvR0s!l;sS#_2$&CO2002ovPDHLkV1mHiajyUX diff --git a/src/main/resources/textures/objects/itemFrames/BlastItemFrameDownBlue.png b/src/main/resources/textures/objects/itemFrames/BlastItemFrameDownBlue.png deleted file mode 100644 index cb81f78ecdaba5f80a9eba129ed7f45e0aa41d5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292 zcmV+<0o(qGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp) z=>Px#-bqA3R5(v#WS|f*QmCH+V!-zI|H(4QQ;-pEfWf|LU^BkHeo2&Bx5FD57|;#C zrFo6bN`{al;b4PdYzzZbSJq>-8Kgm5{~d$o)J%r!+0z-WUK9cwhSva?CTu1WGytDw zkb!s&fN5qi{mt;_G%MHv$ZUcJfc%KAi7W%~#UoxXz+3<_;I1hfiaE-se=+=H&}F!O z@hSdTxSD;0fr;TVSTo3wbsWqLrH8+xXa>pQO-LX^7+ygPK?d5ZGr?SLQE`R~PFa{K qk(i_m(hLF^1`w42&=q+KG6Db|JggDMQu&Yo0000<MNUMnLSTZV?{ZN9 diff --git a/src/main/resources/textures/objects/itemFrames/BlastItemFrameMiddle.png b/src/main/resources/textures/objects/itemFrames/BlastItemFrameMiddle.png deleted file mode 100644 index 2c8a93e650aaed70057b6e64fcd1233e19f307f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292 zcmV+<0o(qGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp) z=>Px#-bqA3R5(v#WS|f*g7n{H;QmjJIqD2w8Q}(OTs9MI#xn;yyk<!qI0TmWk4k62 zFaVe4uBQPEWzrkK8oSObGfen6AJc&8&#q&&8Kjws;W9&s^j(IYr^*cfUNJC~8Qx{c zl+r|X0kQ!wP1sB%XaGLVAOrCl0MpE3`kUd;X;!cUkl6$c0QnJJ6Ilk}i$}a(fVlu< zz+F=|6myhM|6=&Zpv%DU>N5UVKn_HZA?rAp8A=a-N6`#286z4&DG`>CK!$*9LI<Gu q2LVuO#F`Q*O3D;vCUP{x^Z)?YG^r8W%e8?30000<MNUMnLSTaCesOXD diff --git a/src/main/resources/textures/objects/itemFrames/BlastItemFrameMiddleBlue.png b/src/main/resources/textures/objects/itemFrames/BlastItemFrameMiddleBlue.png deleted file mode 100644 index bfc9384b34fa50ac840c577bc8b295024dba8f5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292 zcmV+<0o(qGP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp) z=>Px#-bqA3R5(v#WS|f*g7t5I|DP;#JOvry1{my{1~%jC>z72CbvwL~fdSnBT$<O| ztYio|5)L*P#>Ox}b!9zPn?V}1_1`gQPR(Svo;{u6>O~>2VR#LIX~JeAK?Cq<1{sLg z0GMVL)87n#PP2j?fXpUn0LYK%n#eK$Up(UV0?Y*<1MZr#p_rq5`WM4L23>~h7oXyf zg{#>|7?>C?gEfN;S;xW5P<r?~ie``;-h>1)gy9v$5M-deIup$078Pf>;FN`#5{XI5 qAk83vVE|DX09_G0FOa1hq6q-Z!K@M4xS-<z0000<MNUMnLSTY7S#ys7 diff --git a/src/main/resources/textures/objects/itemFrames/BlastItemFrameUp.png b/src/main/resources/textures/objects/itemFrames/BlastItemFrameUp.png deleted file mode 100644 index 4a633765b869cac0f47b399aa37a047b9e6bb85b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmV+{0n`48P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp) z=>Px#=1D|BR5(v#WME)mxXHl%A4HQ1)ET}qGQtelxNIg^|1$?Wyyi$9I0TmWk4k62 zFaVe4uBQPEWzrkK8oSObGfen6AJc&8&#q&&8Kjws;W9&s^j(IYr^*cfUNJC~8Qx{c zl+r|X0kQ!wP1sB%XaGLVAOrCl0MpE3`kUd;X;!cUkl6$c0QnJJ6Ilk}i$}a(fVlu< zz+F=|6myhM|6=&Zpv%DU>N5UVKn_HZA?rAp8A=a-N6`#286z4&DG`>CK!$*9LI<Gu y2LVuO#F`Q*O3I{WB#?S|ULZ#^Ob<9WQUU<Nxv3FDwGVCp0000<MNUMnLSTYK({oz@ diff --git a/src/main/resources/textures/objects/itemFrames/BlastItemFrameUpBlue.png b/src/main/resources/textures/objects/itemFrames/BlastItemFrameUpBlue.png deleted file mode 100644 index 661efdffe3bfdd0c75b65d3a60c25be089b1b6f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|9(uYshFJI~ zr!X|WegD5XGpKR7g0k`%hUVJK2hOZtA1{=8=IsYJHntMxg3P$&&65<Lcv##>kdQvi zaCPd}h+MYJ3)kw8FR(P7{IKd<N!x1i)&p%1O&OMP&hBL4J+NFdMInwkVOFG1z40H* zvs`5iMza?%D%dZ|Ryxg4^ReSPw}E&A&yMU<ZApEfUdHqMmne~37hlt5FSagCJ~1I_ z2hTMgqZC<oW9OF--)qcrEUFL|Iw8;&F5o<&@!KmOgXz&Ba~?JYi=}y~sA)EvG&8g@ qx}-9cxPI8<FfFe`%_DCK(1+EbYXnzlUQ+-v89ZJ6T-G@yGywqar*9Yl diff --git a/src/main/resources/textures/objects/itemFrames/BlastUpItemFrameDown.png b/src/main/resources/textures/objects/itemFrames/BlastUpItemFrameDown.png new file mode 100644 index 0000000000000000000000000000000000000000..d27512a067b1c26e0e09f951cd81c7370ba10905 GIT binary patch literal 318 zcmV-E0m1%>P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp) z=>Px#_(?=TR5(v#WS|f*QmCH+V!-zI|H(4QQ;-pEfa=P6hTHRRF{mc0;Wdj}R2(dS z!6}P@0oecsk4U&ibVJtItYio|5)PIJvEy&%VH$wT1t1OD`tKMtr)Dx-&z{b3^`a2i zu-oB{s4f5*00S^h*!)7!0DPK32I4gUrkTa`H^ZOPtY8Nqvk4ji@*}z?vJAi%k9fTR za{<VJyQXX?<|v>3#qf_om*M)wr}$&xYW5KZCWgyk%^*Y8aWFHK9{!G^86<}hjRyOs zF?@af608wq2*WFgA;>^`btae#N{tvP5o7=ezzo3^4!DytzL3Ku=PAet09n1P5$v85 Q+5i9m07*qoM6N<$f`Czhz5oCK literal 0 HcmV?d00001 diff --git a/src/main/resources/textures/objects/itemFrames/BlastUpItemFrameMiddle.png b/src/main/resources/textures/objects/itemFrames/BlastUpItemFrameMiddle.png new file mode 100644 index 0000000000000000000000000000000000000000..bdab779804418a03f86897ec058dd742fecffc85 GIT binary patch literal 318 zcmV-E0m1%>P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp) z=>Px#_(?=TR5(v#WS|f*g7t5I|DP;#JOvry2B@yAXShB87K3V{8eX%wMa9AL7o4&f z7?2HM@Q8$KL^ouO%}R!lBjI3q5Ig>69;N}fTmaIbt^bZeb805T_3Y^kS1$^I4Z9uQ zi0T560Wbj5gv~Dm4Zx=vWFTGxV47J>e>40!%?fq^GMk_QAU~pOBFg}L@rc(8Fc*Lf zxNFLWVvh3ZUkv{kbQ!K+e2PC7u4W%$U}Cro)(kRa9S1W*>EZ7vnn7|H(P*%58pGGu zFTol?hA_N>7=jG6S7(B`pwx(w5<v!l0L&0v;eb0S;|n=la`3!Bj%KJH00>d65qkTd QHvj+t07*qoM6N<$g2wuLo&W#< literal 0 HcmV?d00001 diff --git a/src/main/resources/textures/objects/itemFrames/BlastUpItemFrameUp.png b/src/main/resources/textures/objects/itemFrames/BlastUpItemFrameUp.png new file mode 100644 index 0000000000000000000000000000000000000000..b334ff57e7f0d255e966ff4eb858e490c43bdabb GIT binary patch literal 321 zcmV-H0lxl;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp) z=>Px#`$<GWR5(v#WB`Hf@Bf2oQh}!+BO}ZJ)s^)Ox98ttP)$_BYYexjI9UFIQx*dQ zvH=Vpk#LRZhODt!$q;fR94rrF$KTAuGys<iKpM35-!W)T&1ATqJ)Pm|MIo?Zx5FDz zT>vrw24I@7`GueX_%wqI#A^UdGmGhOhCioS!45!X6EpziM|4eO8GtVy@p=K~0+0cB zP1#V)Q9k{P;U9x8!}W_#@yEi|>>~_J441*0L58g3U}h*i{2fIzNDd<!4faiA`1<-K zSR=>~hF1_nkb(B<OfVOe8ZlBL$N&(48G<Vua3^JaA%{y2o)^f`4Ale4jT8U?w$`i> TcaFTj00000NkvXXu0mjfofUlU literal 0 HcmV?d00001 diff --git a/src/main/resources/textures/objects/itemFrames/ClockItemFrame1Up.png b/src/main/resources/textures/objects/itemFrames/ClockItemFrame1Up.png new file mode 100644 index 0000000000000000000000000000000000000000..26f4f749eb98775f1b4a74112002103d357dc54d GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|W_h|ehFJI~ zrz8MDN$(&2MV_qx%k|S!S|m4E+Rsw?yH9w!(F4;1$B(n;JeZ~%y+O+70>ccw363{- z6f+pku%5W4EZuUQVZyWj{}mtp@(UBqYx^+Sy5RZ)6NX6RU5pBLX9O1UCbYPS+;LT~ zJE83&-5|%h#hf8Uxys@|4C7|mBg=D5geEUDjB)5uD>41B$DuE+Vn@It$tB_pr@f{M UPO$zv9q391Pgg&ebxsLQ0FW3^tN;K2 literal 0 HcmV?d00001 diff --git a/src/main/resources/textures/objects/itemFrames/ClockItemFrame2Middle.png b/src/main/resources/textures/objects/itemFrames/ClockItemFrame2Middle.png new file mode 100644 index 0000000000000000000000000000000000000000..7f8bd6847d5bb4a895e3711e527ea821621564d8 GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|rg*wIhFJI~ zrz{XKX!>Hj%k7`~@j3r@Pd7fqdt;8g?<C26!qbf&m>xKOoIU5kG~MV8Qa%?LX6Q|D zyuqWG!ElE4#5HB<mg@`?p8fxCczEi>iGuH>=CD1u#8b?9Mqm*yLuQ5cVy5q%A0}HT zgkLz%FyZR^l+ey{Mi130ivv6jmhwy5wq5k_nRTpy(Qwv<s|P+aS<XtVVwlD_L$IR3 R`2o;<44$rjF6*2UngC%JQ;Yxr literal 0 HcmV?d00001 diff --git a/src/main/resources/textures/objects/itemFrames/ClockItemFrame3Down.png b/src/main/resources/textures/objects/itemFrames/ClockItemFrame3Down.png new file mode 100644 index 0000000000000000000000000000000000000000..3de4f072c037347a39f92e37de9f0f90614a0242 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|W_Y?dhFJI~ zrz{XK2wE|pF^6Gs_LKS|o?rW`EtT&yoc(!GW#&WcLQUp4=9-$C18jLWH?gih$imz3 zl1Z}VtUwdnftZFI+f9xYybPKD{>vN3NJ>gRTz4>&LGP@=^aDJKrx+$A2{@GT2D0s$ z8tBMbx$yY*hc&mP88&f=@SRxKu(M%>gG*oi7ZH~d6QRk=43ioqd|zZaR5CI=QR)|* Tk$n9M(2We9u6{1-oD!M<YmZMa literal 0 HcmV?d00001 diff --git a/src/main/resources/textures/objects/itemFrames/ClockItemFrame4Middle.png b/src/main/resources/textures/objects/itemFrames/ClockItemFrame4Middle.png new file mode 100644 index 0000000000000000000000000000000000000000..7782b908bfe01fd7f40ac489fe2d643f9ee3fbe8 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|W_r3fhFJI~ zrz{XKX!>Hj%k7`~@j3r@Pd7fqdt;8g?<C26!qbf&m>xKOoIU5kG~MV8Qa%?LX6Q|D zyuqWG!ElE4#5HB<mg@`?o^3bMO4#evpMUslLP|=@Znou&CuTWXwa&kj_~XC4pr?Uz zMmEEy-WP!mQ@AyZ7*doqWHv}Tg(xT;x8L=-v(GK*l8Kv+z+%o=UK{-hizSz_Gi*tp VB<NS+@(Jij22WQ%mvv4FO#lykP+|Z8 literal 0 HcmV?d00001 diff --git a/src/test/java/de/hdm_stuttgart/battlearena/Model/Entity/PlayerTest.java b/src/test/java/de/hdm_stuttgart/battlearena/Model/Entity/PlayerTest.java new file mode 100644 index 00000000..7055c8ba --- /dev/null +++ b/src/test/java/de/hdm_stuttgart/battlearena/Model/Entity/PlayerTest.java @@ -0,0 +1,29 @@ +package de.hdm_stuttgart.battlearena.Model.Entity; + +import de.hdm_stuttgart.battlearena.Controller.Enum.PlayerMode; +import de.hdm_stuttgart.battlearena.Controller.GameSceneController; +import de.hdm_stuttgart.battlearena.Model.Inputs.InputHandler; +import de.hdm_stuttgart.battlearena.Model.Entity.EntityClass; +import de.hdm_stuttgart.battlearena.Model.Entity.EntityDirection; +import de.hdm_stuttgart.battlearena.Model.Map.TileManager; +import javafx.fxml.FXML; +import javafx.scene.layout.BorderPane; +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +public class PlayerTest { + @FXML + private BorderPane gameScene; + + + GameSceneController GameSceneController = new GameSceneController(); + //TileManager tileManager = new TileManager() + Player player = new Player(null, InputHandler.getInstance(), EntityClass.HUMAN, GameSceneController, PlayerMode.PLAYER_ONE); + @Test + public void checkTileWalkable(){ + + int x = 1, y =1; + if(TileManager.tileMap[y][x] < 10) + assertTrue(player.checkTilePlacing(x,y)); + } +} -- GitLab