public Optional<ISpouseData> calculateSpouseDeath(IPlayer player, ICity city) { Optional<ISpouseData> killedSpouse = Optional.empty(); if (player.getHometown().equals(city) && player.getSpouseData().isPresent()) { if (rnd.nextInt(5) == 0) { killedSpouse = Optional.of(player.getSpouseData().get()); player.spouseDies(); } } return killedSpouse; } /**
/** * Trigger the event for a marriage broker. * @param event ship entered port */ @Subscribe public void handleShipEntersPort(ShipEntersPortEvent event) { INavigableVessel ship = event.getShip(); if (ship.getOwner() instanceof IPlayer && disableService.randomEventsEnabled()) { IPlayer player = (IPlayer) ship.getOwner(); // Marriage broker to initialize marriage // unmarried and not already in negotiation. Optional<EEventState> marriageState = eventState.getMarriageState(player); boolean meetBroker = rnd.nextInt(30) < 2; // 5% chance to meet a broker. if (!player.getSpouseData().isPresent() && marriageState != null && meetBroker && !marriageState.isPresent()) { if (player instanceof IAIPlayer) { MarriageBrokerAnnouncementState state = createMarriageBrokerAnnouncementState(event, ship); aiEventHandler.handleMarriageEvent((IAIPlayer) player, state); } else if (player instanceof IHumanPlayer) { MarriageBrokerAnnouncementState state = createMarriageBrokerAnnouncementState(event, ship); eventService.postToHumanPlayer(state, player, "ch.sahits.game.openpatrician.engine.event.EventEngine.message.marriageOffer.title"); clientServerEventBus.post(new TargetedEvent((IHumanPlayer) player, state)); eventState.setMarriageState(player, EEventState.MARRIAGE_UNDER_CONSIDERATION); } } } }
box.getChildren().add(text); if (member.getSpouseData().isPresent()) { ISpouseData spouseData = member.getSpouseData().get(); template = messageSource.getMessage("ch.sahits.game.openpatrician.display.dialog.guild.GuildMembersDialog.married", new Object[]{spouseData.getName(), spouseData.getLastName(), spouseData.getBirthPlace().getName()}, locale.getCurrentLocal());
if (player.getSpouseData().isPresent()) { ISpouseData spouseData = player.getSpouseData().get(); createAndAddNewText(box, messageSource.getMessage("ch.sahits.game.openpatrician.display.dialog.PersonalDialog.married", new Object[]{ getPrefix(spouseData),
boolean childBirth = false; boolean spouseDeath = false; if (player.getSpouseData().isPresent() && !catastopheEvent) { childBirth = rnd.nextInt(400 * (player.getChildren().size() + 1)) == 42; int spouseDeathPropLimit = 5000;