@Override public void run() { ship.repair(); shipyard.removeCompletedRepair(ship); ship.setAvailable(true); LOGGER.debug("Repaired ship {}", ship.getName()); clientServerEventBus.post(new RepairFinishedEvent(ship)); } }
/** * Handle the event for the finished repair. * @param event repair has finished */ @Subscribe public void handleRepairFinished(RepairFinishedEvent event) { if (handlePirateShip(event.getShip())) { INavigableVessel vessel = event.getShip(); Point2D destination = mapService.getRandomPointAtSeaNear(vessel.getLocation()); seafaringService.travelFromCity(vessel, destination); vessel.togglePirateFlag(); } }
@Override public void run() { if (vessel instanceof IShip) { IShip ship = (IShip) vessel; executeRepair(ship); } else { for (IShip ship : ((IShipGroup)vessel).getShips()) { executeRepair(ship); } } clientServerEventBus.post(new RepairFinishedEvent(vessel)); }
/** * Handle the event of the ship coming back from repair and the trade steps have to * be picked up again. * @param event ship repair has finished */ @Subscribe public void handleRepairFinished(RepairFinishedEvent event) { INavigableVessel vessel = event.getShip(); IAIPlayer player = (IAIPlayer) vessel.getOwner(); if (isMatchingTradeStrategy(vessel)) { Preconditions.checkArgument(hasMoreTradeSteps(player, vessel), "There most be steps defined after repair for "+vessel.getName()+" of "+player.getName()+" "+player.getLastName()); player.updateTradeWaitingStatus(vessel, false); executeTradeSteps(player, vessel); } }
@Override public void run() { ship.repair(); shipyard.removeCompletedRepair(ship); ship.setAvailable(true); city.getPlayersShips().add(ship); if (city.getPlayersShips().size() == 1) { city.activateShip(ship); } final IShipOwner owner = ship.getOwner(); if (owner instanceof IHumanPlayer) { DisplayMessage msg = new DisplayMessage("ch.sahits.game.openpatrician.engine.event.task.RepairTask.message", new Object[]{ship.getName()}); TargetedEvent displayMessage = new TargetedEvent((IHumanPlayer) owner, msg); clientServerEventBus.post(displayMessage); } else { clientServerEventBus.post(new RepairFinishedEvent(ship)); } } }