示例#1
0
 private void checkLost(Game gameByGameId) {
   for (Player player : gameByGameId.getPlayers()) {
     if (player.getColonies().size() == 0) {
       gameByGameId.setLoserPlayerId(player.getPlayerId());
     }
   }
 }
示例#2
0
  @Override
  public void endTurn(Integer playerID) {
    Player player = playerRepository.getPlayerByPlayerId(playerID);
    Game game = player.getGame();
    if (!player.isTurnEnded()) {
      int commandPoints = player.getCommandPoints();
      player.setCommandPoints(commandPoints + COMMANDPOINTS_PER_TURN);
      player.setTurnEnded(true);

      boolean allTurnsEnded = true;
      List<Player> players = game.getPlayers();
      for (Player p : players) {
        if (!p.isTurnEnded()) {
          allTurnsEnded = false;
        }
      }
      if (allTurnsEnded) {
        for (Player p : players) {
          p.setTurnEnded(false);
        }
      }
    } else {
      throw new SpaceCrackNotAcceptableException("Turn is already ended");
    }
    gameSynchronizer.updateGame(game);
  }
示例#3
0
 @Override
 public void acceptGameInvite(int gameId) {
   Game game = getGameByGameId(gameId);
   for (Player p : game.getPlayers()) {
     p.setRequestAccepted(true);
   }
   gameSynchronizer.updateGame(game);
 }
示例#4
0
  @Override
  public int createGame(Profile userProfile, String gameName, Profile opponentProfile) {
    Game game = new Game();

    Player player1 = new Player();
    Player player2 = new Player();

    userProfile.addPlayer(player1);
    opponentProfile.addPlayer(player2);

    player1.setCommandPoints(START_COMMAND_POINTS);
    player2.setCommandPoints(START_COMMAND_POINTS);

    player1.setRequestAccepted(true);
    player2.setRequestAccepted(false);

    player1.setGame(game);
    player2.setGame(game);

    Planet planetA = planetRepository.getPlanetByName("a");
    Planet planetA3 = planetRepository.getPlanetByName("a3");

    Ship player1StartingShip = new Ship(planetA);
    Ship player2StartingShip = new Ship(planetA3);

    player1StartingShip.setStrength(NEW_SHIP_STRENGTH);
    player2StartingShip.setStrength(NEW_SHIP_STRENGTH);

    player1StartingShip.setPlayer(player1);
    player2StartingShip.setPlayer(player2);

    Colony player1StartingColony = new Colony(planetA);
    Colony player2StartingColony = new Colony(planetA3);

    player1StartingColony.setStrength(NEW_COLONY_STRENGHT);
    player2StartingColony.setStrength(NEW_COLONY_STRENGHT);

    player1StartingColony.setPlayer(player1);
    player2StartingColony.setPlayer(player2);

    game.setName(gameName);

    gameRepository.createOrUpdateGame(game);

    return game.getGameId();
  }
示例#5
0
 @Override
 public Player getActivePlayer(User user, Game game) {
   for (Player p : user.getProfile().getPlayers()) {
     for (Player gamePlayer : game.getPlayers()) {
       if (gamePlayer.getPlayerId() == p.getPlayerId()) {
         return gamePlayer;
       }
     }
   }
   throw new SpaceCrackUnexpectedException("This user isn't playing this game");
 }
示例#6
0
 private void validateActionMakeSureGameIsNotFinishedYet(Game game) {
   if (game.getLoserPlayerId() != 0) {
     throw new SpaceCrackNotAcceptableException("Game is already finished.");
   }
 }