Examples of ExileZone


Examples of mage.game.ExileZone

    return new ReturnFromExileEffect(this);
  }

  @Override
  public boolean apply(Game game, Ability source) {
    ExileZone exile = game.getExile().getExileZone(exileId);
    if (exile != null) {
      for (UUID cardId: exile) {
        Card card = game.getCard(cardId);
        card.moveToZone(zone, source.getId(), game, tapped);
      }
      exile.clear();
      return true;
    }
    return false;
  }
View Full Code Here

Examples of mage.game.ExileZone

  @Override
  public boolean apply(Game game, Ability source) {
    Card card;
    Player player = game.getPlayer(source.getControllerId());
    ExileZone exile = game.getExile().createZone(source.getSourceId(), player.getName() + " Cascade");
    int sourceCost = game.getObject(source.getSourceId()).getManaCost().convertedManaCost();
    do {
      card = player.getLibrary().removeFromTop(game);
      if (card == null)
        break;
      card.moveToExile(exile.getId(), exile.getName(), source.getId(), game);
    } while (card.getCardType().contains(CardType.LAND) || card.getManaCost().convertedManaCost() >= sourceCost);

    if (card != null) {
      if (player.chooseUse(outcome, "Use cascade effect on " + card.getName() + "?", game)) {
        player.cast(card.getSpellAbility(), game, true);
        exile.remove(card.getId());
      }
    }

    while (exile.size() > 0) {
      card = exile.getRandom(game);
      exile.remove(card.getId());
      card.moveToZone(Zone.LIBRARY, source.getId(), game, false);
    }

    return true;
  }
View Full Code Here

Examples of mage.game.ExileZone

  }

  @Override
  public boolean apply(Game game, Ability source) {
    Player player = game.getPlayer(source.getFirstTarget());
    ExileZone exile = game.getExile().getPermanentExile();
    if (player != null) {
      while (true) {
        if (player.getLibrary().getFromTop(game) == null)
          break;
        Card card = player.getLibrary().removeFromTop(game);
        exile.add(card);
      }
      player.getLibrary().addAll(player.getHand().getCards(game), game);
      player.getLibrary().shuffle();
      player.getHand().clear();
      return true;
View Full Code Here

Examples of mage.game.ExileZone

        return new HideawayPlayEffect(this);
    }

    @Override
    public boolean apply(Game game, Ability source) {
        ExileZone zone = game.getExile().getExileZone(CardUtil.getCardExileZoneId(game, source));
        if (zone ==null || zone.isEmpty()) {
            return false;
        }
        Card card = zone.getCards(game).iterator().next();
        Player controller = game.getPlayer(source.getControllerId());
        if (card != null && controller != null) {
            if (card.getCardType().contains(CardType.LAND)) {
                // If the revealed card is a land, you can play it only if it's your turn and you haven't yet played a land this turn.
                if (game.getActivePlayerId().equals(source.getControllerId()) && controller.canPlayLand()) {
View Full Code Here

Examples of mage.game.ExileZone

            // sacrifice all creatures
            for (Permanent permanent :game.getBattlefield().getActivePermanents(new FilterCreaturePermanent(), source.getControllerId(), game)) {
                permanent.sacrifice(source.getSourceId(), game);
            }
            // put exiled cards to battlefield
            ExileZone exileZone = game.getState().getExile().getExileZone(source.getSourceId());
            if (exileZone != null) {
                for (Card card : exileZone.getCards(game)) {
                    Player player = game.getPlayer(card.getOwnerId());
                    if (player != null) {
                        player.putOntoBattlefieldWithInfo(card, game, Zone.EXILED, source.getSourceId());
                    }
                }
View Full Code Here

Examples of mage.game.ExileZone

    @Override
    public boolean apply(Game game, Ability source) {
        Player controller = game.getPlayer(source.getControllerId());
        if (controller != null) {
            UUID exileId = source.getSourceId();
            ExileZone exile = game.getExile().getExileZone(exileId);
            if (exile != null) { // null is valid if source left battlefield before enters the battlefield effect resolved
                LinkedList<UUID> cards = new LinkedList<>(exile);
                for (UUID cardId: cards) {
                    Card card = game.getCard(cardId);
                    if (card == null) {
                        return false;
                    }
                    game.informPlayers(controller.getName() + " moves " + card.getLogName() + " to " + zone.toString().toLowerCase());
                    card.moveToZone(zone, source.getSourceId(), game, tapped);
                }
                exile.clear();
            }
            return true;
        }
        return false;
    }
View Full Code Here

Examples of mage.game.ExileZone

            Card sourceCard = game.getCard(source.getSourceId());
            if (sourceCard == null) {
                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

Examples of mage.game.ExileZone

        return new ReturnFromExileEffect(this);
    }

    @Override
    public boolean apply(Game game, Ability source) {
        ExileZone exile = game.getExile().getExileZone(exileId);
        Player controller = game.getPlayer(source.getControllerId());
        if (controller != null && exile != null) {
            exile = exile.copy();
            for (UUID cardId : exile) {
                Card card = game.getCard(cardId);
                Player owner = game.getPlayer(card.getOwnerId());
                if (owner != null) {
                    switch (zone) {
View Full Code Here

Examples of mage.game.ExileZone

                }
            }
            game.informPlayers(controller.getName() + " moves " + amountExiled + " card" + (amountExiled == 1 ? " ":"s ") + "from library to hand");

            TargetCardInExile target2 = new TargetCardInExile(filter2, source.getSourceId());
            ExileZone scrollRackExileZone = game.getExile().getExileZone(source.getSourceId());
            if (scrollRackExileZone != null) {
                while (controller.isInGame() && scrollRackExileZone.count(filter, game) > 1) {
                    controller.lookAtCards("exiled cards with " + sourceObject.getLogName(), scrollRackExileZone, game);
                    controller.choose(Outcome.Neutral, scrollRackExileZone, target2, game);
                    Card card = game.getCard(target2.getFirstTarget());
                    if (card != null) {
                        game.getExile().removeCard(card, game);
                        controller.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.EXILED, true, false);
                    }
                    target2.clearChosen();
                }
                if (scrollRackExileZone.count(filter, game) == 1) {
                    Card card = scrollRackExileZone.get(scrollRackExileZone.iterator().next(), game);
                    controller.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.EXILED, true, false);
                }
            }
            return true;
        }
View Full Code Here

Examples of mage.game.ExileZone

        Card card;
        Player player = game.getPlayer(source.getControllerId());
        if (player == null) {
            return false;
        }
        ExileZone exile = game.getExile().createZone(source.getSourceId(), player.getName() + " Cascade");
        int sourceCost = game.getCard(source.getSourceId()).getManaCost().convertedManaCost();
        do {
            card = player.getLibrary().getFromTop(game);
            if (card == null) {
                break;
            }
            player.moveCardToExileWithInfo(card, exile.getId(), exile.getName(), source.getSourceId(), game, Zone.LIBRARY);
        } while (player.isInGame() && card.getCardType().contains(CardType.LAND) || card.getManaCost().convertedManaCost() >= sourceCost);

        if (card != null) {
            if (player.chooseUse(outcome, "Use cascade effect on " + card.getName() + "?", game)) {
                if(player.cast(card.getSpellAbility(), game, true)){
                    exile.remove(card.getId());
                }
            }
        }

        while (exile.size() > 0) {
            card = exile.getRandom(game);
            exile.remove(card.getId());
            player.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.EXILED, false, false);
        }

        return true;
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.