@Override public void doOpeningHandAction(Card card, Player player, Game game) { player.moveCards(card, Zone.BATTLEFIELD, this, game); } }
@Override public boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana, Cost costToPay) { Permanent permanent = game.getPermanent(sourceId); Player controller = game.getPlayer(controllerId); if (permanent == null || controller == null) { return false; } controller.moveCards(permanent, Zone.HAND, ability, game); paid = true; return paid; }
@Override public boolean replaceEvent(GameEvent event, Ability source, Game game) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { Permanent permanent = ((ZoneChangeEvent) event).getTarget(); if (permanent != null) { controller.moveCards(permanent, Zone.HAND, source, game); return true; } } return false; }
@Override public boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana, Cost costToPay) { Player controller = game.getPlayer(controllerId); if (controller != null) { controller.moveCards(controller.getLibrary().getTopCards(game, amount), Zone.EXILED, ability, game); paid = true; } return paid; }
@Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getControllerId()); if (player != null) { Set<Card> cards = player.getGraveyard().getCards(filter2orLess, game); player.moveCards(cards, Zone.HAND, source, game); return true; } return false; } }
@Override public boolean apply(Game game, Ability source) { Player defender = game.getPlayer(targetPointer.getFirst(game, source)); if (defender != null) { defender.moveCards(defender.getLibrary().getTopCards(game, 20), Zone.EXILED, source, game); return true; } return false; } }
@Override public boolean replaceEvent(GameEvent event, Ability source, Game game) { Player player = game.getPlayer(event.getTargetId()); if (player != null) { return player.moveCards(player.getLibrary().getTopCards(game, event.getAmount()), Zone.GRAVEYARD, source, game); } return true; }
@Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { player.moveCards(player.getLibrary().getTopCards(game, numberCards.calculate(game, source, this)), Zone.GRAVEYARD, source, game); return true; } return false; }
@Override public boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana, Cost costToPay) { Player player = game.getPlayer(controllerId); if (player != null && player.getLibrary().size() >= numberOfCards) { paid = true; this.cardsMovedToGraveyard.addAll(player.getLibrary().getTopCards(game, numberOfCards)); player.moveCards(player.getLibrary().getTopCards(game, numberOfCards), Zone.GRAVEYARD, ability, game); } return paid; }
@Override public boolean apply(Game game, Ability source) { for (UUID opponentId : game.getOpponents(source.getControllerId())) { Player opponent = game.getPlayer(opponentId); if (opponent != null) { opponent.moveCards(opponent.getLibrary().getTopCards(game, 7), Zone.GRAVEYARD, source, game); } } return true; }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { Card spellCard = game.getStack().getSpell(source.getSourceId()).getCard(); controller.moveCards(spellCard, Zone.HAND, source, game); return true; } return false; }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { UUID exileId = source.getSourceId(); ExileZone exileZone = game.getExile().getExileZone(exileId); if (exileZone != null) { return controller.moveCards(exileZone.getCards(game), Zone.GRAVEYARD, source, game); } } return false; }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller == null) { return false; } if (controller.searchLibrary(target, game)) { controller.moveCards(game.getCard(target.getFirstTarget()), Zone.GRAVEYARD, source, game); } controller.shuffleLibrary(source, game); return true; }
@Override public boolean replaceEvent(GameEvent event, Ability source, Game game) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { Card card = game.getExile().getExileZone(CardUtil.getCardExileZoneId(game, source)).getRandom(game); if (card != null) { controller.moveCards(card, Zone.HAND, source, game); } } return true; }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { controller.moveCards(new CardsImpl(this.getTargetPointer().getTargets(game, source)), Zone.LIBRARY, source, game); controller.shuffleLibrary(source, game); return true; } return false; } }
@Override public boolean apply(Game game, Ability source) { for (UUID playerId : game.getState().getPlayersInRange(source.getControllerId(), game)) { Player player = game.getPlayer(playerId); if (player != null) { player.moveCards(player.getGraveyard().getCards(StaticFilters.FILTER_CARD_ARTIFACT, game), Zone.BATTLEFIELD, source, game); } } return true; } }
@Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(source.getFirstTarget()); if (player != null) { int amount = player.getLibrary().size() / 2; return player.moveCards(player.getLibrary().getTopCards(game, amount), Zone.GRAVEYARD, source, game); } return false; }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { if (controller.searchLibrary(target, game)) { controller.moveCards(new CardsImpl(target.getTargets()), Zone.GRAVEYARD, source, game); } controller.shuffleLibrary(source, game); return true; } return false; }
@Override public boolean apply(Game game, Ability source) { Player sourcePlayer = game.getPlayer(source.getControllerId()); for (UUID playerId : game.getState().getPlayersInRange(sourcePlayer.getId(), game)) { Player player = game.getPlayer(playerId); if (player != null) { player.moveCards(player.getLibrary().getTopCards(game, 5), Zone.GRAVEYARD, source, game); } } return true; } }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { TargetCard target = new TargetCardInHand(0, 2, new FilterLandCard("up to two land cards to put onto the battlefield tapped")); controller.chooseTarget(outcome, controller.getHand(), target, source, game); return controller.moveCards(new CardsImpl(target.getTargets()).getCards(game), Zone.BATTLEFIELD, source, game, true, false, false, null); } return false; }