Package mage.target

Examples of mage.target.TargetCard


            player.shuffleLibrary(game);
              
            int numberOfGoblins = cards.size();
            if (numberOfGoblins > 0) {
                if (cards.size() > 1) {
                    TargetCard targetCard = new TargetCard(Zone.LIBRARY, putOnTopOfLibraryFilter);
                    while (player.isInGame() && cards.size() > 1) {
                        player.choose(Outcome.Benefit, cards, targetCard, game);
                        Card card = cards.get(targetCard.getFirstTarget(), game);
                        if (card != null) {
                            cards.remove(card);
                            card.moveToZone(Zone.LIBRARY, source.getSourceId(), game, true);
                        }
                        targetCard.clearChosen();
                    }
                }
                if (cards.size() == 1) {
                    Card card = cards.get(cards.iterator().next(), game);
                    if (card != null) {
View Full Code Here


        Player you = game.getPlayer(source.getControllerId());
        if (targetPlayer != null && you != null) {
            targetPlayer.revealCards("Painful Memories", targetPlayer.getHand(), game);
           
            if (targetPlayer.getHand().size() > 0) {
                TargetCard target = new TargetCard(Zone.PICK, new FilterCard());
                if (you.choose(Outcome.Benefit, targetPlayer.getHand(), target, game)) {
                    Card card = targetPlayer.getHand().get(target.getFirstTarget(), game);
                    if (card != null) {
                        return targetPlayer.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.HAND, true, true);
                    }
                }
            }
View Full Code Here

            }
            if (opponent == null)  {
                opponent = game.getPlayer(opponents.iterator().next());
            }
           
            TargetCard target = new TargetCard(0, cards.size(), Zone.PICK, new FilterCard("cards to put in the first pile"));
            target.setRequired(false);
            Cards pile1 = new CardsImpl();
            if (opponent.choose(Outcome.Neutral, cards, target, game)) {
                for (UUID targetId : (List<UUID>) target.getTargets()) {
                    Card card = cards.get(targetId, game);
                    if (card != null) {
                        pile1.add(card);
                        cards.remove(card);
                    }
                }
            }
            player.revealCards("Pile 1 (Jace, Architect of Thought)", pile1, game);
            player.revealCards("Pile 2 (Jace, Architect of Thought)", cards, game);
           
            postPileToLog("Pile 1", pile1.getCards(game), game);
            postPileToLog("Pile 2", cards.getCards(game), game);
           
            Cards cardsToHand = cards;
            Cards cardsToLibrary = pile1;
            List<Card> cardPile1 = new ArrayList<>();
            List<Card> cardPile2 = new ArrayList<>();
            for (UUID cardId: pile1) {
                cardPile1.add(game.getCard(cardId));
            }
            for (UUID cardId: cards) {
                cardPile2.add(game.getCard(cardId));
            }

            boolean pileChoice = player.choosePile(Outcome.Neutral, "Choose a pile to to put into your hand.", cardPile1, cardPile2, game);
            if (pileChoice){
                cardsToHand = pile1;
                cardsToLibrary = cards;
            }
            game.informPlayers(player.getName() +" chose pile" + (pileChoice?"1":"2"));

            for (UUID cardUuid : cardsToHand) {
                Card card = cardsToHand.get(cardUuid, game);
                if (card != null) {
                    player.moveCardToHandWithInfo(card, source.getSourceId(), game, Zone.LIBRARY);
                }
            }

            TargetCard targetCard = new TargetCard(Zone.PICK, new FilterCard("card to put on the bottom of your library"));
            while (player.isInGame() && cardsToLibrary.size() > 1) {
                player.choose(Outcome.Neutral, cardsToLibrary, targetCard, game);
                Card card = cardsToLibrary.get(targetCard.getFirstTarget(), game);
                if (card != null) {
                    cardsToLibrary.remove(card);
                    player.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.LIBRARY, false, false);
                }
                target.clearChosen();
View Full Code Here

    @Override
    public boolean apply(Game game, Ability source) {
        Player player = game.getPlayer(source.getControllerId());
        if (player.getHand().size() > 0) {
            TargetCard target = new TargetCard(Zone.HAND, filter);
            player.choose(Outcome.Benefit, player.getHand(), target, game);
            Card card = player.getHand().get(target.getFirstTarget(), game);
            if (card != null) {
                card.moveToExile(getId(), "Semblance Anvil (Imprint)", source.getSourceId(), game);
                Permanent permanent = game.getPermanent(source.getSourceId());
                if (permanent != null) {
                    permanent.imprint(card.getId(), game);
View Full Code Here

                    game.setZone(card.getId(), Zone.PICK);
                }
            }
            player.lookAtCards("Raven Familiar", cards, game);

            TargetCard target = new TargetCard(Zone.PICK, new FilterCard("card to put into your hand"));
            if (player.choose(Outcome.DrawCard, cards, target, game)) {
                Card card = cards.get(target.getFirstTarget(), game);
                if (card != null) {
                    cards.remove(card);
                    card.moveToZone(Zone.HAND, source.getSourceId(), game, false);
                }
            }

            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

        if (cards.size() == 0) {
            return false;

        }
        TargetCard target1 = new TargetCard(Zone.PICK, filter1);
        if (player.choose(Outcome.Detriment, cards, target1, game)) {
            Card card = cards.get(target1.getFirstTarget(), game);
            if (card != null) {
                cards.remove(card);
                card.setFaceDown(true);
                card.moveToExile(getId(), "Clone Shell (Imprint)", source.getSourceId(), game);
                Permanent permanent = game.getPermanent(source.getSourceId());
                if (permanent != null) {
                    permanent.imprint(card.getId(), game);
                }
            }
            target1.clearChosen();
        }

        if (cards.size() > 0) {
            TargetCard target2 = new TargetCard(Zone.PICK, filter2);
            while (player.isInGame() && cards.size() > 1) {
                player.choose(Outcome.Benefit, cards, target2, game);
                Card card = cards.get(target2.getFirstTarget(), game);
                if (card != null) {
                    cards.remove(card);
                    card.moveToZone(Zone.LIBRARY, source.getSourceId(), game, false);
                }
                target2.clearChosen();
            }
            Card card = cards.get(cards.iterator().next(), game);
            card.moveToZone(Zone.LIBRARY, source.getSourceId(), game, true);
        }
View Full Code Here

                if (revealedCard.getCardType().contains(CardType.CREATURE)) {
                    revealedCard.moveToZone(Zone.HAND, source.getSourceId(), game, false);
                    cards.remove(revealedCard);
                }
            }
            TargetCard target = new TargetCard(Zone.PICK, new FilterCard());
            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

                        revealed.add(card);
                    }
                    controller.revealCards(sourceObject.getName(), revealed, game);
                    controller.shuffleLibrary(game);

                    TargetCard targetToLib = new TargetCard(Zone.PICK, new FilterCard(textTop));

                    while (revealed.size() > 1 && controller.isInGame()) {
                        controller.choose(Outcome.Neutral, revealed, targetToLib, game);
                        Card card = revealed.get(targetToLib.getFirstTarget(), game);
                        if (card != null) {
                            revealed.remove(card);
                            controller.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.LIBRARY, true, false);

                        }
                        targetToLib.clearChosen();
                    }

                    if (revealed.size() == 1) {
                        Card card = revealed.get(revealed.iterator().next(), game);
                        controller.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.LIBRARY, true, false);
View Full Code Here

            Cards revealedCards = new CardsImpl(Zone.HAND);
            revealedCards.addAll(opponent.getHand());
            opponent.revealCards("Reveal", revealedCards, game);
           
            //You may copy an instant or sorcery card in it
            TargetCard target = new TargetCard(1, Zone.HAND, new FilterInstantOrSorceryCard())
            target.setRequired(false);
            if (controller.choose(outcome, revealedCards, target, game)) {
                Card card = revealedCards.get((UUID) target.getFirstTarget(), game);
                //If you do, you may cast the copy without paying its mana cost
                if(card != null){
                    Card copiedCard = game.copyCard(card, source, source.getControllerId());
                    if (controller.chooseUse(outcome, "Cast the copied card without paying mana cost?", game)) {
                        controller.cast(copiedCard.getSpellAbility(), game, true);
View Full Code Here

        Player opponent = game.getPlayer(source.getFirstTarget());
        Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId());
        if (controller != null && opponent != null && sourcePermanent != null) {
            opponent.revealCards(sourcePermanent.getName(), opponent.getHand(), game);

            TargetCard target = new TargetCard(Zone.PICK, new FilterNonlandCard("nonland card to exile"));
            if (controller.choose(Outcome.Exile, opponent.getHand(), target, game)) {
                Card card = opponent.getHand().get(target.getFirstTarget(), game);
                if (card != null) {
                    controller.moveCardToExileWithInfo(card, CardUtil.getCardExileZoneId(game, source), sourcePermanent.getName(), source.getSourceId(), game, Zone.HAND);
                }
            }
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.