Package mage.cards

Examples of mage.cards.Cards


    Player player = game.getPlayer(source.getControllerId());
    Card card = player.getLibrary().removeFromTop(game);
    if (card != null) {
      card.moveToZone(Zone.HAND, source.getId(), game, false);
      player.loseLife(card.getManaCost().convertedManaCost(), game);
      Cards cards = new CardsImpl();
      cards.add(card);
      player.revealCards(cards, game);
      return true;
    }
    return false;
  }
View Full Code Here


                                continue;
                            }
                            break;
                    }
                    int numberOfCardsToDiscard = Math.min(amount.calculate(game, source, this), player.getHand().size());
                    Cards cards = new CardsImpl();
                    if (randomDiscard) {
                        while (player.isInGame() && cards.size() < numberOfCardsToDiscard) {
                            Card card = player.getHand().getRandom(game);
                            if (!cards.contains(card.getId())) {
                                cards.add(card);
                            }
                        }
                    } else {
                        Target target = new TargetDiscard(numberOfCardsToDiscard, numberOfCardsToDiscard, new FilterCard(), playerId);
                        player.chooseTarget(outcome, target, source, game);
                        cards.addAll(target.getTargets());
                    }
                    cardsToDiscard.put(playerId, cards);
                }
            }
            // discard all choosen cards
            for (UUID playerId : controller.getInRange()) {
                Player player = game.getPlayer(playerId);
                if (player != null) {
                    Cards cardsPlayer = cardsToDiscard.get(playerId);
                    if (cardsPlayer != null) {
                        for (UUID cardId : cardsPlayer) {
                            Card card = game.getCard(cardId);
                            if (card != null) {
                                player.discard(card, source, game);
View Full Code Here

    public boolean apply(Game game, Ability source) {
        Player player = game.getPlayer(source.getControllerId());
        if (player != null) {
            boolean revealed = player.isTopCardRevealed(); // by looking at the cards with scry you have not to reveal the next card
            player.setTopCardRevealed(false);
            Cards cards = new CardsImpl();
            int count = Math.min(scryNumber, player.getLibrary().size());
            if (count == 0) {
                return true;
            }
            for (int i = 0; i < count; i++) {
                Card card = player.getLibrary().removeFromTop(game);
                cards.add(card);
            }
            TargetCard target1 = new TargetCard(Zone.LIBRARY, filter1);
            target1.setRequired(false);
            // move cards to the bottom of the library
            while (player.isInGame() && cards.size() > 0 && player.choose(Outcome.Detriment, cards, target1, game)) {
                Card card = cards.get(target1.getFirstTarget(), game);
                if (card != null) {
                    cards.remove(card);
                    player.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.LIBRARY, false, false);
                }
                target1.clearChosen();
            }
            // move cards to the top of the library
View Full Code Here

    @Override
    public boolean apply(Game game, Ability source) {       
        Player defender = game.getPlayer(getTargetPointer().getFirst(game, source));
        if (defender != null) {
            Cards cards = new CardsImpl();
            Card card = defender.getLibrary().getFromTop(game);
            if (card != null) {
                cards.add(card);
                defender.revealCards("Goblin Guide", cards, game);
                if (card.getCardType().contains(CardType.LAND)) {
                    defender.moveCardToHandWithInfo(card, source.getSourceId(), game, Zone.LIBRARY);
                }
            }
View Full Code Here

            return false;
        }

        Card card = player.getLibrary().getFromTop(game);
        if (card != null) {
            Cards cards = new CardsImpl(Zone.PICK);
            cards.add(card);
            player.lookAtCards("Sphinx of Jwar Isle", cards, game);
        } else {
            return false;
        }
View Full Code Here

            if (revealAllCards) {
                this.numberCardsToReveal = new StaticValue(player.getHand().size());
            }
            int numberToReveal = this.numberCardsToReveal.calculate(game, source, this);
            if (numberToReveal > 0) {
                Cards revealedCards = new CardsImpl(Zone.HAND);               
                numberToReveal = Math.min(player.getHand().size(), numberToReveal);
                if (player.getHand().size() > numberToReveal) {
                    TargetCardInHand chosenCards = new TargetCardInHand(numberToReveal, numberToReveal, new FilterCard("card in target player's hand"));
                    chosenCards.setNotTarget(true);
                    if (chosenCards.canChoose(player.getId(), game) && player.choose(Outcome.Discard, player.getHand(), chosenCards, game)) {
                        if (!chosenCards.getTargets().isEmpty()) {
                            List<UUID> targets = chosenCards.getTargets();
                            for (UUID targetid : targets) {
                                Card card = game.getCard(targetid);
                                if (card != null) {
                                    revealedCards.add(card);
                                }
                            }
                        }
                    }
                } else {
                    revealedCards.addAll(player.getHand());
                }               

                player.revealCards(sourceCard != null ? sourceCard.getName() :"Discard", revealedCards, game);
               
                boolean result = true;
                int filteredCardsCount = revealedCards.count(filter, source.getSourceId(), source.getControllerId(), game);
                int numberToDiscard = Math.min(this.numberCardsToDiscard.calculate(game, source, this), filteredCardsCount);
                if (numberToDiscard > 0) {
                    TargetCard target = new TargetCard(numberToDiscard, Zone.HAND, filter);
                    if (controller.choose(Outcome.Benefit, revealedCards, target, game)) {
                        for (Object targetId : target.getTargets()) {
                            Card card = revealedCards.get((UUID) targetId, game);
                            if (card != null) {
                                if (!player.discard(card, source, game)) {
                                    result = false;
                                }
                            }
View Full Code Here

                        controller.lookAtCards(targetPlayer.getName() + " hand", targetPlayer.getHand(), game);
                    }
                }

                // cards in Library
                Cards cardsInLibrary = new CardsImpl(Zone.LIBRARY);
                cardsInLibrary.addAll(targetPlayer.getLibrary().getCards(game));
                cardsCount = (cardName.isEmpty() ? 0 : cardsInLibrary.count(filter, game));
                if (cardsCount > 0) {
                    filter.setMessage("card named " + cardName + " in the library of " + targetPlayer.getName());
                    TargetCardInLibrary target = new TargetCardInLibrary(0, cardsCount, filter);
                    if (controller.choose(Outcome.Exile, cardsInLibrary, target, game)) {
                        List<UUID> targets = target.getTargets();
View Full Code Here

            if (!optional || player.chooseUse(Outcome.DrawCard, getMayText(), game)) {
                FilterCard pickFilter = filter.copy();
                pickFilter.setMessage(getPickText());
                TargetCard target = new TargetCard((upTo ? 0:numberToPick.calculate(game, source, this)),numberToPick.calculate(game, source, this), Zone.PICK, pickFilter);
                if (player.choose(Outcome.DrawCard, cards, target, game)) {
                    Cards reveal = new CardsImpl();
                    for (UUID cardId : (List<UUID>)target.getTargets()) {
                        Card card = cards.get(cardId, game);
                        if (card != null) {
                            cards.remove(card);
                            if (targetZoneLookedCards.equals(Zone.BATTLEFIELD)) {
                                player.putOntoBattlefieldWithInfo(card, game, Zone.LIBRARY, source.getSourceId());
                            } else {
                                card.moveToZone(targetPickedCards, source.getSourceId(), game, false);
                                game.informPlayers(player.getName() + " moves a card to " + targetPickedCards.toString().toLowerCase());
                            }
                            if (revealPickedCards) {
                                reveal.add(card);
                            }
                        }
                    }
                    if (revealPickedCards) {
                        player.revealCards(windowName, reveal, game);
View Full Code Here

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

        while (player.chooseUse(Outcome.Benefit, choiceText, game)) {
            Cards cards = player.getSideboard();
            if (cards.isEmpty()) {
                game.informPlayer(player, "You have no cards outside the game.");
                return false;
            }

            Set<Card> filtered = cards.getCards(filterCard, source.getSourceId(), source.getControllerId(), game);
            if (filtered.isEmpty()) {
                game.informPlayer(player, "You have no " + filterCard.getMessage() + " outside the game.");
                return false;
            }
           
            Cards filteredCards = new CardsImpl();
            for (Card card : filtered) {
                filteredCards.add(card.getId());
            }

            TargetCard target = new TargetCard(Zone.PICK, filterCard);
            if (player.choose(Outcome.Benefit, filteredCards, target, game)) {
                Card card = player.getSideboard().get(target.getFirstTarget(), game);
View Full Code Here

                return false;
            }

            ExileZone exile = game.getExile().getExileZone(CardUtil.getCardExileZoneId(game, source));
            if (exile != null && exile.contains(sourceId)) {
                Cards cards = new CardsImpl(card);
                Player controller = game.getPlayer(source.getControllerId());
                if (controller != null) {
                    // only the controller can see the card, so return always false
                    controller.lookAtCards("Exiled with " + sourceCard.getName(), cards, game);
                }
View Full Code Here

TOP

Related Classes of mage.cards.Cards

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.