@Override
protected EventHandler<MouseEvent> createAcceptHandler() {
return mouseEvent -> {
try {
removeDecoratedContent();
removeAcceptButton();
MapSegmentedImage imageMap = segmentFactory.getRandomPirateNest();
String loadedText = messageSource.getMessage("ch.sahits.game.openpatrician.display.dialog.TavernPirateHunterDialog.acceptMessage", new Object[]{imageMap.getImageName()}, locale.getCurrentLocal());
HashMap<String, Object> parameters = new HashMap<>();
List<Integer> visibleSegs = new ArrayList<>(imageMap.getSegmentIndices());
parameters.put("visibleSegments", visibleSegs);
final DecoratedText dt = decoratedTextFactory.createDecoratedText(loadedText, parameters);
Platform.runLater(() -> getContent().add(dt));
IPirateHunter pirateHunter = (IPirateHunter) currentPerson.get();
final IHumanPlayer player = city.getPlayer();
player.getCompany().updateCash(-pirateHunter.getPremium());
player.setSegmentedMap(imageMap);
locationDetector.addSegment(imageMap);
city.getPlayer().updateCrimialDrive(-1);
pirateHunter.leave();
executeOnCloseButtonClicked();
} catch (RuntimeException e) {
logger.error("Failed to accept pirate hunter offer", e);
}
};
}