private boolean canBeCandidate(IPlayer player, ICity town) { ESocialRank rank = player.getRank(); if (rank == ESocialRank.COUNCILMAN || rank == ESocialRank.PATRICIAN || rank == ESocialRank.MAYOR || rank == ESocialRank.ALDERMAN) { final ICity hometown = player.getHometown(); return town.equals(hometown); } return false; }
/** * Petition can be requested in the hometown if the player is counsilman, patrician or mayor, or in any city if the player is alerman. * @param town for which the petition capability is checked * @param player for whom to check the petition capability * @return true if the player can pose a petition */ private boolean canPosePetition(ICity town, IPlayer player) { ESocialRank rank = player.getRank(); if (cityHallAccessor.getCityHall(town).getPetition().isPresent()) { return false; // Only allow one petition at a time } if (rank == ESocialRank.COUNCILMAN || rank == ESocialRank.PATRICIAN || rank == ESocialRank.MAYOR) { final ICity hometown = player.getHometown(); if (town.equals(hometown)) { return true; } } return rank == ESocialRank.ALDERMAN; }
int amountMediumInCity = city.getPopulation(EPopulationClass.MEDIUM); int amountRichInCity = city.getPopulation(EPopulationClass.RICH); switch (player.getRank()) { case CHANDLER: nbGuests.put(EPopulationClass.POOR, (int) (amountPoorInCity * 0.4));
ESocialRank rank = player.getRank(); ArrayList<String> lines = new ArrayList<>(); if (rank!=ESocialRank.ALDERMAN && rank!=ESocialRank.MAYOR){
private boolean isReputationTooLow(IPlayer player) { ESocialRank rank = player.getRank(); ESocialRank nextRank = rank.getNextRank(); double remapedRep = repCalculator.remapReputation(player.getHometown(), player); return remapedRep < nextRank.getSocialRank(); }
private boolean notEnoughMoney(IPlayer player) { ESocialRank rank = player.getRank(); ESocialRank nextRank = rank.getNextRank(); final ICompany company = player.getCompany(); long compValue = company.getCompanyValue(); return compValue < nextRank.getCompanyValue(); }
/** * Calculate the current career level of the player. * @param city in which to calculate hte career level * @param player for whom to calculate the career level * @return career level of the player. */ public ICareer calculateCareer(ICity city, IPlayer player) { ESocialRank rank = player.getRank(); int nbAvailableLevels = getAvailableLevels(rank, player); double totalReputationDelta = calculateDelta(rank); double reputation = remapReputation(city, player); double startLevelRep = rank.getSocialRank(); double reqiredRepTillNextRank = Math.max(reputation - startLevelRep, 0); double percentage = reqiredRepTillNextRank / totalReputationDelta; int index = (int) Math.rint(nbAvailableLevels * percentage); if (player.getCriminalDrive() > 0) { return EMilitantCareer.values()[rank.getCareerLowerOffset()+index]; } else { return EEconomicCareer.values()[rank.getCareerLowerOffset()+index]; } } @VisibleForTesting
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; }
private DecoratedText getCandidateRow(ICitizen candidate) { Object[] args; String template; DecoratedText text; if (candidate instanceof IPlayer) { IPlayer p = (IPlayer) candidate; args = new Object[]{modelTranslator.getLocalDisplayDistinctArticle(p.getPersonalData().isMale(), true), modelTranslator.getLocalDisplayName(p.getCareerLevel()), modelTranslator.getLocalDisplayName(p.getRank()), p.getName()+" "+p.getLastName()}; } else { args = new Object[]{modelTranslator.getLocalDisplayDistinctArticle(true, true), modelTranslator.getLocalDisplayName(EEconomicCareer.SMART), modelTranslator.getLocalDisplayName(candidate.getRank()), candidate.getName()+" "+candidate.getLastName()}; } template = messageSource.getMessage("ch.sahits.game.openpatrician.display.dialog.cityhall.TownInfoNotice.candidate", args, locale.getCurrentLocal()); text = textFactory.createDecoratedText(template, new HashMap<>()); return text; }
private DecoratedText getCandidateRow(ICitizen candidate) { Object[] args; String template; DecoratedText text; if (candidate instanceof IHumanPlayer) { IPlayer p = (IPlayer) candidate; args = new Object[]{modelTranslator.getLocalDisplayDistinctArticle(p.getPersonalData().isMale(), true), modelTranslator.getLocalDisplayName(p.getCareerLevel()), modelTranslator.getLocalDisplayName(p.getRank()), p.getName()+" "+p.getLastName()}; } else { args = new Object[]{modelTranslator.getLocalDisplayDistinctArticle(true, true), modelTranslator.getLocalDisplayName(EEconomicCareer.SMART), modelTranslator.getLocalDisplayName(candidate.getRank()), candidate.getName()+" "+candidate.getLastName()}; } template = messageSource.getMessage("ch.sahits.game.openpatrician.display.dialog.cityhall.TownInfoNotice.candidate", args, locale.getCurrentLocal()); text = textFactory.createDecoratedText(template, new HashMap<>()); return text; }
for (IPlayer opponent : residentOponents) { String sb = messageSource.getMessage("ch.sahits.game.openpatrician.display.dialog.TavernBurglarDialog.list", new Object[]{modelTranslator.getLocalDisplayName(opponent.getCareerLevel()), modelTranslator.getLocalDisplayName(opponent.getRank()), opponent.getName(), opponent.getLastName(), opponent.getHometown().getName()}, locale.getCurrentLocal()); DecoratedText text = textFactory.createDecoratedText(sb, new HashMap<>()); text.setUserData(opponent);
private DecoratedText getCandidateRow(ICitizen candidate, IElectionResult result) { Object[] args; String template; DecoratedText text; if (candidate instanceof IHumanPlayer) { IPlayer p = (IPlayer) candidate; args = new Object[]{modelTranslator.getLocalDisplayDistinctArticle(p.getPersonalData().isMale(), true), modelTranslator.getLocalDisplayName(p.getCareerLevel()), modelTranslator.getLocalDisplayName(p.getRank()), p.getName()+" "+p.getLastName()}; } else { args = new Object[]{modelTranslator.getLocalDisplayDistinctArticle(true, true), modelTranslator.getLocalDisplayName(EEconomicCareer.SMART), modelTranslator.getLocalDisplayName(candidate.getRank()), candidate.getName()+" "+candidate.getLastName()}; } template = messageSource.getMessage("ch.sahits.game.openpatrician.display.dialog.cityhall.TownInfoNotice.candidate", args, locale.getCurrentLocal()); text = textFactory.createDecoratedText(template, new HashMap<>()); text.setOnMouseReleased((evt) -> { result.vote(candidate); executeOnCloseButtonClicked(); }); return text; }
int popHer = 0; int popYour = 0; ESocialRank rank = player.getRank(); switch (rank) { case CHANDLER:
IShip ship = contract.getOutrigger(); IPlayer owner = (IPlayer) ship.getOwner(); Object[] args = new Object[]{modelTranslator.getLocalDisplayNameWithArticle(ship.getShipType(), true), ship.getName(), modelTranslator.getLocalDisplayName(owner.getCareerLevel()), modelTranslator.getLocalDisplayName(owner.getRank()), owner.getName()+ " "+owner.getLastName()}; template = messageSource.getMessage("ch.sahits.game.openpatrician.display.dialog.cityhall.OutriggerNoticeDialog.outriggerOwner", args, locale.getCurrentLocal()); text = textFactory.createDecoratedText(template, new HashMap<>());
modelTranslations.getLocalDisplayName(member.getRank()), member.getName(), member.getLastName(), member.getHometown().getName(), modelTranslations.toDisplayString(foundingDate), oldest.getCity().getName()}, locale.getCurrentLocal()); DecoratedText text = textFactory.createDecoratedText(template, new HashMap<>());
personalData.getLastName(), modelTranslator.getLocalDisplayName(player.getCareerLevel()), modelTranslator.getLocalDisplayName(player.getRank()) }, locale.getCurrentLocal()));
@PostConstruct private void initializeDialog() { String letterDate = modelTranslations.toDisplayString(state.getDate()); addDecoratedText("letter.location.date", "dateLocation", Pos.CENTER_RIGHT, state.getLocation(), letterDate); addVerticalSpacer(20); addDecoratedText("ch.sahits.game.openpatrician.display.dialog.event.BuildingPermissionDialog.title", "title", Pos.CENTER); addVerticalSpacer(20); IPlayer player = state.getPlayer(); String careerLevel = modelTranslations.getLocalDisplayName(player.getCareerLevel()); String rank = modelTranslations.getLocalDisplayName(player.getRank()); addDecoratedText("letter.salutation.with.title", "salutation", careerLevel, rank, player.getName(), player.getLastName()); addVerticalSpacer(20); addDecoratedText("ch.sahits.game.openpatrician.display.dialog.event.BuildingPermissionDialog.permission", "permission", state.getLocation()); addDecoratedText("ch.sahits.game.openpatrician.display.dialog.event.BuildingPermissionDialog.greetings", "greetings"); addVerticalSpacer(20); addDecoratedText("ch.sahits.game.openpatrician.display.dialog.event.BuildingPermissionDialog.signature", "signature", Pos.CENTER_RIGHT, state.getLocation()); } }
public void doMonthlyCheck() { // TODO: andi 1/9/17 appropriate messages for mayor, alderman, tradesman for (IPlayer player : players) { ESocialRank rank = player.getRank(); if (isNextRankAchievable(player)){ ESocialRank nextRank = rank.getNextRank();