Package mage.cards

Examples of mage.cards.Card


    }
    return possibleTargets;
  }

  public boolean canTarget(UUID id, Cards cards, Game game) {
    Card card = cards.get(id, game);
    if (card != null)
      return filter.match(card);
    return false;
  }
View Full Code Here


  @Override
  public void reset(Game game) {
    // when the permanent is reset copy all original values from the card
    // must copy card each reset so that the original values don't get modified
    Card copy = game.getCard(objectId).copy();
    copyFromCard(copy);
    super.reset(game);
  }
View Full Code Here

  public void checkPermanentOnlyTriggers(ZoneChangeEvent event, Game game) {
    // we only want to trigger abilities that are not on the underlying card ie. have been added by another effect
    // or we want to trigger abilities that only trigger on leaving the battlefield
    // card abilities will get triggered later when the card hits the new zone
    Card card = game.getCard(objectId).copy();
    for (TriggeredAbility ability: abilities.getTriggeredAbilities(event.getFromZone())) {
      if (!card.getAbilities().containsKey(ability.getId())) {
        if (ability.checkTrigger(event, game)) {
          ability.trigger(game, controllerId);
        }
      } else if (ability instanceof ZoneChangeTriggeredAbility && event.getFromZone() == Zone.BATTLEFIELD) {
        ZoneChangeTriggeredAbility zcAbility = (ZoneChangeTriggeredAbility)ability;
        if (zcAbility.getToZone() == null) {
          if (ability.checkTrigger(event, game)) {
            ability.trigger(game, controllerId);
          }
        }
      }
    }
    for (TriggeredAbility ability: abilities.getTriggeredAbilities(event.getToZone())) {
      if (!card.getAbilities().containsKey(ability.getId())) {
        if (ability.checkTrigger(event, game)) {
          ability.trigger(game, controllerId);
        }
      }
    }
View Full Code Here

    Zone fromZone = game.getZone(objectId);
    Player controller = game.getPlayer(controllerId);
    if (controller != null && controller.removeFromBattlefield(this, game)) {
      ZoneChangeEvent event = new ZoneChangeEvent(this, sourceId, controllerId, fromZone, toZone);
      if (!game.replaceEvent(event)) {
        Card card = game.getCard(objectId);
        Player owner = game.getPlayer(ownerId);
        if (owner != null) {
          switch (event.getToZone()) {
            case GRAVEYARD:
              owner.putInGraveyard(card, game, !flag);
View Full Code Here

    Zone fromZone = game.getZone(objectId);
    Player controller = game.getPlayer(controllerId);
    if (controller != null && controller.removeFromBattlefield(this, game)) {
      ZoneChangeEvent event = new ZoneChangeEvent(this, sourceId, ownerId, fromZone, Zone.EXILED);
      if (!game.replaceEvent(event)) {
        Card card = game.getCard(this.objectId);
        if (exileId == null) {
          game.getExile().getPermanentExile().add(card);
        }
        else {
          game.getExile().createZone(exileId, name).add(card);
View Full Code Here

  }

  @Override
  public boolean apply(Game game, Ability source) {
    Player player = game.getPlayer(source.getControllerId());
    Card card = player.getGraveyard().get(source.getSourceId(), game);
    if (card != null) {
      player.removeFromGraveyard(card, game);
      card.moveToZone(Zone.HAND, source.getId(), game, false);
      return true;
    }
    return false;
  }
View Full Code Here

    }
    return false;
  }

  protected boolean drawCard(Game game) {
    Card card = getLibrary().removeFromTop(game);
    if (card != null) {
      card.moveToZone(Zone.HAND, null, game, false);
      game.fireEvent(GameEvent.getEvent(GameEvent.EventType.DREW_CARD, card.getId(), playerId));
      return true;
    }
    return false;
  }
View Full Code Here

  }

  @Override
  public boolean cast(SpellAbility ability, Game game, boolean noMana) {
    //20091005 - 601.2a
    Card card = game.getCard(ability.getSourceId());
    if (card != null) {
      if (!game.replaceEvent(GameEvent.getEvent(GameEvent.EventType.CAST_SPELL, ability.getId(), playerId))) {
        game.bookmarkState();
        removeFromHand(card, game);
        card.moveToZone(Zone.STACK, ability.getId(), game, false);
        Ability spellAbility = game.getStack().getSpell(ability.getId()).getSpellAbility();
        if (spellAbility.activate(game, noMana)) {
          for (KickerAbility kicker: card.getAbilities().getKickerAbilities()) {
            kicker.activate(game, false);
          }
          game.fireEvent(GameEvent.getEvent(GameEvent.EventType.SPELL_CAST, spellAbility.getId(), playerId));
          game.fireInformEvent(name + " casts " + card.getName());
          game.removeLastBookmark();
          return true;
        }
        game.restoreState();
      }
View Full Code Here

    super(target);
  }

  @Override
  public boolean canTarget(UUID id, Ability source, Game game) {
    Card card = game.getPlayer(source.getControllerId()).getHand().get(id, game);
    if (card != null)
      return filter.match(card);
    return false;
  }
View Full Code Here

    return chosen = true;
  }

  @Override
  public boolean canTarget(UUID id, Ability source, Game game) {
    Card card = game.getPlayer(source.getControllerId()).getLibrary().getCard(id, game);
    if (card != null)
      return filter.match(card);
    return false;
  }
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.