private boolean validBulletPath(Matrix matrix, Square location, Square target, int distance) {
		ArrayList<Node> shortestRoute = matrix.shortestRoute(location, target, distance, true);
		if (shortestRoute == null) {
			return false;
		}
		for (Node node : shortestRoute) {
			if (!(node instanceof Square)) {
				return false;
			} else if (node instanceof Door) {
				if (!((Door)node).isOpen()) {
					return false;
				}
			}
		}
		return true;
	}