@Override public void loadFromSnapshot(Document doc, Element node) { NodeList nl = node.getElementsByTagName("player"); for (int i = 0; i < nl.getLength(); i++) { Element playerEl = (Element) nl.item(i); Player player = game.getPlayer(Integer.parseInt(playerEl.getAttribute("index"))); castles.put(player, Integer.parseInt(playerEl.getAttribute("castles"))); } nl = node.getElementsByTagName("castle"); for (int i = 0; i < nl.getLength(); i++) { Element castleEl = (Element) nl.item(i); Position pos = XMLUtils.extractPosition(castleEl); Location loc = Location.valueOf(castleEl.getAttribute("location")); Castle castle = convertCityToCastle(pos, loc, true); boolean isNew = XMLUtils.attributeBoolValue(castleEl, "new"); boolean isCompleted = XMLUtils.attributeBoolValue(castleEl, "completed"); if (isNew) { newCastles.add(castle); } else if (isCompleted) { emptyCastles.add(castle); } else { scoreableCastleVicinity.put(castle, castle.getVicinity()); } } }
@Override public void turnPartCleanUp() { for (Castle castle : newCastles) { scoreableCastleVicinity.put(castle, castle.getVicinity()); } newCastles.clear(); castleScore.clear(); }