public void scoreFeature(int points, ScoreContext ctx, Player p) {
PointCategory pointCategory = ctx.getMasterFeature().getPointCategory();
p.addPoints(points, pointCategory);
Follower follower = ctx.getSampleFollower(p);
boolean isFinalScoring = getPhase() instanceof GameOverPhase;
ScoreEvent scoreEvent;
if (fairyCapability != null && follower.at(fairyCapability.getFairyPosition())) {
p.addPoints(FairyCapability.FAIRY_POINTS_FINISHED_OBJECT, PointCategory.FAIRY);
scoreEvent = new ScoreEvent(follower.getFeature(), points+FairyCapability.FAIRY_POINTS_FINISHED_OBJECT, pointCategory, follower);
scoreEvent.setLabel(points+" + "+FairyCapability.FAIRY_POINTS_FINISHED_OBJECT);
} else {
scoreEvent = new ScoreEvent(follower.getFeature(), points, pointCategory, follower);
}
scoreEvent.setFinal(isFinalScoring);
post(scoreEvent);
}