Package mage.cards

Examples of mage.cards.Card


  @Override
  public boolean apply(Game game, Ability source) {
    Player player = game.getPlayer(source.getFirstTarget());
    Set<UUID> remove = new HashSet<UUID>();
    for (Iterator<UUID> i = player.getGraveyard().iterator(); i.hasNext();) {
      Card card = game.getCard(i.next());
      if (!filter.match(card)) {
        i.remove();
        game.getExile().add(card);
        for (UUID cardId: player.getLibrary().getCardList()) {
          if (game.getCard(cardId).getName().equals(card.getName())) {
            remove.add(cardId);
          }
        }
      }
    }
View Full Code Here


  protected boolean controlsAbility(UUID playerId, Game game) {
    if (this.controllerId != null && this.controllerId.equals(playerId))
      return true;
    else {
      Card card = (Card)game.getObject(this.sourceId);
      if (card != null && game.getZone(this.sourceId) != Zone.BATTLEFIELD)
        return card.getOwnerId().equals(playerId);
    }
    return false;
  }
View Full Code Here

            lowestRatio = ratio;
            bestColor = color;
          }
        }
      }
      final Card landCard = getBestBasicLand(bestColor);
      Integer count = colorSource.get(bestColor.toString());
      count++;
      colorSource.put(bestColor.toString(), count);
      deck.getCards().add(landCard);
    }
View Full Code Here

        Permanent permanent = game.getPermanent(source.getFirstTarget());
        if (permanent != null) {
          return permanent.moveToZone(Zone.HAND, source.getId(), game, false);
        }
      case GRAVEYARD:
        Card card = game.getCard(source.getFirstTarget());
        for (Player player: game.getPlayers().values()) {
          if (player.getGraveyard().contains(card.getId())) {
            player.getHand().add(card);
            player.getGraveyard().remove(card);
            return true;
          }
        }
View Full Code Here

    @Override
    public void watch(GameEvent event, Game game) {
        if (event.getType() == GameEvent.EventType.DAMAGED_PLAYER
                && event.getTargetId().equals(controllerId)) {
            Card card = game.getCard(event.getSourceId());
            if (card != null && card.getCardType().contains(CardType.CREATURE)) {
                numCreaturesDamagedController += 1;
                if (numCreaturesDamagedController >= 2) {
                    condition = true;
                }
            }
View Full Code Here

    public boolean apply(Game game, Ability source) {
        Player player = game.getPlayer(source.getControllerId());
        if (player != null) {
            TargetDiscard target = new TargetDiscard(player.getId());
            player.choose(Outcome.Discard, target, source.getSourceId(), game);
            Card card = player.getHand().get(target.getFirstTarget(), game);
            if (card != null) {
                player.discard(card, source, game);
                source.getEffects().get(1).setValue("discardedCard", card);
                game.getState().setValue(source.getSourceId().toString(), card);
                return true;
View Full Code Here

        return new ChandraAblazeEffect2(this);
    }

    @Override
    public boolean apply(Game game, Ability source) {
        Card card = (Card) this.getValue("discardedCard");
        if (card != null && card.getColor().isRed()) {
            Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source));
            if (permanent != null) {
                permanent.damage(4, source.getSourceId(), game, false, true);
                return true;
            }
View Full Code Here

            Set<Card> cards = player.getGraveyard().getCards(filter, game);
            TargetCardInGraveyard target = new TargetCardInGraveyard(filter);
            while (!cards.isEmpty() && player.chooseUse(outcome, message, game)) {
                target.clearChosen();
                if (player.choose(outcome, target, source.getSourceId(), game)) {
                    Card card = game.getCard(target.getFirstTarget());
                    if (card != null) {
                        player.cast(card.getSpellAbility(), game, true);
                        player.getGraveyard().remove(card);
                        cards.remove(card);
                    }
                }
            }
View Full Code Here

                    }
                    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 class TargetConvertedManaCost implements DynamicValue {

    @Override
    public int calculate(Game game, Ability source, Effect effect) {
        Card card = game.getCard(source.getFirstTarget());
        if (card != null) {
            return card.getManaCost().convertedManaCost();
        }
        return 0;
    }
View Full Code Here

TOP

Related Classes of mage.cards.Card

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.