Package mage.filter.predicate.mageobject

Examples of mage.filter.predicate.mageobject.CardTypePredicate


            return false;
        }
        //Set the mana cost one higher to 'emulate' a less than or equal to comparison.
        int xValue = source.getManaCostsToPay().getX() + 1;
        FilterCard filter = new FilterCard("artifact card with converted mana cost " + xValue + " or less");
        filter.add(new CardTypePredicate(CardType.ARTIFACT));
        filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, xValue));
        TargetCardInLibrary target = new TargetCardInLibrary(filter);
        if (player.searchLibrary(target, game)) {
            if (target.getTargets().size() > 0) {
                Card card = player.getLibrary().getCard(target.getFirstTarget(), game);
View Full Code Here


    public boolean apply(Game game, Ability source) {
        Player player = game.getPlayer(source.getControllerId());
        if (player != null) {
            FilterCard filter = new FilterCard("instant or sorcery card");
            filter.add(Predicates.or(
                    new CardTypePredicate(CardType.INSTANT),
                    new CardTypePredicate(CardType.SORCERY)));
            Card[] cards = player.getGraveyard().getCards(filter, game).toArray(new Card[0]);
            if (cards.length > 0) {
                Random rnd = new Random();
                Card card = cards[rnd.nextInt(cards.length)];
                card.moveToZone(Zone.HAND, source.getSourceId(), game, true);
View Full Code Here

                && ((DamagedPlayerEvent) event).isCombatDamage()) {
            Player player = game.getPlayer(event.getTargetId());
            if (player != null) {
                FilterPermanent filter = new FilterPermanent("an artifact controlled by " + player.getName());
                filter.add(Predicates.or(
                    new CardTypePredicate(CardType.ARTIFACT)));
                filter.add(new ControllerIdPredicate(event.getTargetId()));

                this.getTargets().clear();
                this.addTarget(new TargetPermanent(filter));
                return true;
View Full Code Here

        if (player == null) {
            return false;
        }

        FilterCard filter = new FilterCard("Aura card");
        filter.add(new CardTypePredicate(CardType.ENCHANTMENT));
        filter.add(new SubtypePredicate("Aura"));

        Card card = null;
        Zone zone = null;
        if (player.chooseUse(Outcome.Neutral, "Search your graveyard for an Aura card?", game)) {
View Full Code Here

                allycount++;
            }
        }

        FilterCard filter = new FilterCard("creature card in an opponent's graveyard");
        filter.add(new CardTypePredicate(CardType.CREATURE));
        TargetCardInOpponentsGraveyard target = new TargetCardInOpponentsGraveyard(1, 1, filter);

        if (you != null) {
            if (target.canChoose(source.getControllerId(), game)
                    && you.choose(Outcome.GainControl, target, source.getSourceId(), game)) {
View Full Code Here

        Player you = game.getPlayer(source.getControllerId());
        Player damagedPlayer = game.getPlayer(targetPointer.getFirst(game, source));

        filter.add(new OwnerIdPredicate(damagedPlayer.getId()));
        filter.add(Predicates.or(
                new CardTypePredicate(CardType.INSTANT),
                new CardTypePredicate(CardType.SORCERY)));

        Target target = new TargetCardInGraveyard(filter);

        if (you != null) {
            if (you.chooseTarget(Outcome.PlayForFree, target, source, game)) {
View Full Code Here

        LinkedList<UUID> sacrifices = new LinkedList<>();
        int count = 1;
        for (CardType cardType : order) {
            FilterControlledPermanent filter = new FilterControlledPermanent(cardType + " permanent you control");
            filter.add(new CardTypePredicate(cardType));

            for (UUID playerId : controller.getInRange()) {
                int amount = Math.min(count, game.getBattlefield().countAll(filter, playerId, game));
                TargetControlledPermanent target = new TargetControlledPermanent(amount, amount, filter, false);
                Player player = game.getPlayer(playerId);
View Full Code Here

    @Override
    public boolean apply(Game game, Ability source) {
        Player damagedPlayer = game.getPlayer(targetPointer.getFirst(game, source));
        Player you = game.getPlayer(source.getControllerId());
        FilterCard filter = new FilterCard("creature in that player's graveyard");
        filter.add(new CardTypePredicate(CardType.CREATURE));
        filter.add(new OwnerIdPredicate(damagedPlayer.getId()));
        TargetCardInGraveyard target = new TargetCardInGraveyard(filter);
        if (target.canChoose(source.getSourceId(), you.getId(), game)) {
            if (you.chooseTarget(Outcome.PutCreatureInPlay, target, source, game)) {
                Card card = game.getCard(target.getFirstTarget());
View Full Code Here

    @Override
    public boolean apply(Game game, Ability source) {
        FilterCard protectionFilter = new FilterCard();
        ChoiceColorOrArtifact choice = (ChoiceColorOrArtifact) source.getChoices().get(0);
        if (choice.isArtifactSelected()) {
            protectionFilter.add(new CardTypePredicate(CardType.ARTIFACT));
        } else {
            protectionFilter.add(new ColorPredicate(choice.getColor()));
        }

        protectionFilter.setMessage(choice.getChoice());
View Full Code Here

    @Override
    public boolean apply(Game game, Ability source) {
        Player damagedPlayer = game.getPlayer(targetPointer.getFirst(game, source));
        Player you = game.getPlayer(source.getControllerId());
        FilterCard filter = new FilterCard("creature in that player's graveyard");
        filter.add(new CardTypePredicate(CardType.CREATURE));
        filter.add(new OwnerIdPredicate(damagedPlayer.getId()));
        TargetCardInGraveyard target = new TargetCardInGraveyard(filter);
        if (target.canChoose(source.getSourceId(), you.getId(), game)) {
            if (you.chooseTarget(Outcome.PutCreatureInPlay, target, source, game)) {
                Card card = game.getCard(target.getFirstTarget());
View Full Code Here

TOP

Related Classes of mage.filter.predicate.mageobject.CardTypePredicate

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.