@Override public void setZone(Zone zone, Game game) { card.setZone(zone, game); }
public void addAll(Set<Card> cards, Game game) { for (Card card : cards) { card.setZone(Zone.LIBRARY, game); library.add(card.getId()); } }
public void putOnBottom(Card card, Game game) { if (card.isOwnedBy(playerId)) { card.setZone(Zone.LIBRARY, game); library.remove(card.getId()); library.add(card.getId()); } else { game.getPlayer(card.getOwnerId()).getLibrary().putOnBottom(card, game); } }
public void putOnTop(Card card, Game game) { if (card.isOwnedBy(playerId)) { card.setZone(Zone.LIBRARY, game); library.addFirst(card.getId()); } else { game.getPlayer(card.getOwnerId()).getLibrary().putOnTop(card, game); } }
/** * Don't use this in normal card code, it's for more internal use. Always * use the [Player].moveCards methods if possible for card movement of card * code. * * @param card * @param game * @return */ @Override public boolean putInHand(Card card, Game game) { if (card.isOwnedBy(playerId)) { card.setZone(Zone.HAND, game); this.hand.add(card); } else { return game.getPlayer(card.getOwnerId()).putInHand(card, game); } return true; }
game.addEffect(effect2, source); creatureCards.add(c); c.setZone(Zone.OUTSIDE, game);
protected void randomizePlayers(Game game, UUID playerId) { for (Player player: game.getState().getPlayers().values()) { if (!player.getId().equals(playerId)) { int handSize = player.getHand().size(); player.getLibrary().addAll(player.getHand().getCards(game), game); player.getHand().clear(); player.getLibrary().shuffle(); for (int i = 0; i < handSize; i++) { Card card = player.getLibrary().removeFromTop(game); card.setZone(Zone.HAND, game); player.getHand().add(card); } } else { player.getLibrary().shuffle(); } } }
/** * Swap cards between specified card from library and any hand card. * * @param game * @param card Card to put to player's hand */ private static void swapWithAnyCard(Game game, Player player, Card card, Zone zone) { // Put the card in Exile to start. Otherwise the game doesn't know where to remove the card from. game.getExile().getPermanentExile().add(card); game.setZone(card.getId(), Zone.EXILED); switch (zone) { case BATTLEFIELD: card.putOntoBattlefield(game, Zone.EXILED, null, player.getId()); break; case LIBRARY: card.setZone(Zone.LIBRARY, game); game.getExile().getPermanentExile().remove(card); player.getLibrary().putOnTop(card, game); break; case STACK: card.cast(game, Zone.EXILED, card.getSpellAbility(), player.getId()); default: card.moveToZone(zone, null, game, false); } logger.info("Added card to player's " + zone.toString() + ": " + card.getName() + ", player = " + player.getName()); }
for (int i = 0; i < handSize; i++) { Card card = newPlayer.getLibrary().removeFromTop(mcts); card.setZone(Zone.HAND, mcts); newPlayer.getHand().add(card);
permanent.updateZoneChangeCounter(game, zoneChangeEvent); game.getBattlefield().addPermanent(permanent); card.setZone(Zone.BATTLEFIELD, game); if (permanent.entersBattlefield(event.getSourceId(), game, fromZone, true)) { if (targetCard != null) {