@Override public void run() { int bounty = (int)(Math.abs(opponent.getCompany().getCash()/2000*rnd.nextDouble())); if (opponent instanceof IHumanPlayer) { opponent.getCompany().updateCash(-bounty); } else { opponent.getCompany().updateCashDirectly(-bounty); } DisplayMessage msg = new DisplayMessage("ch.sahits.game.graphic.event.task.BreakInAction.message", bounty, opponent.getLastName()); clientEventBus.post(msg); }
/** * Calculate the entry fee for the guild based on the company value. * @param player for whom to calculate the entry fee * @return entry fee for the player. */ public int getEntryFee(IPlayer player) { long companyValue = player.getCompany().getCompanyValue(); int min = guildSettings.getMinEntryFee(); int max = guildSettings.getMaxEntryFee(); int span = max - min; if (companyValue <= MIN_COMPANY_VALUE) { return min; } if (companyValue >= MAX_COMPANY_VALUE) { return max; } double factor = companyValue * 1.0 / MAX_COMPANY_VALUE; double fee = min + span * factor; return (int)Math.rint(fee); }
public void bindToPlayer(IPlayer player) { cashTxt.textProperty().bind(player.getCompany().cashProperty().asString()); }
/** * Redistribute the cash between the players and the convoy owner. The amounts deduced in one place are added in the * other. */ private void updatePlayerByCapacityPercentageRedistribution(IPlayer player, IConvoy convoy, Map<IPlayer, Integer> capacityMap, long totalCash) { double totalCapacity = convoy.getCapacity(); ICompany company = player.getCompany(); for (Entry<IPlayer, Integer> entry : capacityMap.entrySet()) { double percentage = entry.getValue()/totalCapacity; long partialAmount = Math.round(totalCash*percentage); IPlayer player1 = entry.getKey(); ICompany company1 = player1.getCompany(); if (player1 instanceof IHumanPlayer) { company1.updateCash(partialAmount); } else { company1.updateCashDirectly(partialAmount); } if (player instanceof IHumanPlayer) { company.updateCash(-partialAmount); } else { company.updateCashDirectly(-partialAmount); } } }
@Override public boolean execute() { ICompany company = player.getCompany(); if (company.getCash() > cashLimit) { ILoaner loaner = loanerService.findLoaner(city); List<IDebt> debts = loanerService.findDebts(loaner, player); for (IDebt debt : debts) { // payback int debtTotal = loanerService.calculatePaybacksum(debt); debt.getCreditor().receiveSum(debtTotal); company.updateCashDirectly(-debtTotal); loaner.getDebts().remove(debt); if (company.getCash() < cashLimit) { break; } } } return true; } }
@Override public boolean shouldTakeLoan(IAIPlayer player) { long cash = player.getCompany().getCash(); return cash < 5000; }
private EventHandler<MouseEvent> createAcceptHandler() { return mouseEvent -> { try { final ICompany company = city.getPlayer().getCompany(); long cash = company.getCash(); final IDebt debt = selectedDebt.get(); int debtTotal = loanerService.calculatePaybacksum(debt); if (cash < debtTotal) { clearContent(); addDecoratedText("ch.sahits.game.openpatrician.display.dialog.LoanerPaybackDialog.noRepay", "noRepay"); } else { debt.getCreditor().receiveSum(debtTotal); company.updateCash(-debtTotal); loaner.getDebts().remove(debt); executeOnCloseButtonClicked(); } } catch (RuntimeException e) { logger.error("Failed to pay back loan", e); } }; } /**
private EventHandler<MouseEvent> joinGuild(final IHumanPlayer player,final ICity city, final int fee) { return mouseEvent -> { try { ICompany company = player.getCompany(); company.updateCash(-fee); IGuild guild = guildList.findGuild(city).get(); guild.join(player); ViewChangeCityPlayerProxyJFX proxy = new ViewChangeCityPlayerProxyJFX(this.city, EViewChangeEvent.MAIN_VIEW_GUILD); clientEventBus.post(new NoticeBoardUpdate(proxy)); executeOnCloseButtonClicked(); } catch (RuntimeException e) { logger.error("Failed to join the quild", e); } }; } }
for (IPlayer player : players) { ICompany company = player.getCompany(); long newCompanyValue = company.getCash(); company.setCompanyValue(newCompanyValue);
MoneyTransfer moneyTransfer = fxUtils.getMoneyTransfer(imageLoader); moneyTransfer.setStepSize(100); moneyTransfer.maxTransfereableProperty().bind(company.cashProperty()); moneyTransfer.setAmount(0); selectionBox = new HBox(5); final int donations = moneyTransfer.getAmount(); treasury.addDonations(donations); company.updateCash(-donations);
@Override public void join(IAIPlayer player, ICity city) { ICompany company = player.getCompany(); Optional<IGuild> maybeGuild = guildList.findGuild(city); IGuild guild = maybeGuild.get(); int fee = guildService.getEntryFee(player); company.updateCashDirectly(-fee); guild.join(player); } }
lines.add(sb.toString()); sb.append(messageSource.getMessage("ch.sahits.game.openpatrician.display.dialog.PersonalDialog.spouseRep3", new Object[]{}, locale.getCurrentLocal())); } else if (city.getCity()==player.getCompany().getHomeTown()){
/** * Even distirbution of the total cash by ship capacity in the convoy. */ private void updatePlayerByCapacityPercentage(IConvoy convoy, Map<IPlayer, Integer> capacityMap, long totalCash) { double totalCapacity = convoy.getCapacity(); for (Entry<IPlayer, Integer> entry : capacityMap.entrySet()) { double percentage = entry.getValue()/totalCapacity; long partialAmount = Math.round(totalCash*percentage); IPlayer player = entry.getKey(); if (player instanceof IHumanPlayer) { player.getCompany().updateCash(partialAmount); } else { player.getCompany().updateCashDirectly(partialAmount); } } }
@Override public boolean shouldOrderCelebration(IAIPlayer player, ICity city) { long cash = player.getCompany().getCash(); return cash > 100000; } }
@Override public boolean execute() { int availableAmount = city.getWare(ware).getAmount(); int sellAmount = vessel.getWare(ware).getAmount(); if (sellAmount > 0) { int sellPrice = computablePrice.sellPrice(getWare(), new SimpleIntegerProperty(availableAmount), new ConstantIntegerBinding(sellAmount)); IAIPlayer player = (IAIPlayer) vessel.getOwner(); ICompany company = player.getCompany(); LOGGER.trace("Before: cash={}, in city={}, on ship={}", company.getCash(), city.getWare(ware).getAmount(), vessel.getWare(ware).getAmount()); company.updateCashDirectly(sellPrice * sellAmount); city.move(getWare(), sellAmount, player); vessel.load(getWare(), sellAmount, sellPrice); LOGGER.trace("Sold {} of {} for a total of: {} ", sellAmount, ware.name(), sellPrice * sellAmount); LOGGER.trace("After: cash={}, in city={}, on ship={}", company.getCash(), city.getWare(ware).getAmount(), vessel.getWare(ware).getAmount()); // TODO ahotz 20.05.2016: handle case where there are ships owned by other players in the convoy } return true; } }
int availableAmountCity = city.getWare(ware).getAmount(); if (availableAmountCity > 0) { long cash = company.getCash(); if (vessel instanceof IConvoy) { IConvoy convoy = (IConvoy) vessel; cash = convoy.getPlayers().stream().mapToLong(p -> p.getCompany().getCash()).sum(); distributeCostsToAllConvoyParticipants((IConvoy) vessel, amountBought, loaded, discountBonus); } else { company.updateCash((long) Math.rint(costsWithoutDiscount * discountBonus));
private EventHandler<MouseEvent> getAction() { return evt -> { try { final ICompany company = city.getPlayer().getCompany(); company.updateCash(-moneyTransfer.getAmount()); city.getCity().getReputation(city.getPlayer()).update(moneyTransfer.getAmount() / 1000); executeOnCloseButtonClicked(); } catch (RuntimeException e) { logger.error("Failed to make a donation to the city", e); } }; }
@Override public boolean execute() { Preconditions.checkArgument(vessel.getLocation().equals(city.getCoordinates()), "Vessel " +vessel.getName()+" is not in city "+city.getName()); IAIPlayer owner = (IAIPlayer) vessel.getOwner(); IAIShipRepairStrategy repairStrategy = owner.getShipRepairStrategyType().getStrategy(); if (repairStrategy.shouldRepair(vessel, city)) { repairStrategy.repair(vessel, city); ICompany company = owner.getCompany(); int costs; if (vessel instanceof IShip) { costs = shipService.calculateRepairCosts(city, (IShip) vessel); } else { costs = shipService.calculateRepairCostsVessel(city, vessel); } company.updateCashDirectly(-costs); LOGGER.debug("Executed repair check, do NOT proceed for vessel {} in {}", vessel.getName(), city.getName()); return false; } LOGGER.debug("Executed repair check, do proceed for vessel {} in {}", vessel.getName(), city.getName()); return true; }
@Override public boolean execute(ICity city) { ((IShip)getShip()).setOccupiedSpace(((IShip)getShip()).getOccupiedSpace() - amount); IPlayer owner = (IPlayer) getShip().getOwner(); if (rnd.nextBoolean()) { int penalty = (int)(Math.abs(owner.getCompany().getCash()/200*rnd.nextDouble())); DisplayMessage msg = new DisplayMessage("ch.sahits.game.event.handler.impl.DeliverPackages.messageCaught", penalty); clientEventBus.post(msg); if (owner instanceof IHumanPlayer) { owner.getCompany().updateCash(-penalty); } else { owner.getCompany().updateCashDirectly(-penalty); } } else { if (owner instanceof IHumanPlayer) { owner.getCompany().updateCash(premium); } else { owner.getCompany().updateCashDirectly(premium); } DisplayMessage msg = new DisplayMessage("ch.sahits.game.event.handler.impl.DeliverPackages.messageSuccess"); clientEventBus.post(msg); } unregisterEventBus(); return false; } @Override
@Override public void run() { if (player instanceof IHumanPlayer) { player.getCompany().updateCash(tenant.getRentPerWeek()); } else { player.getCompany().updateCashDirectly(tenant.getRentPerWeek()); } } }