private void addAdjoiningCompletedCities(Feature[] adjoiningCities) {
   for (Feature feature : adjoiningCities) {
     if (feature instanceof City) {
       City c = (City) feature;
       CityScoreContext ctx = cityCache.get(c);
       if (ctx == null) {
         ctx = c.getScoreContext();
         ctx.setCityCache(cityCache);
         c.walk(ctx);
       }
       if (ctx.isCompleted()) {
         adjoiningCompletedCities.put((City) ctx.getMasterFeature(), ctx);
       }
     } else if (feature instanceof Castle) {
       adjoiningCastles.add((Castle) feature.getMaster());
     }
   }
 }