public void buildTipMap() {
        tipMap.clear();
        for (AIColony aic : getAIColonies()) {
            for (TileImprovementPlan tip : aic.getTileImprovementPlans()) {
                if (!validateTileImprovementPlan(tip)) {
                    aic.removeTileImprovementPlan(tip);
                    continue;
                }
                if (tip.getPioneer() != null) continue;
                TileImprovementPlan other = tipMap.get(tip.getTarget());
                if (other == null || other.getValue() < tip.getValue()) {
                    tipMap.put(tip.getTarget(), tip);
                }
            }
        }
    }