Package mage.filter

Examples of mage.filter.FilterCard


        this.color.setBlue(true);

        // Prowl {U}
        this.addAbility(new ProwlAbility(this, "{U}"));
        // Look at the top four cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order.
        this.getSpellAbility().addEffect(new LookLibraryAndPickControllerEffect(new StaticValue(4), false, new StaticValue(1), new FilterCard(), Zone.LIBRARY, false, false));
    }
View Full Code Here


    @Override
    public void adjustTargets(Ability ability, Game game) {
        CardsPutIntoGraveyardWatcher watcher = (CardsPutIntoGraveyardWatcher) game.getState().getWatchers().get("CardsPutIntoGraveyardWatcher");
        if (watcher != null) {
            FilterCard filter = new FilterCreatureCard(textFilter);
            List<CardIdPredicate> uuidPredicates = new ArrayList<>();
            for (UUID uuid :watcher.getCardsPutToGraveyardFromBattlefield()) {
                uuidPredicates.add(new CardIdPredicate(uuid));
            }
            filter.add(Predicates.or(uuidPredicates));
            ability.getTargets().clear();
            ability.addTarget(new TargetCardInGraveyard(filter));
        }

    }
View Full Code Here

                game.setZone(card.getId(), Zone.PICK);
            }
        }
        player.lookAtCards(sourceObject.getName(), 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);
                game.informPlayers(sourceObject.getName() + ": " + player.getName() + " puts a card into his or her hand");
            }
        }

        target = new TargetCard(Zone.PICK, new FilterCard("card to put on the bottom of your library"));
        if (cards.size() > 0) {
            game.informPlayers(new StringBuilder(sourceObject.getName()).append(": ")
                    .append(player.getName()).append(" puts ")
                    .append(cards.size() == 1 ? "a":cards.size())
                    .append(" card").append(cards.size() > 1 ? "s":"")
View Full Code Here

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

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

            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);
                    }
                }
            }

            int cardsToDiscard = Math.min(revealedCards.size(), 2);
            TargetCard targetInHand = new TargetCard(cardsToDiscard, cardsToDiscard, Zone.HAND, new FilterCard("card to discard"));

            if (!revealedCards.isEmpty()) {
                targetPlayer.revealCards("Noggin Whack", revealedCards, game);
                controller.chooseTarget(Outcome.Exile, revealedCards, targetInHand, source, game);
                for (UUID cardId : (List<UUID>) targetInHand.getTargets()) {
View Full Code Here

                            controller.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.LIBRARY, false, false);
                            cards.remove(card);
                        }                   
                    }
                    else {
                        TargetCard target = new TargetCard(Zone.LIBRARY, new FilterCard("card to put on bottom of your library (last chosen will be on bottom)"));
                        controller.choose(Outcome.Neutral, cards, target, game);
                        Card card = cards.get(target.getFirstTarget(), game);
                        if (card != null) {
                            controller.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.LIBRARY, false, false);
                            cards.remove(card);
View Full Code Here

}

class MemorysJourneyTarget extends TargetCard {

    public MemorysJourneyTarget() {
        super(0, 3, Zone.GRAVEYARD, new FilterCard());
    }
View Full Code Here

            }

            if (cards.size() > 0) {
                player.lookAtCards("Forbidden Alchemy", cards, game);

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

    public boolean apply(Game game, Ability source) {
        Player controller = game.getPlayer(source.getControllerId());
        MageObject mageObject = game.getObject(source.getSourceId());
        if (controller != null) {
            Player player = game.getPlayer(targetPointer.getFirst(game, source));
            FilterCard filter = new FilterNonlandCard();
            filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, source.getManaCostsToPay().getX() + 1));
            UUID exileId = CardUtil.getCardExileZoneId(game, source);
            if (player != null) {

                // putting cards to exile shouldn't end the game, so getting minimun available
                int cardsCount = Math.min(source.getManaCostsToPay().getX(), player.getLibrary().size());
View Full Code Here

    @Override
    public boolean replaceEvent(GameEvent event, Ability source, Game game) {
        Player player = game.getPlayer(event.getPlayerId());
        if (player != null) {
            FilterCard filter = new FilterCard();
            if (player.chooseUse(Outcome.Benefit, "Choose land? (No = nonland)", game)) {
                filter.add(new CardTypePredicate(CardType.LAND));
            }
            else {
                filter.add(Predicates.not(new CardTypePredicate(CardType.LAND)));
            }
            Cards cards = new CardsImpl();
            while (player.getLibrary().size() > 0) {
                Card card = player.getLibrary().removeFromTop(game);
                if (filter.match(card, source.getSourceId(), source.getControllerId(), game)) {
                    player.moveCardToHandWithInfo(card, source.getSourceId(), game, Zone.LIBRARY);
                    break;
                }
                cards.add(card);
            }
View Full Code Here

        this.color.setBlue(true);

        // Counter target spell. You may shuffle up to one target card from your graveyard into your library.
        this.getSpellAbility().addEffect(new PutAwayEffect());
        this.getSpellAbility().addTarget(new TargetSpell());
        this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 1, new FilterCard()));

    }
View Full Code Here

TOP

Related Classes of mage.filter.FilterCard

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.