public void update() {
        if (!arrived) {
            if (Point2D.distance(currentTileX, currentTileY, endTile.getX(), endTile.getY()) < velocity) {
                currentTileX = endTile.getX();
                currentTileY = endTile.getY();
                arrived = true;
                dealDamage();
                boom = new Explosion(currentTileX, currentTileY);
            } else {
                currentTileX += Math.cos(angle) * velocity;
                currentTileY += Math.sin(angle) * velocity;
            }
        } else if (!finished) {
            boom.update();
            if (boom.isFinished()) {
                finished = true;
            }
        }
    }