public Set<Location> getUnoccupiedScoreables(boolean excludeCompleted) {
Set<Location> locations = new HashSet<>();
for (Feature f : features) {
//if (f instanceof Farm && !game.hasCapability(Capability.FARM_PLACEMENT)) continue;
if (f instanceof Scoreable) {
IsOccupied visitor;
if (excludeCompleted && f instanceof Completable) {
visitor = new IsOccupiedOrCompleted();
} else {
visitor = new IsOccupied();
}
if (f.walk(visitor)) continue;
locations.add(f.getLocation());
}
}