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()); } } }