game.post(new ScoreEvent(m.getFeature(), points, PointCategory.CASTLE, m));
undeloyMeeple(m);
}
private void scoreCompleted(Completable completable, boolean triggerBuilder) {
CompletableScoreContext ctx = completable.getScoreContext();
completable.walk(ctx);
if (triggerBuilder && builderCap != null) {
for (Meeple m : ctx.getSpecialMeeples()) {
if (m instanceof Builder && m.getPlayer().equals(getActivePlayer())) {
if (!m.at(getTile().getPosition())) {
builderCap.useBuilder();
}
break;
}
}
}
if (ctx.isCompleted()) {
Completable master = (Completable) ctx.getMasterFeature();
if (!alredyScored.contains(master)) {
alredyScored.add(master);
game.scoreCompleted(ctx);
game.scoreCompletableFeature(ctx);
undeployMeeples(ctx);