private void handleAuction(IAuction auction, IGuild guild) { List<IAIPlayer> bidders = aiPlayers.findAIPlayersCurrentlyInCity(guild.getCity()); bidders.removeIf(player -> !guild.getMembers().contains(player)); auctionEngine.startAuction(auction, bidders); } }
/** * {@inheritDoc} * Base requirements are: there has to be a guild, not yet a member and enough money to join. * @param player who should decide on joining * @param city where to join * @param vessel possible vessel in the city * @return */ @Override public boolean shouldJoin(IAIPlayer player, ICity city, Optional<INavigableVessel> vessel) { Optional<IGuild> maybeGuild = guildList.findGuild(city); if (maybeGuild.isPresent()) { IGuild guild = maybeGuild.get(); if (guild.getMembers().contains(player)) { return false; } else { ICompany company = player.getCompany(); int fee = guildService.getEntryFee(player); return fee * ENTRY_FEE_FACTOR < company.getCash() && additionalJoinRequirementsMet(player, city, vessel); } } return false; }
IGuild guild = guildOpt.get(); if (!guild.getMembers().contains(player)) { String s = messageSource.getMessage("ch.sahits.game.openpatrician.display.notice.NoticeBoardFactory.guild.join", new Object[]{}, locale.getCurrentLocal()); NoticeBoardMenuEntry entry = createNoticeBoardEntry(s, EDialogType.GUILD_JOIN); if (guild.getMembers().contains(player)) { String s = messageSource.getMessage("ch.sahits.game.openpatrician.display.notice.NoticeBoardFactory.guild.members", new Object[]{}, locale.getCurrentLocal()); NoticeBoardMenuEntry entry = createNoticeBoardEntry(s, EDialogType.GUILD_MEMBERS);
@PostConstruct private void initializeDialog() { setTitle(messageSource.getMessage("ch.sahits.game.openpatrician.display.dialog.guild.GuildMembersDialog.title", new Object[]{}, locale.getCurrentLocal())); ICity city = this.city.getCity(); IGuild guild = guildList.findGuild(city).get(); if (guild.getMembers().isEmpty()) { String template = messageSource.getMessage("ch.sahits.game.openpatrician.display.dialog.guild.GuildMembersDialog.noMembers", new Object[]{city.getName()}, locale.getCurrentLocal()); DecoratedText text = textFactory.createDecoratedText(template, new HashMap<>()); text.setId("noMembers"); box = new VBox(text); box.setLayoutY(CLOSE_BTN_Y_POS - 500); getContent().addAll(box); } else { List<IPlayer> members = guild.getMembers(); List<IItemNavigatorLabelWrapper<IPlayer>> wrappedList = itemWrapperFactory.createNonLabeledListForPlayer(members); ItemNavigator<IPlayer> itemNavigator = new ItemNavigator<>(wrappedList); initializeContent(itemNavigator); if (members.size() > 1) { Group centerPane = dialogHelper.center(itemNavigator); box.getChildren().addAll(dialogHelper.createVerticalSpacer(50), centerPane); } } }
private boolean isNextRankAchievable(IPlayer player){ ESocialRank rank = player.getRank(); if (rank==ESocialRank.PATRICIAN || rank==ESocialRank.MAYOR || rank==ESocialRank.ALDERMAN){ return false; } final ICompany company = player.getCompany(); ICity homeTown = player.getHometown(); long compValue = company.getCompanyValue(); ESocialRank nextRank = rank.getNextRank(); double remapedRep = repCalculator.remapReputation(homeTown, player); if (compValue>=nextRank.getCompanyValue() && remapedRep>=nextRank.getSocialRank()){ if (nextRank==ESocialRank.COUNCILMAN){ IGuild guild = guildList.findGuild(homeTown).get(); return guild.getMembers().contains(player); } return true; } return false; }