public void attackEnemy() { if (targetGrunt != null) { float speed = this.getJogSpeed(); if (this.getPosBox().getX() < (targetGrunt.getPosBox().getX() - this.getAttackDistance())) { this.getPosBox().setX(this.getPosBox().getX() + speed); } else if (this.getPosBox().getX() > (targetGrunt.getPosBox().getX() + this.getAttackDistance())) { this.getPosBox().setX(this.getPosBox().getX() - speed); } else { // Within attacking distance if (targetGrunt != null) { targetGrunt.setHp(targetGrunt.getHp() - this.getAtk()); } if (targetGrunt.getHp() <= 0) { targetGrunt = null; STATE state = currentState; currentState = prevState; prevState = state; } } } else { STATE state = currentState; currentState = prevState; prevState = state; } }