private boolean isFleetLargeEnough(IPlayer player) { return player.getFleet().size() > 8; } }
@Subscribe public void handleGameLoad(GameStateChange gameStateChange) { if (gameStateChange.getStatusChange() == EGameStatusChange.GAME_LOADED) { int nbShips = 0; for (IAIPlayer player : aiPlayers) { nbShips += player.getFleet().size(); } for (IPlayer player : players) { nbShips += player.getFleet().size(); } updateSegmentSize(nbShips); } } }
@VisibleForTesting void addToFleet(IShip ship, IShipOwner owner) { if (owner instanceof IPlayer) { ((IPlayer)owner).getFleet().add(ship); } if (owner instanceof ISeaPirate) { ISeaPirate pirate = (ISeaPirate) owner; IShipGroup oldGroup = pirate.getShip() instanceof IShipGroup ? (IShipGroup) pirate.getShip() : null; if (oldGroup != null) { oldGroup.addShip(ship); } else { ArrayList<IShip> ships = new ArrayList<>(); ships.add((IShip) pirate.getShip()); ships.add(ship); IShipGroup group = regroup(ships, (IShipGroup) null); ((SeaPirate)pirate).setShip(group); } } } @VisibleForTesting
@VisibleForTesting void removeFromFleet(IShip ship, IShipOwner owner) { if (owner instanceof IPlayer) { ((IPlayer) owner).getFleet().remove(ship); } if (owner instanceof ISeaPirate) { ISeaPirate pirate = (ISeaPirate) owner; IShipGroup oldGroup = pirate.getShip() instanceof IShipGroup ? (IShipGroup) pirate.getShip() : null; if (oldGroup != null) { oldGroup.removeShip(ship); if (oldGroup.getShips().size() == 1) { ((SeaPirate)pirate).setShip(oldGroup.getShips().get(0)); ((DependentAnnotationConfigApplicationContext)context).removePrototypeBean(oldGroup); } } else { piratesState.remove(pirate); ((DependentAnnotationConfigApplicationContext)context).removePrototypeBean(pirate); } } }
for (IShip ship : player.getFleet()) { sb.append("\tShip ") .append(ship.getShipType())
public void initializeNewBlockade(ICity city) { LocalDateTime assemblyDate = date.getCurrentDate().plusDays(21); int variance = rnd.nextInt(120) - 60; LocalDateTime endBlockage = assemblyDate.plusDays(120 + variance); Blockade blockade = (Blockade) context.getBean("blockade", assemblyDate, endBlockage); ICity assemblyPoint = mapService.getAldermanCity(); boolean anyShipRequested = false; for (IPlayer player : players) { int fleetSize = player.getFleet().size(); int nbShips = Math.min(fleetSize/10, 3); if (nbShips > 0) { anyShipRequested = true; blockade.requestShip(player, nbShips); if (player instanceof IHumanPlayer) { String dateAsString = modelTranslationService.toDisplayString(assemblyDate); DisplayMessage msg = new DisplayMessage("ch.sahits.game.openpatrician.engine.sea.BlockadeEngine.blockadeRequest", new Object[]{city.getName(), nbShips, dateAsString, assemblyPoint.getName()}); TargetedEvent targetMsg = new TargetedEvent((IHumanPlayer) player, msg); clientServerEventBus.post(targetMsg); } else { BlockadeShipRequestEvent event = new BlockadeShipRequestEvent(assemblyPoint, nbShips, (IAIPlayer) player); clientServerEventBus.post(event); // this could also be sent on the serverside only } } } if (anyShipRequested) { blockadeState.addBlockade(city, blockade); } }
@VisibleForTesting void pawnFromHumanDebitor(final IDebt debt, final ICity city) { // pawn a ship and auction it int sum = (int) (debt.getAmount() * debt.getInterest()); final IPlayer debitor = (IPlayer) debt.getDebitor(); IShip shipMatch = null; int maxDelta = Integer.MAX_VALUE; for (IShip ship : debitor.getFleet()) { int shipValue = ship.getValue(); if (Math.abs(shipValue - sum) < maxDelta) { maxDelta = Math.abs(shipValue - sum); shipMatch = ship; } } if (shipMatch != null) { LocalDateTime auctionDate = date.getCurrentDate().plusDays(10); // Add auction to guild IGuild guild = guildList.findGuild(city).get(); auctionDate = guildService.cleanUpAuctionAndDetermineAuctionDate(auctionDate, guild); IShipAuction auction = modelFactory.createShipAuction(auctionDate, shipMatch.getValue(), debitor, shipMatch); guild.getAuctions().add(auction); final LocalDateTime dateCollectMoney = auctionDate.plusDays(1); TimedTask collectMoney = taskFactory.getLoanerCollectMoneyAfterAuctionTask(debt, dateCollectMoney); taskList.add(collectMoney); } else { final LocalDateTime dateCollectMoney = date.getCurrentDate(); TimedTask collectMoney = taskFactory.getLoanerCollectMoneyTask(debt, debitor, dateCollectMoney); taskList.add(collectMoney); } }
List<IShip> fleet = player.getFleet(); for (IShip ship : fleet) { double sailorSalary = ship.getNumberOfSailors() * dailySailorCost;
ArrayList<IShip> ships = new ArrayList<>(); int requestedNumber = blockade.getNumberOfRequestedShips(player); for (IShip ship : player.getFleet()) { if (ship.getLocation().equals(aldermanCity.getCoordinates())) { ships.add(ship);
new Object[]{offices.size(), member.getFleet().size()}, locale.getCurrentLocal()); text = textFactory.createDecoratedText(template, new HashMap<>()); text.setId("details");
removeDefeatedShips(convoy, 0); } else { owner.getFleet().remove(ship);
long newCompanyValue = company.getCash(); List<IShip> ships = player.getFleet(); for (IShip ship : ships) { newCompanyValue += ship.getValue();