diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 967cdcf..f2507f4 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -135,30 +135,31 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ boolean overlaps = false; boolean delete = false; - if(Intersector.overlaps(tempObject.getCollisionSprite(), playerSprite)){ - overlaps = true; - - if(d.getCurrentEntities()[i].getId() == 2){ + + if(d.getCurrentEntities()[i].getId() == 2){ + if(Intersector.overlaps(tempObject.getCollisionSprite(), gs.getPlayer().getFullCollisionSprite())){ + overlaps = true; delete = true; d.getCurrentEntities()[i].attack(d.getPlayer()); } - else{ - if(d.getCurrentEntities()[i].getId() != 0){ - switch(gs.entitySprites[i].getAttackState()){ - case 0: - gs.entitySprites[i].startAttack(); - break; - case 1: - break; - case 2: - d.getCurrentEntities()[i].attack(d.getPlayer()); - gs.entitySprites[i].resetAttackState(); - break; - default: - } + } + else if(Intersector.overlaps(tempObject.getCollisionSprite(), playerSprite)){ + + overlaps = true; + if(d.getCurrentEntities()[i].getId() != 0){ + switch(gs.entitySprites[i].getAttackState()){ + case 0: + gs.entitySprites[i].startAttack(); + break; + case 1: + break; + case 2: + d.getCurrentEntities()[i].attack(d.getPlayer()); + gs.entitySprites[i].resetAttackState(); + break; + default: } } - } else{ for(RectangleMapObject rectangleObject : mapObjects.getByType(RectangleMapObject.class)){ @@ -187,6 +188,10 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ } + if(gs.entitySprites[i].getAttackState() == 2 && d.getCurrentEntities()[i].getId() != 0){ + gs.entitySprites[i].resetAttackState(); + } + if(overlaps){ d.getCurrentEntities()[i].setxPos(x); d.getCurrentEntities()[i].setyPos(y); diff --git a/core/src/com/dungeoncrawler/view/EntitySprite.java b/core/src/com/dungeoncrawler/view/EntitySprite.java index 8311a49..eb5ffbc 100644 --- a/core/src/com/dungeoncrawler/view/EntitySprite.java +++ b/core/src/com/dungeoncrawler/view/EntitySprite.java @@ -52,7 +52,7 @@ public class EntitySprite { collisionSprite = new Rectangle(0, 0, 32, 16); } - fullCollisionSprite = sprites[0].getBoundingRectangle(); + this.fullCollisionSprite = sprites[0].getBoundingRectangle(); } public void updateAnimation(Entity e){ @@ -165,6 +165,7 @@ public class EntitySprite { public void updateCollision(int xPos, int yPos){ collisionSprite.setPosition(xPos, yPos); + getFullCollisionSprite().setPosition(xPos, yPos); } public void updateCollisionX(int xPos){ collisionSprite.setX(xPos);