List<IPlayer> getHumanPlayers() { return players.stream().filter(p -> p instanceof IHumanPlayer).collect(Collectors.toList()); } @Subscribe
/** * Create a human player instance. Build their trading office in the home town as well. * @param name first name of the player * @param lastName last name of the player * @param homeTown reference to the player's hometown * @param male flag indicating if the player is male * @param cash initial cash amount of the player * @param color player color * @return Human player instance */ public IHumanPlayer createPlayer(String name, String lastName, ICity homeTown, boolean male, int cash, EPlayerColor color) { int age = rnd.nextInt(10)+17; PersonalData pd = new PersonalData(name, lastName, male, homeTown, computeRandomBirthDate(age)); Company company = createCompany(homeTown, cash); IHumanPlayer player = (IHumanPlayer) context.getBean("humanPlayer", new Object[]{homeTown, pd,ESocialRank.CHANDLER, company, color}); company.setOwner(player); ITradingOffice office = buildingFactory.createTradingOffice(player, homeTown, 0); // initial trading office has no value offices.add(office); initPlayerInCities(player); players.add(player); return player; } /**
context.add(shipUpgradeStrategies.get(rnd.nextInt(shipUpgradeStrategies.size()))); players.add(player); aiPlayers.add(player); return player;