Package mage.target

Examples of mage.target.TargetCard


    Player player = game.getPlayer(source.getFirstTarget());
    if (player != null) {
      player.revealCards(player.getHand(), game);
      Player you = game.getPlayer(source.getControllerId());
      if (you != null) {
        TargetCard target = new TargetCard(Zone.PICK, filter);
        if (you.choose(player.getHand(), target, game)) {
          Card card = player.getHand().get(target.getFirstTarget(), game);
          if (card != null) {
            return player.discard(card, source, game);
          }
        }
      }
View Full Code Here


                        }
                    }
                }
            } while (amount > 0 && !target.getTargets().isEmpty() && player.isInGame());
            if (amount > 0) {               
                TargetCard targetInHand;
                do {
                    FilterCard filterInHand = new FilterCard();
                    filterInHand.setMessage("card from your hand (" + amount + " left in total)");                   
                    targetInHand = new TargetCard(0, 1, Zone.HAND, filterInHand);
                    List<CardIdPredicate> uuidPredicates = new ArrayList<>();
                    for (UUID uuid :selectedObjects) {
                        uuidPredicates.add(new CardIdPredicate(uuid));
                    }
                    filterInHand.add(Predicates.not(Predicates.or(uuidPredicates)));                   
                    if (targetInHand.canChoose(player.getId(), game) &&
                            player.choose(Outcome.Exile, player.getHand(), targetInHand, game)) {

                        Card card = player.getHand().get(targetInHand.getFirstTarget(), game);
                        if (card != null) {
                            selectedObjects.add(targetInHand.getFirstTarget());
                            amount--;
                            cardsFromHand++;
                        }
                    }
                } while (amount > 0 && !targetInHand.getTargets().isEmpty() && player.isInGame());

            }
        }
        if (cardsFromHand > 0) {
            game.informPlayers(player.getName() + " selects " + cardsFromHand + (cardsFromHand == 1?" card":" cards") + " from his or her hand");
View Full Code Here

                        player.chooseTarget(outcome, targetOpponent, source, game);
                        opponent = game.getPlayer(target.getFirstTarget());
                    } else {
                        opponent = game.getPlayer(game.getOpponents(player.getId()).iterator().next());
                    }
                    TargetCard targetDiscard = new TargetCard(2, Zone.PICK, new FilterCard("cards to put in graveyard"));
                    if (opponent != null && opponent.choose(Outcome.Discard, cards, targetDiscard, game)) {
                        cardsToKeep.removeAll(targetDiscard.getTargets());
                        cards.removeAll(cardsToKeep);
                    }
                }

                for (UUID cardId : cards) {
View Full Code Here

            Cards cards = new CardsImpl();
            for (Permanent card : permanents) {
                cards.add(card);
            }

            TargetCard targetCard = new TargetCard(Zone.BATTLEFIELD, new FilterCard());
            if (player.choose(Outcome.Benefit, cards, targetCard, game)) {
                permanent = game.getPermanent(targetCard.getFirstTarget());
            }
        }
        return permanent;
    }
View Full Code Here

                card.moveToExile(null, "", source.getSourceId(), game);
                cards.add(card);
            }
        }
        if(cards.getCards(new FilterCreatureCard(), game).size() > 0){
            TargetCard target = new TargetCard(Zone.EXILED, new FilterCreatureCard());
            if(controller.chooseTarget(Outcome.PutCreatureInPlay, cards, target, source, game)){
                Card card = cards.get(target.getFirstTarget(), game);
                if(card != null){
                    card.putOntoBattlefield(game, Zone.EXILED, source.getSourceId(), source.getControllerId());
                }
            }
        }
