public MatchPlayer(Player player, Deck deck, Match match) { this.player = player; this.deck = deck; this.wins = 0; this.winsNeeded = match.getWinsNeeded(); this.doneSideboarding = true; this.quit = false; //this.timerTimeout = false; this.name = player.getName(); this.matchWinner = false; }
@Override public String getWinner() { if (winnerId == null) { return "Game is a draw"; } return "Player " + state.getPlayer(winnerId).getName() + " is the winner"; }
public String getPlayerNameList() { StringBuilder sb = new StringBuilder(" ["); for (UUID playerId : userPlayerMap.values()) { Player player = game.getPlayer(playerId); if (player != null) { sb.append(player.getName()).append("(Left=").append(player.hasLeft() ? "Y" : "N").append(") "); } else { sb.append("player missing: ").append(playerId).append(' '); } } return sb.append(']').toString(); }
protected void logLife(Game game) { StringBuilder sb = new StringBuilder(); sb.append(game.getTurn().getValue(game.getTurnNum())); for (Player player: game.getPlayers().values()) { sb.append("[player ").append(player.getName()).append(':').append(player.getLife()).append(']'); } logger.info(sb.toString()); }
private Optional<Player> createPlayer(String name, PlayerType playerType, int skill) { Optional<Player> playerOpt; if (options == null) { playerOpt = PlayerFactory.instance.createPlayer(playerType, name, RangeOfInfluence.ALL, skill); } else { playerOpt = PlayerFactory.instance.createPlayer(playerType, name, options.getRange(), skill); } if (playerOpt.isPresent()) { Player player = playerOpt.get(); logger.trace("Player " + player.getName() + " created id: " + player.getId()); } return playerOpt; }
private void processControlledPlayers(Player player, GameView gameView) { if (!player.getPlayersUnderYourControl().isEmpty()) { Map<String, SimpleCardsView> handCards = new HashMap<>(); for (UUID controlledPlayerId : player.getPlayersUnderYourControl()) { Player opponent = game.getPlayer(controlledPlayerId); handCards.put(opponent.getName(), new SimpleCardsView(opponent.getHand().getCards(game), true)); } gameView.setOpponentHands(handCards); } }
private void turnsForTimeVote(int timeCount, Player controller, Game game, Ability source) { if (timeCount == 1) { game.informPlayers(controller.getName() + " will take an extra turn"); } else { game.informPlayers(controller.getName() + " will take " + timeCount + " extra turns"); } do { game.getState().getTurnMods().add(new TurnMod(source.getControllerId(), false)); timeCount--; } while (timeCount > 0); }
@Override public void init(Ability source, Game game) { super.init(source, game); Player controller = game.getPlayer(source.getControllerId()); String sourceName = source.getSourceObject(game).getLogName(); choseUse = controller.chooseUse(Outcome.Damage, "Have creatures you control deal combat damage this turn" + " as though they weren't blocked?", source, game); game.informPlayers(choseUse ? controller.getName() + " chose to use " + sourceName + "'s effect" : controller.getName() + " chose not to use " + sourceName + "'s effect."); }
protected void processWatchedHands(UUID userId, GameView gameView) { Map<String, SimpleCardsView> handCards = new HashMap<>(); for (Player player : game.getPlayers().values()) { if (player.hasUserPermissionToSeeHand(userId)) { handCards.put(player.getName(), new SimpleCardsView(player.getHand().getCards(game), true)); gameView.setWatchedHands(handCards); } } }
@Override public synchronized void concede(UUID playerId) { Player player = state.getPlayer(playerId); if (player != null && !player.hasLost()) { logger.debug("Player " + player.getName() + " concedes game " + this.getId()); fireInformEvent(player.getLogName() + " has conceded."); player.concede(this); } }
@Override public void lookAtAllLibraries(Ability source, Game game) { for (UUID playerId : game.getState().getPlayersInRange(this.getId(), game)) { Player player = game.getPlayer(playerId); String playerName = this.getName().equals(player.getName()) ? "Your " : player.getName() + "'s "; playerName += "library"; Cards cardsInLibrary = new CardsImpl(player.getLibrary().getTopCards(game, player.getLibrary().size())); lookAtCards(playerName, cardsInLibrary, game); } }
@Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(getTargetPointer().getFirst(game, source)); if (player != null) { player.revealCards(player.getName() + "'s hand cards", player.getHand(), game, false); } return true; }
public TourneyPlayerProto toProto() { return TourneyPlayerProto.newBuilder() .setName(this.player.getName()) .setPlayerType(this.playerType.toString()) .setQuit(this.quitStatus) .build(); } }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); MageObject sourceObject = game.getObject(source.getSourceId()); if (controller != null && sourceObject != null) { controller.revealCards(controller.getName(), controller.getHand(), game, false); return true; } return false; }
private void chooseAndSearchLibrary(List<Player> usingPlayers, Player player, int xValue, Ability source, MageObject sourceObject, Game game) { if (player.chooseUse(Outcome.PutCardInPlay, "Search your library for up " + xValue + " creature cards and put them into your hand?", source, game)) { usingPlayers.add(player); TargetCardInLibrary target = new TargetCardInLibrary(0, xValue, new FilterCreatureCard()); if (player.searchLibrary(target, game)) { if (!target.getTargets().isEmpty()) { Cards cards = new CardsImpl(target.getTargets()); player.moveCards(cards, Zone.HAND, source, game); player.revealCards(sourceObject.getIdName() + " (" + player.getName() + ')', cards, game); } } } }
@Override public String getInfoMessage(Ability source, GameEvent event, Game game) { String namedCard = (String) game.getState().getValue(source.getSourceId().toString() + ChooseACardNameEffect.INFO_KEY); String playerName = game.getPlayer(source.getControllerId()).getName(); if (namedCard == null || playerName == null || source.getSourceObject(game) == null){ return super.getInfoMessage(source, event, game); } return "Until "+playerName+"'s next turn, spells named "+namedCard+" can't be cast and lands named "+namedCard+" can't be played ("+source.getSourceObject(game).getIdName()+")."; } }
@Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); Player targetPlayer = game.getPlayer(source.getFirstTarget()); MageObject sourceObject = source.getSourceObject(game); if (player == null || targetPlayer == null || sourceObject == null) { return false; } Cards cards = new CardsImpl(); cards.addAll(player.getLibrary().getTopCards(game, amountCards.calculate(game, source, this))); player.revealCards(sourceObject.getIdName() + " - Top " + amountCards.toString() + "cards of " + targetPlayer.getName() + "\'s library", cards, game); return true; }
@Override public boolean apply(Game game, Ability source) { Player you = game.getPlayer(source.getControllerId()); Player targetPlayer = game.getPlayer(source.getFirstTarget()); MageObject sourceObject = game.getObject(source.getSourceId()); if (you != null && targetPlayer != null) { you.lookAtCards("Hand of " + targetPlayer.getName() + " (" + (sourceObject != null ? sourceObject.getIdName() : null) + ')', targetPlayer.getHand(), game); return true; } return false; }
@Override public boolean apply(Game game, Ability source) { Permanent sourcePermanent = game.getPermanent(source.getSourceId()); Player controller = game.getPlayer(source.getControllerId()); if (controller != null && sourcePermanent != null) { Player defender = game.getPlayer(this.getTargetPointer().getFirst(game, source)); if (defender != null) { defender.revealCards(defender.getName() + "'s hand cards", defender.getHand(), game, false); } return true; } return false; }
private MatchPlayerProto matchToProto(Match match, TournamentPlayer player) { MatchPlayer matchPlayer = match.getPlayer(player.getPlayer().getId()); MatchQuitStatus quit = !matchPlayer.hasQuit() ? MatchQuitStatus.NO_MATCH_QUIT : matchPlayer.getPlayer().hasIdleTimeout() ? MatchQuitStatus.IDLE_TIMEOUT : matchPlayer.getPlayer().hasTimerTimeout() ? MatchQuitStatus.TIMER_TIMEOUT : MatchQuitStatus.QUIT; return MatchPlayerProto.newBuilder() .setName(player.getPlayer().getName()) .setHuman(player.getPlayer().isHuman()) .setWins(matchPlayer.getWins()) .setQuit(quit) .build(); }