@Override public boolean shouldOrderCelebration(IAIPlayer player, ICity city) { long cash = player.getCompany().getCash(); return cash > 100000; } }
@Override public boolean shouldTakeLoan(IAIPlayer player) { long cash = player.getCompany().getCash(); return cash < 5000; }
@Override public boolean acceptMarriagBrokereOffer(IAIPlayer player) { if (!player.getSpouseData().isPresent()) { long cash = player.getCompany().getCash(); return cash > 100000; } return false; }
@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); } }
/** * {@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; }
for (Iterator<IAIPlayer> iterator = players.iterator(); iterator.hasNext(); ) { IAIPlayer player = iterator.next(); ICompany company = player.getCompany(); if (company.getCash() < auction.getStartingBid() * 3) { iterator.remove();
ICompany company = player.getCompany(); if (company.getCash() < minCash) { return false;
/** * Check weather the vessel should return to the hometown * @param player for whom to check the returnal to the hometown * @param vessel which should return to the hometown * @return true if the vessle should return to the hometown */ @VisibleForTesting boolean shouldReturnToHometown(IAIPlayer player, INavigableVessel vessel) { if (player.getCompany().getCash() < lowMoney) { return true; } else { List<IWare> waresOfInterest = ((SupplyCityMissionData) player.getTradeMission(vessel)).getRequiredWares(); if (vessel.getCapacity() == 0) { for (EWare ware : EWare.values()) { if (vessel.getWare(ware).getAmount() > 0 && !waresOfInterest.contains(ware)) { return false; } } return true; } else { return false; } } }
long cash = player.getCompany().getCash(); int numberOfFreeSlots = getNumberOfEmptyWeaponSlots(ship); // also number of free small slots int numberOfFreeLargeSlots = getNumberOfEmptyLargeWeaponSlots(ship);
long cash = player.getCompany().getCash(); int numberOfFreeSlots = getNumberOfEmptyWeaponSlots(ship); // also number of free small slots int numberOfFreeLargeSlots = getNumberOfEmptyLargeWeaponSlots(ship);
@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; } }
long cash = player.getCompany().getCash(); int numberOfFreeSlots = getNumberOfEmptyWeaponSlots(ship); // also number of free small slots int numberOfFreeLargeSlots = getNumberOfEmptyLargeWeaponSlots(ship);
@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() { 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; } }
player.getCompany().updateCash(-costs); } else { player.getCompany().updateCashDirectly(-costs);