@Override public boolean moveCards(Cards cards, Zone toZone, Ability source, Game game ) { return moveCards(cards.getCards(game), toZone, source, game); }
protected void logState(Game game) { if (log.isTraceEnabled()) { logList("Computer player " + name + " hand: ", new ArrayList<MageObject>(hand.getCards(game))); } }
@Override public boolean chooseMulligan(Game game) { log.debug("chooseMulligan"); if (hand.size() < 6 || isTestMode() || game.getClass().getName().contains("Momir")) { return false; } Set<Card> lands = hand.getCards(new FilterLandCard(), game); return lands.size() < 2 || lands.size() > hand.size() - 2; }
@Override public Set<UUID> possibleTargets(UUID sourceControllerId, Cards cards, Game game) { Set<UUID> possibleTargets = new HashSet<>(); Player player = game.getPlayer(sourceControllerId); for (Card card : cards.getCards(filter, game)) { if (player.getGraveyard().getCards(game).contains(card)) { possibleTargets.add(card.getId()); } } return possibleTargets; }
@Override public int getMaxValue(Ability source, Game game) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { return player.getHand().getCards(filter, game).size(); } return 0; } }
@Override public int calculate(Game game, Ability sourceAbility, Effect effect) { int chroma = 0; for (Card card : revealed.getCards(game)) { chroma += card.getManaCost().getMana().getBlue(); } return chroma; }
@Override public boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana, Cost costToPay) { Player player = game.getPlayer(controllerId); if (player != null) { for (Card card : player.getHand().getCards(game)) { player.discard(card, ability, game); } paid = true; } return paid; }
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); } }
@Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { int amount = player.getHand().getCards(game).size(); player.discard(amount, false, source, game); player.drawCards(amount, game); return true; } return false; }
@Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { for (Card card : player.getHand().getCards(game)) { player.discard(card, source, game); } return true; } return false; } }
@Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { for (Card card : player.getHand().getCards(game)) { player.discard(card, source, game); } return true; } return false; } }
@Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { for (Card card : player.getHand().getCards(game)) { player.discard(card, source, game); } return true; } return false; } }
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); } } }
public RevealedView(String name, Cards cards, Game game) { this.name = name; for (Card card : cards.getCards(game)) { this.cards.put(card.getId(), new CardView(card, game, card.getId())); } }
@Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getFirstTarget()); if (player != null) { Set<Card> cards = player.getHand().getCards(game); for (Card card : cards) { player.discard(card, source, game); } return true; } return false; } }
@Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getFirstTarget()); if (player != null) { Set<Card> cards = player.getHand().getCards(game); for (Card card : cards) { player.discard(card, source, game); } return true; } return false; } }
@Override public Set<UUID> possibleTargets(UUID sourceId, UUID playerId, Game game) { Set<UUID> possibleTargets = new HashSet<>(); Player player = game.getPlayer(playerId); if (player != null) { for (Card card : player.getHand().getCards(filter, sourceId, playerId, game)) { if (sourceId == null || isNotTarget() || !game.replaceEvent(GameEvent.getEvent(GameEvent.EventType.TARGET, card.getId(), sourceId, playerId))) { possibleTargets.add(card.getId()); } } } return possibleTargets; }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { Cards cardsPicked = this.ProteanHulkSearch(game, source); controller.moveCards(cardsPicked.getCards(game), Zone.BATTLEFIELD, source, game); controller.shuffleLibrary(source, game); return true; } return false; }
@Override public boolean apply(Game game, Ability source) { for (UUID opponentId : game.getOpponents(source.getControllerId())) { Player opponent = game.getPlayer(opponentId); if(opponent != null) { for (Card c : opponent.getHand().getCards(game)) { opponent.discard(c, source, game); } } } return true; }
public LookedAtView(String name, Cards cards, Game game) { this.name = name; for (Card card: cards.getCards(game)) { this.cards.put(card.getId(), new SimpleCardView(card.getId(), card.getExpansionSetCode(), card.getCardNumber(), card.getUsesVariousArt(), card.getTokenSetCode(), card.getTokenDescriptor())); } }