View Full Code Here

                game.setZone(card.getId(), Zone.PICK);
            }
        }
        player.lookAtCards("Petals of Insight", cards, game);
        if (player.chooseUse(outcome, "Put the cards on the bottom of your library in any order?", game)) {
            TargetCard target = new TargetCard(Zone.PICK, new FilterCard("card to put on the bottom of your library"));
            while (player.isInGame() && cards.size() > 1) {
                player.choose(Outcome.Neutral, cards, target, game);
                Card card = cards.get(target.getFirstTarget(), game);
                if (card != null) {
                    cards.remove(card);
                    card.moveToZone(Zone.LIBRARY, source.getSourceId(), game, false);
                }
                target.clearChosen();
            }
            if (cards.size() == 1) {
                Card card = cards.get(cards.iterator().next(), game);
                card.moveToZone(Zone.LIBRARY, source.getSourceId(), game, false);
            }
View Full Code Here

        }

        player.drawCards(3, game);
        if (player.getHand().size() > 0) {
            FilterCard filter = new FilterCard("card from your hand to put on the bottom of your library");
            TargetCard target = new TargetCard(Zone.HAND, filter);

            if (player.choose(Outcome.Detriment, player.getHand(), target, game)) {
                Card card = player.getHand().get(target.getFirstTarget(), game);
                if (card != null) {
                    player.removeFromHand(card, game);
                    card.moveToZone(Zone.LIBRARY, source.getSourceId(), game, false);
                }
            }
View Full Code Here

                            }
                        }
                    }
                    int numberOfCardsToPutBack = cardsPutBack.size();
                    if (numberOfCardsToPutBack > 1) {
                        TargetCard target2 = new TargetCard(Zone.PICK, new FilterCard("card to put on the top of your library (last chosen will be on top)"));
                        while (controller.isInGame() && cardsPutBack.size() > 1) {
                            controller.choose(Outcome.Benefit, cardsPutBack, target2, game);
                            Card card = cardsPutBack.get(target2.getFirstTarget(), game);
                            if (card != null) {
                                cardsPutBack.remove(card);
                                card.moveToZone(Zone.LIBRARY, source.getSourceId(), game, true);
                            }
                            target2.clearChosen();
                        }
                    }
                    if (cardsPutBack.size() == 1) {
                        Card card = cardsPutBack.get(cardsPutBack.iterator().next(), game);
                        card.moveToZone(Zone.LIBRARY, source.getSourceId(), game, true);
View Full Code Here

    @Override
    public boolean apply(Game game, Ability source) {
        Player player = game.getPlayer(source.getFirstTarget());
        if (player != null) {
            TargetCard target = new TargetCard(Zone.PICK, filter);
            if (player.choose(Outcome.Detriment, player.getHand(), target, game)) {
                while (player.getHand().size() > 1) {
                    for (UUID uuid : player.getHand()) {
                        if (!uuid.equals(target.getFirstTarget())) {
                            Card card = player.getHand().get(uuid, game);
                            if (card != null) {
                                player.discard(card, source, game);
                                break;
                            }
View Full Code Here

                Cards cardsInHand = new CardsImpl();
                cardsInHand.addAll(targetPlayer.getHand());

                int count = Math.min(cardsInHand.size(), payLife);

                TargetCard target = new TargetCard(count, Zone.HAND, new FilterCard());
                Cards revealedCards = new CardsImpl();

                if (targetPlayer.chooseTarget(Outcome.Discard, cardsInHand, target, source, game)) {
                    List<UUID> targets = target.getTargets();
                    for (UUID targetId : targets) {
                        Card card = game.getCard(targetId);
                        if (card != null) {
                            revealedCards.add(card);
                        }
                    }
                }

                TargetCard targetInHand = new TargetCard(Zone.HAND, new FilterCard("card to exile"));

                if (!revealedCards.isEmpty()) {
                    targetPlayer.revealCards(sourceCard.getName(), revealedCards, game);
                    controller.chooseTarget(Outcome.Exile, revealedCards, targetInHand, source, game);
                    Card card = revealedCards.get(targetInHand.getFirstTarget(), game);
                    if (card != null) {
                        controller.moveCardToExileWithInfo(card, null, null, source.getSourceId(), game, Zone.HAND);
                    }
                }
                return true;
View Full Code Here

TOP

Related Classes of mage.target.TargetCard

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.