Package mage.target

Examples of mage.target.TargetCard


            Cards allCards = new CardsImpl(Zone.PICK);
            Cards cards = new CardsImpl(Zone.PICK);
            allCards.addAll(player.getLibrary().getCardList());
            allCards.addAll(player.getGraveyard());
            int number = Math.min(5, allCards.size());
            TargetCard target = new TargetCard(number, number, Zone.PICK, new FilterCard());
           
            if (player.choose(Outcome.Benefit, allCards, target, game)){
                // exile the rest
                for(UUID uuid : allCards){
                    if(!target.getTargets().contains(uuid)){
                        Card card = game.getCard(uuid);
                        if(card != null){
                            card.moveToExile(null, "Doomsday", source.getSourceId(), game);
                        }     
                    }
                    else{
                        cards.add(uuid);
                    }
                   
                }
                //Put the chosen cards on top of your library in any order
                target = new TargetCard(Zone.PICK, new FilterCard("Card to put on top"));
                while (cards.size() > 1 && player.isInGame()) {
                    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, true);
                    }
                    target.clearChosen();
                }
                if (cards.size() == 1) {
                    Card card = cards.get(cards.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.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(), "Chrome Mox (Imprint)", source.getSourceId(), game);
                Permanent permanent = game.getPermanent(source.getSourceId());
                if (permanent != null) {
                    permanent.imprint(card.getId(), game);
View Full Code Here

    public boolean apply(Game game, Ability source) {
        Player controller = game.getPlayer(source.getControllerId());
        Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId());
        if (controller != null) {
            if (controller.getHand().size() > 0) {
                TargetCard target = new TargetCard(Zone.HAND, filter);
                if (target.canChoose(source.getSourceId(), source.getControllerId(), game)
                        && controller.choose(Outcome.Benefit, controller.getHand(), target, game)) {
                    Card card = controller.getHand().get(target.getFirstTarget(), game);
                    if (card != null) {
                        controller.moveCardToExileWithInfo(card, source.getSourceId(), sourcePermanent.getLogName() +" (Imprint)", source.getSourceId(), game, Zone.HAND);
                        Permanent permanent = game.getPermanent(source.getSourceId());
                        if (permanent != null) {
                            permanent.imprint(card.getId(), game);
View Full Code Here

            if (numCards > 0) {
                Cards cards = new CardsImpl();
                for (int i = 0; i < numCards; i++) {
                    cards.add(player.getLibrary().removeFromTop(game));
                }
                TargetCard target = new TargetCard(0, numCards, Zone.LIBRARY, new FilterCard("cards to exile"));
                player.choose(Outcome.Exile, cards, target, game);
                for (UUID cardId : target.getTargets()) {
                    Card card = cards.get(cardId, game);
                    if (card != null) {
                        player.moveCardToExileWithInfo(card, null, "", source.getSourceId(), game, Zone.LIBRARY);
                        cards.remove(card);
                    }
                }
                while (cards.size() > 1) {
                    target = new TargetCard(1, Zone.LIBRARY, new FilterCard("card to put on top of library (last put is first drawn)"));
                    player.choose(Outcome.Benefit, cards, target, game);
                    Card card = cards.get(target.getFirstTarget(), game);
                    player.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.LIBRARY, true, false);
                    cards.remove(card);
                }
                if (cards.size() == 1) {
                    Card card = cards.get(cards.iterator().next(), game);
View Full Code Here

            }
        }

        int count = player.getHand().count(filterAuraCard, game);
        while (player.isInGame() && count > 0 && player.chooseUse(Outcome.Benefit, "Attach an Aura from your hand?", game)) {
            TargetCard targetAura = new TargetCard(Zone.PICK, filterAuraCard);
            if (player.choose(Outcome.Benefit, player.getHand(), targetAura, game)) {
                Card aura = game.getCard(targetAura.getFirstTarget());
                if (aura != null) {
                    game.getState().setValue("attachTo:" + aura.getId(), permanent);
                    aura.putOntoBattlefield(game, Zone.HAND, source.getSourceId(), player.getId());
                    permanent.addAttachment(aura.getId(), game);
                }
            }
            count = player.getHand().count(filterAuraCard, game);
        }

        count = player.getGraveyard().count(filterAuraCard, game);
        while (player.isInGame() && count > 0 && player.chooseUse(Outcome.Benefit, "Attach an Aura from your graveyard?", game)) {
            TargetCard targetAura = new TargetCard(Zone.PICK, filterAuraCard);
            if (player.choose(Outcome.Benefit, player.getGraveyard(), targetAura, game)) {
                Card aura = game.getCard(targetAura.getFirstTarget());
                if (aura != null) {
                    game.getState().setValue("attachTo:" + aura.getId(), permanent);
                    aura.putOntoBattlefield(game, Zone.GRAVEYARD, source.getSourceId(), player.getId());
                    permanent.addAttachment(aura.getId(), game);
                }
View Full Code Here

                CardsImpl cardsToKeep = new CardsImpl();
                if (cards.size() > 2) {
                    cardsToKeep.addAll(cards);

                    Player 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

    public boolean apply(Game game, Ability source) {
        Player targetPlayer = game.getPlayer(source.getFirstTarget());
        Player you = game.getPlayer(source.getControllerId());
        if (targetPlayer != null && you != null) {
            you.lookAtCards("Discard", targetPlayer.getHand(), game);
            TargetCard target = new TargetCard(Zone.PICK, new FilterCard());
            target.setNotTarget(true);
            if (you.choose(Outcome.Benefit, targetPlayer.getHand(), target, game)) {
                Card card = targetPlayer.getHand().get(target.getFirstTarget(), game);
                if (card != null) {
                    return targetPlayer.discard(card, source, game);
                }
            }
View Full Code Here

        }
        if (cards.size() == 1) {
            return cards.getRandom(null);
        }

        TargetCard target = new TargetCard(Zone.PICK, new FilterCard(message));
        if (player.choose(Outcome.Benefit, cards, target, game)) {
            Card card = cards.get(target.getFirstTarget(), game);
            if (card != null) {
                cards.remove(card);
                return card;
            }
        }
View Full Code Here

            if (!cards.isEmpty()) {
                player.revealCards(sourceObject.getLogName(), cards, game);
                if (creatureCardsFound > 0 && player.chooseUse(outcome, "Put creature(s) into play?", game)) {
                    int cardsToChoose = Math.min(numberOfCardsToPutIntoPlay, creatureCardsFound);
                    TargetCard target = new TargetCard(cardsToChoose, cardsToChoose, Zone.LIBRARY, filter);
                    if (player.choose(Outcome.PutCreatureInPlay, cards, target, game)) {
                        for(UUID creatureId: target.getTargets()) {
                            Card card = game.getCard(creatureId);
                            if (card != null) {
                                cards.remove(card);
                                player.putOntoBattlefieldWithInfo(card, game, Zone.LIBRARY, source.getSourceId());
                            }
View Full Code Here

            }
        }
        player.lookAtCards(sourcePermanent.getName(), cards, game);

        if (!cards.isEmpty()) {
            TargetCard target = new TargetCard(Zone.LIBRARY, new FilterCreatureCard("creature card to put into your hand"));
            if (target.canChoose(source.getSourceId(), player.getId(), game) && player.choose(Outcome.DrawCard, cards, target, game)) {
                Card card = cards.get(target.getFirstTarget(), game);
                if (card != null) {
                    player.revealCards(sourcePermanent.getName(), new CardsImpl(card), game);
                    cards.remove(card);
                    player.moveCardToHandWithInfo(card, source.getSourceId(), game, Zone.LIBRARY);
                }
            }
        }


        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

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.