public void update(double diff) {
        if (shootTimer <= diff) {
            shoot();
            shootTimer = 500;
        } else shootTimer -= diff;

        if (path.isEmpty()) {
            int directionDiff = 300;

            if (Game.bounds.contains(left ? me.getX() - directionDiff : me.getX() + directionDiff, me.getY(), me.WIDTH, me.HEIGHT) &&
                    level.isTraversable(new Rectangle(left ? me.getX() - directionDiff : me.getX() + directionDiff, me.getY(), me.WIDTH, me.HEIGHT)))
                    path.generatePath(me.getX(), me.getY(), left ? me.getX() - directionDiff : me.getX() + directionDiff, me.getY());
            left = !left;

        } else
            me.traversePath(path);
    }