TournamentPlayerView(TournamentPlayer tournamentPlayer) { this.name = tournamentPlayer.getPlayer().getName(); StringBuilder sb = new StringBuilder(tournamentPlayer.getState().toString()); String stateInfo = tournamentPlayer.getStateInfo(); if (!stateInfo.isEmpty()) { sb.append(" (").append(stateInfo).append(')'); } sb.append(tournamentPlayer.getDisconnectInfo()); this.state = sb.toString(); this.points = tournamentPlayer.getPoints(); this.results = tournamentPlayer.getResults(); this.quit = !tournamentPlayer.isInTournament(); this.history = tournamentPlayer.getPlayer().getUserData().getHistory(); this.flagName = tournamentPlayer.getPlayer().getUserData().getFlagName(); }
public void setQuit(String info, TourneyQuitStatus status) { setEliminated(); this.setState(TournamentPlayerState.CANCELED); this.setStateInfo(info); this.quit = true; this.doneConstructing = true; this.quitStatus = status; }
public void addPlayer(UUID userId, UUID tableId, TournamentPlayer player) throws GameException { if (controllers.containsKey(tableId)) { controllers.get(tableId).addPlayer(userId, player.getPlayer(), player.getPlayerType(), player.getDeck()); } }
public void setStateAtTournamentEnd() { if (this.getState() == TournamentPlayerState.DRAFTING || this.getState() == TournamentPlayerState.CONSTRUCTING || this.getState() == TournamentPlayerState.DUELING || this.getState() == TournamentPlayerState.SIDEBOARDING || this.getState() == TournamentPlayerState.WAITING) { this.setState(TournamentPlayerState.FINISHED); } }
public void setEliminated() { this.setDisconnectInfo(""); this.setState(TournamentPlayerState.ELIMINATED); this.eliminated = true; }
public void updateResults() { for (TournamentPlayer player : players.values()) { player.setResults(""); player.setPoints(0); player.setStateInfo(""); TournamentPlayer tp1 = pair.getPlayer1(); TournamentPlayer tp2 = pair.getPlayer2(); MatchPlayer mp1 = match.getPlayer(pair.getPlayer1().getPlayer().getId()); MatchPlayer mp2 = match.getPlayer(pair.getPlayer2().getPlayer().getId()); if (tp1.getState() == TournamentPlayerState.DUELING) { if (round.getRoundNumber() == getNumberRounds()) { tp1.setState(TournamentPlayerState.FINISHED); } else { tp1.setState(TournamentPlayerState.WAITING); if (tp2.getState() == TournamentPlayerState.DUELING) { if (round.getRoundNumber() == getNumberRounds()) { tp2.setState(TournamentPlayerState.FINISHED); } else { tp2.setState(TournamentPlayerState.WAITING); tp1.setResults(addRoundResult(round.getRoundNumber(), pair, tp1, tp2)); tp2.setResults(addRoundResult(round.getRoundNumber(), pair, tp2, tp1)); tp1.setPoints(tp1.getPoints() + 3); } else if ((!mp2.hasQuit() && mp1.getWins() < mp2.getWins()) || mp1.hasQuit()) { tp2.setPoints(tp2.getPoints() + 3);
protected void draft() { draft = new BoosterDraft((DraftOptions) options.getLimitedOptions(), getSets()); for (TournamentPlayer player: players.values()) { draft.addPlayer(player.getPlayer()); player.setState(TournamentPlayerState.DRAFTING); } tableEventSource.fireTableEvent(EventType.START_DRAFT, null, draft); }
private void checkPlayersState() { for (TournamentPlayer tournamentPlayer : tournament.getPlayers()) { if (!tournamentPlayer.isEliminated() && tournamentPlayer.getPlayer().isHuman()) { if (tournamentSessions.containsKey(tournamentPlayer.getPlayer().getId())) { if (tournamentSessions.get(tournamentPlayer.getPlayer().getId()).isKilled()) { tournamentPlayer.setEliminated(); tournamentPlayer.setStateInfo("disconnected"); } } else { tournamentPlayer.setEliminated(); tournamentPlayer.setStateInfo("no tournament session"); } } } }
if (tournamentPlayer.isInTournament()) { String info; TourneyQuitStatus status; } else if (tournamentPlayer.getState() == TournamentPlayerState.DRAFTING) { info = "during Draft phase"; if (!checkToReplaceDraftPlayerByAi(userId, tournamentPlayer)) { } else if (tournamentPlayer.getState() == TournamentPlayerState.CONSTRUCTING) { info = "during Construction phase"; status = TourneyQuitStatus.DURING_CONSTRUCTION; status = TourneyQuitStatus.NO_TOURNEY_QUIT; tournamentPlayer.setQuit(info, status); tournament.quit(playerId); tournamentSession.quit(); ChatManager.instance.broadcast(chatId, "", tournamentPlayer.getPlayer().getLogName() + " has quit the tournament", MessageColor.BLACK, true, MessageType.STATUS, SoundToPlay.PlayerQuitTournament);
@Override protected void runTournament() { for (Entry<UUID, TournamentPlayer> entry : players.entrySet()) { if (entry.getValue().getPlayer().autoLoseGame()) { entry.getValue().setEliminated(); entry.getValue().setResults("Auto Eliminated"); } } if (options.matchOptions.getNumSeats() == 2) { while (this.getActivePlayers().size() > 1 && this.getNumberRounds() > this.getRounds().size()) { // check if some player got killed / disconnected meanwhile and update their state tableEventSource.fireTableEvent(TableEvent.EventType.CHECK_STATE_PLAYERS); // Swiss pairing Round round = createRoundSwiss(); playRound(round); } } else { options.matchOptions.setAttackOption(MultiplayerAttackOption.MULTIPLE); MultiplayerRound round = createMultiplayerRound(); playMultiplayerRound(round); } nextStep(); }
UUID user1Uuid = null; UUID user2Uuid = null; if (player1.getPlayerType() == PlayerType.HUMAN) { Optional<UUID> user1Id = getPlayerUserId(player1.getPlayer().getId()); if (!user1Id.isPresent()) { logger.fatal("Player 1 not found"); if (player2.getPlayerType() == PlayerType.HUMAN) { Optional<UUID> user2Id = getPlayerUserId(player2.getPlayer().getId()); if (!user2Id.isPresent()) { logger.fatal("Player 2 not found"); pair.setMatch(match); pair.setTableId(table.getId()); player1.setState(TournamentPlayerState.DUELING); player2.setState(TournamentPlayerState.DUELING); }); } catch (GameException ex) {
public void finishPlayersThatPlayedLastRound() { if (match != null && match.hasEnded()) { if (!player1.isEliminated()) { player1.setEliminated(); player1.setState(TournamentPlayerState.FINISHED); } if (!player2.isEliminated()) { player2.setEliminated(); player2.setState(TournamentPlayerState.FINISHED); } } }
StringBuilder sb1 = new StringBuilder(); for (TournamentPlayer tPlayer : table.getTournament().getPlayers()) { sb1.append(tPlayer.getPlayer().getName()).append(" (").append(tPlayer.getPoints()).append(" P.) "); if (!table.getTournament().getRounds().isEmpty()) { for (TournamentPlayer tPlayer : table.getTournament().getPlayers()) { sb2.append(tPlayer.getPlayer().getName()).append(": ").append(tPlayer.getResults()).append(' ');
public void eliminateComputer() { if (!player1.getPlayer().isHuman()) { player1.setEliminated(); return; } if (!player2.getPlayer().isHuman()) { player2.setEliminated(); } }
public void timeout(UUID userId) { if (userPlayerMap.containsKey(userId)) { TournamentPlayer tournamentPlayer = tournament.getPlayer(userPlayerMap.get(userId)); if (tournamentPlayer.getDeck() != null) { tournament.autoSubmit(userPlayerMap.get(userId), tournamentPlayer.generateDeck()); } else { StringBuilder sb = new StringBuilder(); UserManager.instance.getUser(userId).ifPresent(user -> sb.append(user.getName())); sb.append(" - no deck found for auto submit"); logger.fatal(sb); tournamentPlayer.setEliminated(); tournamentPlayer.setStateInfo("No deck for auto submit"); } } }
public void construct() { tableEventSource.fireTableEvent(EventType.CONSTRUCT); if (!isAbort()) { for (final TournamentPlayer player : players.values()) { player.setConstructing(); new Thread( () -> player.getPlayer().construct(TournamentImpl.this, player.getDeck()) ).start(); } // add autosubmit trigger synchronized (this) { while (!isDoneConstructing()) { try { this.wait(); } catch (InterruptedException ex) { } } } } nextStep(); }
public synchronized boolean replaceDraftPlayer(Player oldPlayer, String name, PlayerType playerType, int skill) { Optional<Player> newPlayerOpt = createPlayer(name, playerType, skill); if (!newPlayerOpt.isPresent() || table.getState() != TableState.DRAFTING) { return false; } Player newPlayer = newPlayerOpt.get(); TournamentPlayer oldTournamentPlayer = tournament.getPlayer(oldPlayer.getId()); tournament.removePlayer(oldPlayer.getId()); tournament.addPlayer(newPlayer, playerType); TournamentPlayer newTournamentPlayer = tournament.getPlayer(newPlayer.getId()); newTournamentPlayer.setState(oldTournamentPlayer.getState()); newTournamentPlayer.setReplacedTournamentPlayer(oldTournamentPlayer); DraftManager.instance.getController(table.getId()).ifPresent(controller -> controller.replacePlayer(oldPlayer, newPlayer)); return true; }
if (matchOptions != null && event.getMultiplayerRound() != null) { for (TournamentPlayer player : event.getMultiplayerRound().getAllPlayers()) { matchOptions.getPlayerTypes().add(player.getPlayerType()); if (!player.getPlayer().isHuman()) { player.setJoined(); logger.debug("player " + player.getPlayer().getId() + " has joined tournament " + tournament.getId()); ChatManager.instance.broadcast(chatId, "", player.getPlayer().getLogName() + " has joined the tournament", MessageColor.BLACK, true, MessageType.STATUS, null);
public void submitDeck(UUID playerId, Deck deck) { if (tournamentSessions.containsKey(playerId)) { TournamentPlayer player = tournament.getPlayer(playerId); if (player != null && !player.hasQuit()) { tournamentSessions.get(playerId).submitDeck(deck); ChatManager.instance.broadcast(chatId, "", player.getPlayer().getLogName() + " has submitted their tournament deck", MessageColor.BLACK, true, MessageType.STATUS, SoundToPlay.PlayerSubmittedDeck); } } }