@Override public boolean canTarget(UUID id, Cards cards, Game game) { Card card = cards.get(id, game); if (card != null) { return filter.match(card, game); } return false; } }
public static List<Card> chooseOrder(String message, Cards cards, Player player, Game game) { List<Card> order = new ArrayList<>(); TargetCard target = new TargetCard(Zone.ALL, new FilterCard(message)); target.setRequired(true); while (player.isInGame() && cards.size() > 1) { player.choose(Outcome.Neutral, cards, target, game); UUID targetObjectId = target.getFirstTarget(); order.add(cards.get(targetObjectId, game)); cards.remove(targetObjectId); target.clearChosen(); } order.add(cards.getCards(game).iterator().next()); return order; }
public boolean canTarget(UUID id, Cards cards, Game game) { Card card = cards.get(id, game); return card != null && filter.match(card, game); }
@Override public boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana, Cost costToPay) { Player player = game.getPlayer(controllerId); if (player != null) { Card card = player.getHand().get(sourceId, game); if (card != null) { paid = player.discard(card, null, game); } } return paid; }
@Override public boolean canTarget(UUID playerId, UUID id, Ability source, Game game) { Card card = game.getPlayer(playerId).getHand().get(id, game); return card != null && filter.match(card, source.getSourceId(), playerId, game); }
@Override public boolean canTarget(UUID id, Ability source, Game game) { Card card = game.getPlayer(playerId).getHand().get(id, game); return card != null && filter.match(card, source.getControllerId(), game); }
@Override public boolean canTarget(UUID id, Cards cards, Game game) { Card card = cards.get(id, game); if (card != null) { for (UUID targetId : this.getTargets()) { Card iCard = game.getCard(targetId); if (iCard != null && iCard.getName().equals(card.getName())) { return false; } } return filter.match(card, game); } return false; } }
@Override public boolean canTarget(UUID id, Cards cards, Game game) { Card card = cards.get(id, game); if (card != null) { for (UUID targetId : this.getTargets()) { Card iCard = game.getCard(targetId); if (iCard != null && iCard.getName().equals(card.getName())) { return false; } } return filter.match(card, game); } return false; } }
@Override public boolean canTarget(UUID id, Cards cards, Game game) { Card card = cards.get(id, game); if (card != null) { for (UUID targetId : this.getTargets()) { Card iCard = game.getCard(targetId); if (iCard != null && iCard.getName().equals(card.getName())) { return false; } } return filter.match(card, game); } return false; } }
@Override public boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana, Cost costToPay) { paid = false; Player player = game.getPlayer(controllerId); if (player != null) { Card card = player.getHand().get(ability.getSourceId(), game); if (card != null) { Cards cards = new CardsImpl(card); paid = true; player.revealCards("Reveal card cost", cards, game); } } return paid; }
@Override public boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana, Cost costToPay) { Player controller = game.getPlayer(controllerId); if (controller != null) { TargetCardInHand target = new TargetCardInHand(); controller.chooseTarget(Outcome.ReturnToHand, target, ability, game); Card card = controller.getHand().get(target.getFirstTarget(), game); if (card != null) { controller.putCardsOnTopOfLibrary(new CardsImpl(card), game, ability, false); paid = true; } } return paid; }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { TargetCardInHand target = new TargetCardInHand(); controller.chooseTarget(Outcome.ReturnToHand, target, source, game); Card card = controller.getHand().get(target.getFirstTarget(), game); if (card != null) { controller.putCardsOnTopOfLibrary(new CardsImpl(card), game, source, false); } return true; } return false; } }
private boolean putOnLibrary(Player player, Ability source, Game game) { TargetCardInHand target = new TargetCardInHand(); if (target.canChoose(source.getSourceId(), player.getId(), game)) { player.chooseTarget(Outcome.ReturnToHand, target, source, game); Card card = player.getHand().get(target.getFirstTarget(), game); if (card != null) { return player.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.HAND, true, false); } } return false; } }
private boolean putOnLibrary(Player player, Ability source, Game game) { TargetCardInHand target = new TargetCardInHand(); if (target.canChoose(source.getSourceId(), player.getId(), game)) { player.chooseTarget(Outcome.ReturnToHand, target, source, game); Card card = player.getHand().get(target.getFirstTarget(), game); if (card != null) { return player.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.HAND, true, false); } } return false; } }
private boolean putOnLibrary(Player player, Ability source, Game game) { TargetCardInHand target = new TargetCardInHand(); if (target.canChoose(source.getSourceId(), player.getId(), game)) { player.chooseTarget(Outcome.ReturnToHand, target, source, game); Card card = player.getHand().get(target.getFirstTarget(), game); if (card != null) { return player.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.HAND, true, false); } } return false; } }
private boolean putOnLibrary(Player player, Ability source, Game game) { TargetCardInHand target = new TargetCardInHand(); if (target.canChoose(source.getSourceId(), player.getId(), game)) { player.chooseTarget(Outcome.ReturnToHand, target, source, game); Card card = player.getHand().get(target.getFirstTarget(), game); if (card != null) { return player.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.HAND, true, false); } } return false; } }
private boolean putOnLibrary(Player player, Ability source, Game game) { TargetCardInHand target = new TargetCardInHand(); if (target.canChoose(source.getSourceId(), player.getId(), game)) { player.chooseTarget(Outcome.ReturnToHand, target, source, game); Card card = player.getHand().get(target.getFirstTarget(), game); if (card != null) { return player.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.HAND, true, false); } } return false; } }
private boolean putOnLibrary(Player player, Ability source, Game game) { TargetCardInHand target = new TargetCardInHand(); if (target.canChoose(source.getSourceId(), player.getId(), game)) { player.chooseTarget(Outcome.ReturnToHand, target, source, game); Card card = player.getHand().get(target.getFirstTarget(), game); if (card != null) { return player.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.HAND, true, false); } } return false; } }
private void chooseCardInHandAndPutOnTopOfLibrary(Game game, Ability source, Player you, Player targetPlayer) { if (!targetPlayer.getHand().isEmpty()) { TargetCard target = new TargetCard(Zone.HAND, new FilterCard("card to put on the top of library (last chosen will be on top)")); if (you.choose(Outcome.Benefit, targetPlayer.getHand(), target, game)) { Card card = targetPlayer.getHand().get(target.getFirstTarget(), game); if (card != null) { targetPlayer.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.HAND, true, 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) { Card card = player.getHand().get(sourceId, game); if (card != null) { game.fireEvent(GameEvent.getEvent(GameEvent.EventType.CYCLE_CARD, card.getId(), card.getId(), card.getOwnerId())); paid = player.discard(card, null, game); if (paid) { game.fireEvent(GameEvent.getEvent(GameEvent.EventType.CYCLED_CARD, card.getId(), card.getId(), card.getOwnerId())); } } } return paid; }