Added WishEffect, ExchangeLifeTargetEffect and did refactors

This commit is contained in:
Styxo 2016-12-20 13:31:39 +01:00
parent 009676f75f
commit 2eb0a487a4
17 changed files with 928 additions and 1062 deletions

View file

@ -27,25 +27,14 @@
*/
package mage.cards.b;
import java.util.Set;
import java.util.UUID;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ExileSpellEffect;
import mage.cards.Card;
import mage.abilities.effects.common.WishEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.cards.Cards;
import mage.cards.CardsImpl;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.FilterCard;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.game.Game;
import mage.players.Player;
import mage.target.TargetCard;
/**
*
@ -53,11 +42,19 @@ import mage.target.TargetCard;
*/
public class BurningWish extends CardImpl {
private static final FilterCard filter = new FilterCard("a sorcery card");
static {
filter.add(new CardTypePredicate(CardType.SORCERY));
}
public BurningWish(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{R}");
// You may choose a sorcery card you own from outside the game, reveal that card, and put it into your hand. Exile Burning Wish.
this.getSpellAbility().addEffect(new BurningWishEffect());
// You may choose a sorcery card you own from outside the game, reveal that card, and put it into your hand.
this.getSpellAbility().addEffect(new WishEffect(filter));
// Exile Burning Wish.
this.getSpellAbility().addEffect(ExileSpellEffect.getInstance());
}
@ -70,70 +67,3 @@ public class BurningWish extends CardImpl {
return new BurningWish(this);
}
}
class BurningWishEffect extends OneShotEffect {
private static final String choiceText = "Choose a sorcery card you own from outside the game, and put it into your hand";
private static final FilterCard filter = new FilterCard("sorcery card");
static {
filter.add(new CardTypePredicate(CardType.SORCERY));
}
public BurningWishEffect() {
super(Outcome.Benefit);
this.staticText = "You may choose a sorcery card you own from outside the game, reveal that card, and put it into your hand";
}
public BurningWishEffect(final BurningWishEffect effect) {
super(effect);
}
@Override
public BurningWishEffect copy() {
return new BurningWishEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
MageObject sourceObject = source.getSourceObject(game);
if (controller != null && sourceObject != null) {
while (controller.chooseUse(Outcome.Benefit, choiceText, source, game)) {
Cards cards = controller.getSideboard();
if (cards.isEmpty()) {
game.informPlayer(controller, "You have no cards outside the game.");
break;
}
Set<Card> filtered = cards.getCards(filter, game);
if (filtered.isEmpty()) {
game.informPlayer(controller, "You have no " + filter.getMessage() + " outside the game.");
break;
}
Cards filteredCards = new CardsImpl();
for (Card card : filtered) {
filteredCards.add(card.getId());
}
TargetCard target = new TargetCard(Zone.OUTSIDE, filter);
if (controller.choose(Outcome.Benefit, filteredCards, target, game)) {
Card card = controller.getSideboard().get(target.getFirstTarget(), game);
if (card != null) {
card.moveToZone(Zone.HAND, source.getSourceId(), game, false);
Cards revealCard = new CardsImpl();
revealCard.add(card);
controller.revealCards(sourceObject.getIdName(), revealCard, game);
break;
}
}
}
return true;
}
return false;
}
}

View file

@ -27,25 +27,13 @@
*/
package mage.cards.c;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.Card;
import mage.abilities.effects.common.WishEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.cards.Cards;
import mage.cards.CardsImpl;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.FilterCard;
import mage.filter.predicate.mageobject.SubtypePredicate;
import mage.game.Game;
import mage.players.Player;
import mage.target.TargetCard;
/**
*
@ -53,11 +41,17 @@ import mage.target.TargetCard;
*/
public class CoaxFromTheBlindEternities extends CardImpl {
private static final FilterCard filter = new FilterCard("an Eldrazi card");
static {
filter.add(new SubtypePredicate("Eldrazi"));
}
public CoaxFromTheBlindEternities(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{U}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{U}");
// You may choose an Eldrazi card you own from outside the game or in exile, reveal that card, and put it into your hand.
this.getSpellAbility().addEffect(new CoaxFromTheBlindEternitiesEffect());
this.getSpellAbility().addEffect(new WishEffect(filter, true, true));
}
public CoaxFromTheBlindEternities(final CoaxFromTheBlindEternities card) {
@ -69,72 +63,3 @@ public class CoaxFromTheBlindEternities extends CardImpl {
return new CoaxFromTheBlindEternities(this);
}
}
class CoaxFromTheBlindEternitiesEffect extends OneShotEffect {
private static final String choiceText = "Choose a Eldrazi card you own from outside the game (sideboard) or in exile, and put it into your hand?";
private static final FilterCard filter = new FilterCard("Eldrazi card");
static {
filter.add(new SubtypePredicate("Eldrazi"));
}
public CoaxFromTheBlindEternitiesEffect() {
super(Outcome.Benefit);
this.staticText = "You may choose an Eldrazi card you own from outside the game or in exile, reveal that card, and put it into your hand";
}
public CoaxFromTheBlindEternitiesEffect(final CoaxFromTheBlindEternitiesEffect effect) {
super(effect);
}
@Override
public CoaxFromTheBlindEternitiesEffect copy() {
return new CoaxFromTheBlindEternitiesEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
MageObject sourceObject = source.getSourceObject(game);
if (controller != null && sourceObject != null) {
if (controller.chooseUse(Outcome.Benefit, choiceText, source, game)) {
Set<Card> sideboard = controller.getSideboard().getCards(filter, game);
List<Card> exile = game.getExile().getAllCards(game);
Cards filteredCards = new CardsImpl();
Card card = null;
for (Card sideboardCard : sideboard) {
filteredCards.add(sideboardCard.getId());
}
for (Card exileCard : exile) {
if (exileCard.getOwnerId().equals(source.getControllerId()) && exileCard.hasSubtype("Eldrazi", game)) {
filteredCards.add(exileCard);
}
}
if (filteredCards.isEmpty()) {
game.informPlayer(controller, "You have no " + filter.getMessage() + " outside the game (your sideboard) or in exile.");
}
else {
TargetCard target = new TargetCard(Zone.OUTSIDE, filter);
target.setNotTarget(true);
if (controller.choose(outcome, filteredCards, target, game)) {
card = controller.getSideboard().get(target.getFirstTarget(), game);
if (card == null) {
card = game.getCard(target.getFirstTarget());
}
}
}
if (card != null) {
card.moveToZone(Zone.HAND, source.getSourceId(), game, false);
controller.revealCards(sourceObject.getIdName(), new CardsImpl(card), game);
}
}
return true;
}
return false;
}
}

View file

@ -27,25 +27,14 @@
*/
package mage.cards.c;
import java.util.Set;
import java.util.UUID;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ExileSpellEffect;
import mage.cards.Card;
import mage.abilities.effects.common.WishEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.cards.Cards;
import mage.cards.CardsImpl;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.FilterCard;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.game.Game;
import mage.players.Player;
import mage.target.TargetCard;
/**
*
@ -53,11 +42,19 @@ import mage.target.TargetCard;
*/
public class CunningWish extends CardImpl {
private static final FilterCard filter = new FilterCard("an instant card");
static {
filter.add(new CardTypePredicate(CardType.INSTANT));
}
public CunningWish(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}");
// You may choose an instant card you own from outside the game, reveal that card, and put it into your hand. Exile Cunning Wish.
this.getSpellAbility().addEffect(new CunningWishEffect());
// You may choose an instant card you own from outside the game, reveal that card, and put it into your hand.
this.getSpellAbility().addEffect(new WishEffect(filter));
// Exile Cunning Wish.
this.getSpellAbility().addEffect(ExileSpellEffect.getInstance());
}
@ -70,70 +67,3 @@ public class CunningWish extends CardImpl {
return new CunningWish(this);
}
}
class CunningWishEffect extends OneShotEffect {
private static final String choiceText = "Choose an instant card you own from outside the game, and put it into your hand";
private static final FilterCard filter = new FilterCard("instant card");
static {
filter.add(new CardTypePredicate(CardType.INSTANT));
}
public CunningWishEffect() {
super(Outcome.Benefit);
this.staticText = "You may choose an instant card you own from outside the game, reveal that card, and put it into your hand";
}
public CunningWishEffect(final CunningWishEffect effect) {
super(effect);
}
@Override
public CunningWishEffect copy() {
return new CunningWishEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
MageObject sourceObject = source.getSourceObject(game);
if (controller != null && sourceObject != null) {
while (controller.chooseUse(Outcome.Benefit, choiceText, source, game)) {
Cards cards = controller.getSideboard();
if (cards.isEmpty()) {
game.informPlayer(controller, "You have no cards outside the game.");
break;
}
Set<Card> filtered = cards.getCards(filter, game);
if (filtered.isEmpty()) {
game.informPlayer(controller, "You have no " + filter.getMessage() + " outside the game.");
break;
}
Cards filteredCards = new CardsImpl();
for (Card card : filtered) {
filteredCards.add(card.getId());
}
TargetCard target = new TargetCard(Zone.OUTSIDE, filter);
if (controller.choose(Outcome.Benefit, filteredCards, target, game)) {
Card card = controller.getSideboard().get(target.getFirstTarget(), game);
if (card != null) {
card.moveToZone(Zone.HAND, source.getSourceId(), game, false);
Cards revealCard = new CardsImpl();
revealCard.add(card);
controller.revealCards(sourceObject.getIdName(), revealCard, game);
break;
}
}
}
return true;
}
return false;
}
}

View file

@ -28,20 +28,13 @@
package mage.cards.d;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ExileSourceEffect;
import mage.cards.Card;
import mage.abilities.effects.common.ExileSpellEffect;
import mage.abilities.effects.common.LoseHalfLifeEffect;
import mage.abilities.effects.common.WishEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.cards.Cards;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.FilterCard;
import mage.game.Game;
import mage.players.Player;
import mage.target.TargetCard;
/**
*
@ -50,11 +43,16 @@ import mage.target.TargetCard;
public class DeathWish extends CardImpl {
public DeathWish(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{B}{B}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}{B}");
// You may choose a card you own from outside the game and put it into your hand. You lose half your life, rounded up. Exile Death Wish.
this.getSpellAbility().addEffect(new DeathWishEffect());
this.getSpellAbility().addEffect(new ExileSourceEffect());
// You may choose a card you own from outside the game and put it into your hand.
this.getSpellAbility().addEffect(new WishEffect(new FilterCard(), false));
// You lose half your life, rounded up.
this.getSpellAbility().addEffect(new LoseHalfLifeEffect());
// Exile Death Wish.
this.getSpellAbility().addEffect(ExileSpellEffect.getInstance());
}
public DeathWish(final DeathWish card) {
@ -66,51 +64,3 @@ public class DeathWish extends CardImpl {
return new DeathWish(this);
}
}
class DeathWishEffect extends OneShotEffect {
private static final String choiceText = "Choose a card you own from outside the game, and put it into your hand";
public DeathWishEffect() {
super(Outcome.Benefit);
this.staticText = "You may choose a card you own from outside the game, reveal that card, and put it into your hand. You lose half your life, rounded up";
}
public DeathWishEffect(final DeathWishEffect effect) {
super(effect);
}
@Override
public DeathWishEffect copy() {
return new DeathWishEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
if (controller != null) {
if (controller.chooseUse(Outcome.Benefit, choiceText, source, game)) {
Cards cards = controller.getSideboard();
if (cards.isEmpty()) {
game.informPlayer(controller, "You have no cards outside the game.");
} else {
TargetCard target = new TargetCard(Zone.OUTSIDE, new FilterCard());
if (controller.choose(Outcome.Benefit, cards, target, game)) {
Card card = controller.getSideboard().get(target.getFirstTarget(), game);
if (card != null) {
controller.moveCards(card, Zone.HAND, source, game);
}
}
}
}
int amount = (controller.getLife() + 1) / 2;
if (amount > 0) {
controller.loseLife(amount, game, false);
}
return true;
}
return false;
}
}

View file

@ -30,6 +30,7 @@ package mage.cards.d;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.LoseHalfLifeEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -50,11 +51,13 @@ import mage.target.TargetCard;
public class Doomsday extends CardImpl {
public Doomsday(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{B}{B}{B}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{B}{B}{B}");
// Search your library and graveyard for five cards and exile the rest. Put the chosen cards on top of your library in any order. You lose half your life, rounded up.
// Search your library and graveyard for five cards and exile the rest. Put the chosen cards on top of your library in any order.
this.getSpellAbility().addEffect(new DoomsdayEffect());
// You lose half your life, rounded up.
this.getSpellAbility().addEffect(new LoseHalfLifeEffect());
}
public Doomsday(final Doomsday card) {
@ -67,7 +70,6 @@ public class Doomsday extends CardImpl {
}
}
class DoomsdayEffect extends OneShotEffect {
public DoomsdayEffect() {
@ -87,7 +89,7 @@ class DoomsdayEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
if (player != null) {
//Search your library and graveyard for five cards
Cards allCards = new CardsImpl();
@ -96,20 +98,19 @@ class DoomsdayEffect extends OneShotEffect {
allCards.addAll(player.getGraveyard());
int number = Math.min(5, allCards.size());
TargetCard target = new TargetCard(number, number, Zone.ALL, new FilterCard());
if (player.choose(Outcome.Benefit, allCards, target, game)){
if (player.choose(Outcome.Benefit, allCards, target, game)) {
// exile the rest
for(UUID uuid : allCards){
if(!target.getTargets().contains(uuid)){
for (UUID uuid : allCards) {
if (!target.getTargets().contains(uuid)) {
Card card = game.getCard(uuid);
if(card != null){
if (card != null) {
card.moveToExile(null, "Doomsday", source.getSourceId(), game);
}
}
else{
}
} else {
cards.add(uuid);
}
}
//Put the chosen cards on top of your library in any order
target = new TargetCard(Zone.ALL, new FilterCard("Card to put on top"));
@ -127,15 +128,9 @@ class DoomsdayEffect extends OneShotEffect {
card.moveToZone(Zone.LIBRARY, source.getSourceId(), game, true);
}
}
//You lose half your life, rounded up
int amount = (player.getLife() + 1) / 2;
if (amount > 0) {
player.loseLife(amount, game, false);
}
return true;
}
return false;
}
}
}

View file

@ -27,25 +27,14 @@
*/
package mage.cards.g;
import java.util.Set;
import java.util.UUID;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ExileSpellEffect;
import mage.cards.Card;
import mage.abilities.effects.common.WishEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.cards.Cards;
import mage.cards.CardsImpl;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.FilterCard;
import mage.filter.predicate.mageobject.MulticoloredPredicate;
import mage.game.Game;
import mage.players.Player;
import mage.target.TargetCard;
/**
*
@ -53,11 +42,19 @@ import mage.target.TargetCard;
*/
public class GlitteringWish extends CardImpl {
private static final FilterCard filter = new FilterCard("a multicolored card");
static {
filter.add(new MulticoloredPredicate());
}
public GlitteringWish(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{G}{W}");
// You may choose a multicolored card you own from outside the game, reveal that card, and put it into your hand. Exile Glittering Wish.
this.getSpellAbility().addEffect(new GlitteringWishEffect());
// You may choose a multicolored card you own from outside the game, reveal that card, and put it into your hand.
this.getSpellAbility().addEffect(new WishEffect(filter));
// Exile Glittering Wish.
this.getSpellAbility().addEffect(ExileSpellEffect.getInstance());
}
@ -70,70 +67,3 @@ public class GlitteringWish extends CardImpl {
return new GlitteringWish(this);
}
}
class GlitteringWishEffect extends OneShotEffect {
private static final String choiceText = "Choose a multicolored card you own from outside the game (sideboard), and put it into your hand?";
private static final FilterCard filter = new FilterCard("multicolored cards");
static {
filter.add(new MulticoloredPredicate());
}
public GlitteringWishEffect() {
super(Outcome.Benefit);
this.staticText = "You may choose a multicolored card you own from outside the game, reveal that card, and put it into your hand";
}
public GlitteringWishEffect(final GlitteringWishEffect effect) {
super(effect);
}
@Override
public GlitteringWishEffect copy() {
return new GlitteringWishEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
MageObject sourceObject = source.getSourceObject(game);
if (controller != null && sourceObject != null) {
while (controller.chooseUse(Outcome.Benefit, choiceText, source, game)) {
Cards cards = controller.getSideboard();
if (cards.isEmpty()) {
game.informPlayer(controller, "You have no cards outside the game.");
break;
}
Set<Card> filtered = cards.getCards(filter, game);
if (filtered.isEmpty()) {
game.informPlayer(controller, "You have no " + filter.getMessage() + " outside the game (your sideboard).");
break;
}
Cards filteredCards = new CardsImpl();
for (Card card : filtered) {
filteredCards.add(card.getId());
}
TargetCard target = new TargetCard(Zone.OUTSIDE, filter);
if (controller.choose(Outcome.Benefit, filteredCards, target, game)) {
Card card = controller.getSideboard().get(target.getFirstTarget(), game);
if (card != null) {
card.moveToZone(Zone.HAND, source.getSourceId(), game, false);
Cards revealCard = new CardsImpl();
revealCard.add(card);
controller.revealCards(sourceObject.getIdName(), revealCard, game);
break;
}
}
}
}
return true;
}
}

View file

@ -27,26 +27,15 @@
*/
package mage.cards.g;
import java.util.Set;
import java.util.UUID;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ExileSpellEffect;
import mage.cards.Card;
import mage.abilities.effects.common.WishEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.cards.Cards;
import mage.cards.CardsImpl;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.FilterCard;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.game.Game;
import mage.players.Player;
import mage.target.TargetCard;
/**
*
@ -54,11 +43,21 @@ import mage.target.TargetCard;
*/
public class GoldenWish extends CardImpl {
private static final FilterCard filter = new FilterCard("an artifact or enchantment card");
static {
filter.add(Predicates.or(
new CardTypePredicate(CardType.ARTIFACT),
new CardTypePredicate(CardType.ENCHANTMENT)));
}
public GoldenWish(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{W}{W}");
// You may choose an artifact or enchantment card you own from outside the game, reveal that card, and put it into your hand. Exile Golden Wish.
this.getSpellAbility().addEffect(new GoldenWishEffect());
// You may choose an artifact or enchantment card you own from outside the game, reveal that card, and put it into your hand.
this.getSpellAbility().addEffect(new WishEffect(filter));
// Exile Golden Wish.
this.getSpellAbility().addEffect(ExileSpellEffect.getInstance());
}
@ -71,67 +70,3 @@ public class GoldenWish extends CardImpl {
return new GoldenWish(this);
}
}
class GoldenWishEffect extends OneShotEffect {
private static final String choiceText = "Choose an artifact or enchantment card you own from outside the game, and put it into your hand";
private static final FilterCard filter = new FilterCard("artifact or enchantment card");
static {
filter.add(Predicates.or(
new CardTypePredicate(CardType.ARTIFACT),
new CardTypePredicate(CardType.ENCHANTMENT)));
}
public GoldenWishEffect() {
super(Outcome.Benefit);
this.staticText = "You may choose a artifact or enchantment card you own from outside the game, reveal that card, and put it into your hand";
}
public GoldenWishEffect(final GoldenWishEffect effect) {
super(effect);
}
@Override
public GoldenWishEffect copy() {
return new GoldenWishEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
MageObject sourceObject = source.getSourceObject(game);
if (controller != null && sourceObject != null) {
while (controller.chooseUse(Outcome.Benefit, choiceText, source, game)) {
Cards cards = controller.getSideboard();
if (cards.isEmpty()) {
game.informPlayer(controller, "You have no cards outside the game.");
break;
}
Set<Card> filtered = cards.getCards(filter, game);
if (filtered.isEmpty()) {
game.informPlayer(controller, "You have no " + filter.getMessage() + " outside the game.");
break;
}
Cards filteredCards = new CardsImpl();
filteredCards.addAll(filtered);
TargetCard target = new TargetCard(Zone.OUTSIDE, filter);
if (controller.choose(Outcome.Benefit, filteredCards, target, game)) {
Card card = controller.getSideboard().get(target.getFirstTarget(), game);
if (card != null) {
card.moveToZone(Zone.HAND, source.getSourceId(), game, false);
controller.revealCards(sourceObject.getIdName(), new CardsImpl(card), game);
break;
}
}
}
return true;
}
return false;
}
}

View file

@ -27,26 +27,15 @@
*/
package mage.cards.l;
import java.util.Set;
import java.util.UUID;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ExileSpellEffect;
import mage.cards.Card;
import mage.abilities.effects.common.WishEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.cards.Cards;
import mage.cards.CardsImpl;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.FilterCard;
import mage.filter.predicate.Predicates;
import mage.filter.predicate.mageobject.CardTypePredicate;
import mage.game.Game;
import mage.players.Player;
import mage.target.TargetCard;
/**
*
@ -54,11 +43,21 @@ import mage.target.TargetCard;
*/
public class LivingWish extends CardImpl {
private static final FilterCard filter = new FilterCard("creature or land card");
static {
filter.add(Predicates.or(
new CardTypePredicate(CardType.CREATURE),
new CardTypePredicate(CardType.LAND)));
}
public LivingWish(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{G}");
// You may choose a creature or land card you own from outside the game, reveal that card, and put it into your hand. Exile Living Wish.
this.getSpellAbility().addEffect(new LivingWishEffect());
// You may choose a creature or land card you own from outside the game, reveal that card, and put it into your hand.
this.getSpellAbility().addEffect(new WishEffect(filter));
// Exile Living Wish.
this.getSpellAbility().addEffect(ExileSpellEffect.getInstance());
}
@ -71,72 +70,3 @@ public class LivingWish extends CardImpl {
return new LivingWish(this);
}
}
class LivingWishEffect extends OneShotEffect {
private static final String choiceText = "Choose a creature or land card you own from outside the game, and put it into your hand";
private static final FilterCard filter = new FilterCard("creature or land card");
static {
filter.add(Predicates.or(
new CardTypePredicate(CardType.CREATURE),
new CardTypePredicate(CardType.LAND)));
}
public LivingWishEffect() {
super(Outcome.Benefit);
this.staticText = "You may choose a creature or land card you own from outside the game, reveal that card, and put it into your hand";
}
public LivingWishEffect(final LivingWishEffect effect) {
super(effect);
}
@Override
public LivingWishEffect copy() {
return new LivingWishEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
MageObject sourceObject = source.getSourceObject(game);
if (controller != null && sourceObject != null) {
while (controller.chooseUse(Outcome.Benefit, choiceText, source, game)) {
Cards cards = controller.getSideboard();
if (cards.isEmpty()) {
game.informPlayer(controller, "You have no cards outside the game.");
break;
}
Set<Card> filtered = cards.getCards(filter, game);
if (filtered.isEmpty()) {
game.informPlayer(controller, "You have no " + filter.getMessage() + " outside the game.");
break;
}
Cards filteredCards = new CardsImpl();
for (Card card : filtered) {
filteredCards.add(card.getId());
}
TargetCard target = new TargetCard(Zone.OUTSIDE, filter);
if (controller.choose(Outcome.Benefit, filteredCards, target, game)) {
Card card = controller.getSideboard().get(target.getFirstTarget(), game);
if (card != null) {
card.moveToZone(Zone.HAND, source.getSourceId(), game, false);
Cards revealCard = new CardsImpl();
revealCard.add(card);
controller.revealCards(sourceObject.getIdName(), revealCard, game);
break;
}
}
}
return true;
}
return false;
}
}

View file

@ -34,15 +34,12 @@ import mage.abilities.condition.common.IsStepCondition;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.decorator.ConditionalActivatedAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.ExchangeLifeTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.PhaseStep;
import mage.constants.Zone;
import mage.game.Game;
import mage.players.Player;
import mage.target.common.TargetOpponent;
/**
@ -52,7 +49,7 @@ import mage.target.common.TargetOpponent;
public class MagusOfTheMirror extends CardImpl {
public MagusOfTheMirror(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{B}{B}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}{B}");
this.subtype.add("Human");
this.subtype.add("Wizard");
this.power = new MageInt(4);
@ -60,8 +57,8 @@ public class MagusOfTheMirror extends CardImpl {
// {tap}, Sacrifice Magus of the Mirror: Exchange life totals with target opponent. Activate this ability only during your upkeep.
Ability ability = new ConditionalActivatedAbility(
Zone.BATTLEFIELD,
new MagusOfTheMirrorEffect(),
Zone.BATTLEFIELD,
new ExchangeLifeTargetEffect(),
new TapSourceCost(),
new IsStepCondition(PhaseStep.UPKEEP),
null);
@ -79,48 +76,3 @@ public class MagusOfTheMirror extends CardImpl {
return new MagusOfTheMirror(this);
}
}
class MagusOfTheMirrorEffect extends OneShotEffect {
public MagusOfTheMirrorEffect() {
super(Outcome.Neutral);
this.staticText = "Exchange life totals with target opponent";
}
public MagusOfTheMirrorEffect(final MagusOfTheMirrorEffect effect) {
super(effect);
}
@Override
public MagusOfTheMirrorEffect copy() {
return new MagusOfTheMirrorEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
Player opponent = game.getPlayer(source.getFirstTarget());
if (controller != null && opponent != null) {
int lifeController = controller.getLife();
int lifeOpponent = opponent.getLife();
if (lifeController == lifeOpponent)
return false;
if (!controller.isLifeTotalCanChange() || !opponent.isLifeTotalCanChange())
return false;
// 20110930 - 118.7, 118.8
if (lifeController < lifeOpponent && (!controller.isCanGainLife() || !opponent.isCanLoseLife()))
return false;
if (lifeController > lifeOpponent && (!controller.isCanLoseLife() || !opponent.isCanGainLife()))
return false;
controller.setLife(lifeOpponent, game);
opponent.setLife(lifeController, game);
return true;
}
return false;
}
}

View file

@ -0,0 +1,73 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.cards.m;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.condition.common.IsStepCondition;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.decorator.ConditionalActivatedAbility;
import mage.abilities.effects.common.ExchangeLifeTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.PhaseStep;
import mage.constants.Zone;
import mage.target.common.TargetOpponent;
/**
*
* @author Styxo
*/
public class MirrorUniverse extends CardImpl {
public MirrorUniverse(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{6}");
// {tap}, Sacrifice Mirror Universe: Exchange life totals with target opponent. Activate this ability only during your upkeep.
Ability ability = new ConditionalActivatedAbility(
Zone.BATTLEFIELD,
new ExchangeLifeTargetEffect(),
new TapSourceCost(),
new IsStepCondition(PhaseStep.UPKEEP),
null);
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetOpponent());
this.addAbility(ability);
}
public MirrorUniverse(final MirrorUniverse card) {
super(card);
}
@Override
public MirrorUniverse copy() {
return new MirrorUniverse(this);
}
}

View file

@ -0,0 +1,72 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.cards.r;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.AuraAttachedCount;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.keyword.VigilanceAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Zone;
/**
*
* @author Styxo
*/
public class RabidWombat extends CardImpl {
public RabidWombat(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{G}");
this.subtype.add("Wombat");
this.power = new MageInt(0);
this.toughness = new MageInt(1);
// Vigilance
this.addAbility(VigilanceAbility.getInstance());
// Rabid Wombat gets +2/+2 for each Aura attached to it.
AuraAttachedCount count = new AuraAttachedCount(2);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect(count, count, Duration.WhileOnBattlefield)));
}
public RabidWombat(final RabidWombat card) {
super(card);
}
@Override
public RabidWombat copy() {
return new RabidWombat(this);
}
}

View file

@ -108,6 +108,7 @@ public class Chronicles extends ExpansionSet {
cards.add(new SetCardInfo("Nicol Bolas", 116, Rarity.RARE, mage.cards.n.NicolBolas.class));
cards.add(new SetCardInfo("Obelisk of Undoing", 84, Rarity.RARE, mage.cards.o.ObeliskOfUndoing.class));
cards.add(new SetCardInfo("Palladia-Mors", 117, Rarity.RARE, mage.cards.p.PalladiaMors.class));
cards.add(new SetCardInfo("Rabid Wombat", 39, Rarity.UNCOMMON, mage.cards.r.RabidWombat.class));
cards.add(new SetCardInfo("Rakalite", 85, Rarity.RARE, mage.cards.r.Rakalite.class));
cards.add(new SetCardInfo("Recall", 24, Rarity.UNCOMMON, mage.cards.r.Recall.class));
cards.add(new SetCardInfo("Remove Soul", 25, Rarity.COMMON, mage.cards.r.RemoveSoul.class));

View file

@ -1,439 +1,440 @@
package mage.sets;
import mage.cards.ExpansionSet;
import mage.cards.b.BrassclawOrcs;
import mage.cards.d.DwarvenSoldier;
import mage.cards.g.GoblinWarDrums;
import mage.cards.h.HomaridWarrior;
import mage.cards.i.IcatianScout;
import mage.cards.i.InitiatesOfTheEbonHand;
import mage.cards.m.MesaFalcon;
import mage.cards.m.MindstabThrull;
import mage.cards.n.Necrite;
import mage.cards.r.ReefPirates;
import mage.cards.t.Torture;
import mage.cards.v.VodalianSoldiers;
import mage.constants.SetType;
import mage.constants.Rarity;
import mage.cards.CardGraphicInfo;
public class FifthEdition extends ExpansionSet {
private static final FifthEdition fINSTANCE = new FifthEdition();
public static FifthEdition getInstance() {
return fINSTANCE;
}
private FifthEdition() {
super("Fifth Edition", "5ED", ExpansionSet.buildDate(1997, 3, 1), SetType.CORE);
this.hasBoosters = true;
this.numBoosterLands = 0;
this.numBoosterCommon = 11;
this.numBoosterUncommon = 3;
this.numBoosterRare = 1;
this.ratioBoosterMythic = 0;
cards.add(new SetCardInfo("Abbey Gargoyles", 277, Rarity.UNCOMMON, mage.cards.a.AbbeyGargoyles.class));
cards.add(new SetCardInfo("Abyssal Specter", 1, Rarity.UNCOMMON, mage.cards.a.AbyssalSpecter.class));
cards.add(new SetCardInfo("Adarkar Wastes", 410, Rarity.RARE, mage.cards.a.AdarkarWastes.class));
cards.add(new SetCardInfo("Air Elemental", 71, Rarity.UNCOMMON, mage.cards.a.AirElemental.class));
cards.add(new SetCardInfo("Akron Legionnaire", 278, Rarity.RARE, mage.cards.a.AkronLegionnaire.class));
cards.add(new SetCardInfo("Aladdin's Ring", 346, Rarity.RARE, mage.cards.a.AladdinsRing.class));
cards.add(new SetCardInfo("Ambush Party", 208, Rarity.COMMON, mage.cards.a.AmbushParty.class));
cards.add(new SetCardInfo("Amulet of Kroog", 347, Rarity.COMMON, mage.cards.a.AmuletOfKroog.class));
cards.add(new SetCardInfo("An-Havva Constable", 139, Rarity.RARE, mage.cards.a.AnHavvaConstable.class));
cards.add(new SetCardInfo("Angry Mob", 280, Rarity.UNCOMMON, mage.cards.a.AngryMob.class));
cards.add(new SetCardInfo("Animate Dead", 2, Rarity.UNCOMMON, mage.cards.a.AnimateDead.class));
cards.add(new SetCardInfo("Animate Wall", 281, Rarity.RARE, mage.cards.a.AnimateWall.class));
cards.add(new SetCardInfo("Ankh of Mishra", 348, Rarity.RARE, mage.cards.a.AnkhOfMishra.class));
cards.add(new SetCardInfo("Arenson's Aura", 282, Rarity.UNCOMMON, mage.cards.a.ArensonsAura.class));
cards.add(new SetCardInfo("Armageddon", 283, Rarity.RARE, mage.cards.a.Armageddon.class));
cards.add(new SetCardInfo("Armor of Faith", 284, Rarity.COMMON, mage.cards.a.ArmorOfFaith.class));
cards.add(new SetCardInfo("Ashes to Ashes", 3, Rarity.UNCOMMON, mage.cards.a.AshesToAshes.class));
cards.add(new SetCardInfo("Ashnod's Altar", 349, Rarity.UNCOMMON, mage.cards.a.AshnodsAltar.class));
cards.add(new SetCardInfo("Ashnod's Transmogrant", 350, Rarity.COMMON, mage.cards.a.AshnodsTransmogrant.class));
cards.add(new SetCardInfo("Aspect of Wolf", 140, Rarity.RARE, mage.cards.a.AspectOfWolf.class));
cards.add(new SetCardInfo("Atog", 209, Rarity.UNCOMMON, mage.cards.a.Atog.class));
cards.add(new SetCardInfo("Aurochs", 141, Rarity.COMMON, mage.cards.a.Aurochs.class));
cards.add(new SetCardInfo("Aysen Bureaucrats", 285, Rarity.COMMON, mage.cards.a.AysenBureaucrats.class));
cards.add(new SetCardInfo("Azure Drake", 73, Rarity.UNCOMMON, mage.cards.a.AzureDrake.class));
cards.add(new SetCardInfo("Bad Moon", 4, Rarity.RARE, mage.cards.b.BadMoon.class));
cards.add(new SetCardInfo("Ball Lightning", 210, Rarity.RARE, mage.cards.b.BallLightning.class));
cards.add(new SetCardInfo("Barbed Sextant", 351, Rarity.COMMON, mage.cards.b.BarbedSextant.class));
cards.add(new SetCardInfo("Barl's Cage", 352, Rarity.RARE, mage.cards.b.BarlsCage.class));
cards.add(new SetCardInfo("Binding Grasp", 74, Rarity.UNCOMMON, mage.cards.b.BindingGrasp.class));
cards.add(new SetCardInfo("Bird Maiden", 211, Rarity.COMMON, mage.cards.b.BirdMaiden.class));
cards.add(new SetCardInfo("Birds of Paradise", 142, Rarity.RARE, mage.cards.b.BirdsOfParadise.class));
cards.add(new SetCardInfo("Black Knight", 5, Rarity.UNCOMMON, mage.cards.b.BlackKnight.class));
cards.add(new SetCardInfo("Blessed Wine", 287, Rarity.COMMON, mage.cards.b.BlessedWine.class));
cards.add(new SetCardInfo("Blight", 6, Rarity.UNCOMMON, mage.cards.b.Blight.class));
cards.add(new SetCardInfo("Blinking Spirit", 288, Rarity.RARE, mage.cards.b.BlinkingSpirit.class));
cards.add(new SetCardInfo("Blood Lust", 212, Rarity.COMMON, mage.cards.b.BloodLust.class));
cards.add(new SetCardInfo("Bog Imp", 7, Rarity.COMMON, mage.cards.b.BogImp.class));
cards.add(new SetCardInfo("Bog Rats", 8, Rarity.COMMON, mage.cards.b.BogRats.class));
cards.add(new SetCardInfo("Bog Wraith", 9, Rarity.UNCOMMON, mage.cards.b.BogWraith.class));
cards.add(new SetCardInfo("Boomerang", 75, Rarity.COMMON, mage.cards.b.Boomerang.class));
cards.add(new SetCardInfo("Bottle of Suleiman", 354, Rarity.RARE, mage.cards.b.BottleOfSuleiman.class));
cards.add(new SetCardInfo("Bottomless Vault", 411, Rarity.RARE, mage.cards.b.BottomlessVault.class));
cards.add(new SetCardInfo("Brainstorm", 76, Rarity.COMMON, mage.cards.b.Brainstorm.class));
cards.add(new SetCardInfo("Brassclaw Orcs", 213, Rarity.COMMON, BrassclawOrcs.class));
cards.add(new SetCardInfo("Breeding Pit", 10, Rarity.UNCOMMON, mage.cards.b.BreedingPit.class));
cards.add(new SetCardInfo("Brothers of Fire", 214, Rarity.COMMON, mage.cards.b.BrothersOfFire.class));
cards.add(new SetCardInfo("Brushland", 412, Rarity.RARE, mage.cards.b.Brushland.class));
cards.add(new SetCardInfo("Caribou Range", 290, Rarity.RARE, mage.cards.c.CaribouRange.class));
cards.add(new SetCardInfo("Carrion Ants", 12, Rarity.UNCOMMON, mage.cards.c.CarrionAnts.class));
cards.add(new SetCardInfo("Castle", 291, Rarity.UNCOMMON, mage.cards.c.Castle.class));
cards.add(new SetCardInfo("Cat Warriors", 144, Rarity.COMMON, mage.cards.c.CatWarriors.class));
cards.add(new SetCardInfo("Cave People", 215, Rarity.UNCOMMON, mage.cards.c.CavePeople.class));
cards.add(new SetCardInfo("Chub Toad", 145, Rarity.COMMON, mage.cards.c.ChubToad.class));
cards.add(new SetCardInfo("Circle of Protection: Artifacts", 292, Rarity.COMMON, mage.cards.c.CircleOfProtectionArtifacts.class));
cards.add(new SetCardInfo("Circle of Protection: Black", 293, Rarity.COMMON, mage.cards.c.CircleOfProtectionBlack.class));
cards.add(new SetCardInfo("Circle of Protection: Blue", 294, Rarity.COMMON, mage.cards.c.CircleOfProtectionBlue.class));
cards.add(new SetCardInfo("Circle of Protection: Green", 295, Rarity.COMMON, mage.cards.c.CircleOfProtectionGreen.class));
cards.add(new SetCardInfo("Circle of Protection: Red", 296, Rarity.COMMON, mage.cards.c.CircleOfProtectionRed.class));
cards.add(new SetCardInfo("Circle of Protection: White", 297, Rarity.COMMON, mage.cards.c.CircleOfProtectionWhite.class));
cards.add(new SetCardInfo("City of Brass", 413, Rarity.RARE, mage.cards.c.CityOfBrass.class));
cards.add(new SetCardInfo("Clay Statue", 355, Rarity.COMMON, mage.cards.c.ClayStatue.class));
cards.add(new SetCardInfo("Clockwork Beast", 356, Rarity.RARE, mage.cards.c.ClockworkBeast.class));
cards.add(new SetCardInfo("Cockatrice", 146, Rarity.RARE, mage.cards.c.Cockatrice.class));
cards.add(new SetCardInfo("Colossus of Sardia", 358, Rarity.RARE, mage.cards.c.ColossusOfSardia.class));
cards.add(new SetCardInfo("Conquer", 216, Rarity.UNCOMMON, mage.cards.c.Conquer.class));
cards.add(new SetCardInfo("Coral Helm", 359, Rarity.RARE, mage.cards.c.CoralHelm.class));
cards.add(new SetCardInfo("Counterspell", 77, Rarity.COMMON, mage.cards.c.Counterspell.class));
cards.add(new SetCardInfo("Craw Giant", 147, Rarity.UNCOMMON, mage.cards.c.CrawGiant.class));
cards.add(new SetCardInfo("Craw Wurm", 148, Rarity.COMMON, mage.cards.c.CrawWurm.class));
cards.add(new SetCardInfo("Crimson Manticore", 217, Rarity.RARE, mage.cards.c.CrimsonManticore.class));
cards.add(new SetCardInfo("Crown of the Ages", 360, Rarity.RARE, mage.cards.c.CrownOfTheAges.class));
cards.add(new SetCardInfo("Crumble", 149, Rarity.UNCOMMON, mage.cards.c.Crumble.class));
cards.add(new SetCardInfo("Crusade", 298, Rarity.RARE, mage.cards.c.Crusade.class));
cards.add(new SetCardInfo("Crystal Rod", 361, Rarity.UNCOMMON, mage.cards.c.CrystalRod.class));
cards.add(new SetCardInfo("Cursed Land", 14, Rarity.UNCOMMON, mage.cards.c.CursedLand.class));
cards.add(new SetCardInfo("Dance of Many", 78, Rarity.RARE, mage.cards.d.DanceOfMany.class));
cards.add(new SetCardInfo("Dancing Scimitar", 362, Rarity.RARE, mage.cards.d.DancingScimitar.class));
cards.add(new SetCardInfo("Dandan", 79, Rarity.COMMON, mage.cards.d.Dandan.class));
cards.add(new SetCardInfo("Dark Maze", 80, Rarity.COMMON, mage.cards.d.DarkMaze.class));
cards.add(new SetCardInfo("Dark Ritual", 15, Rarity.COMMON, mage.cards.d.DarkRitual.class));
cards.add(new SetCardInfo("D'Avenant Archer", 299, Rarity.COMMON, mage.cards.d.DAvenantArcher.class));
cards.add(new SetCardInfo("Deathgrip", 16, Rarity.UNCOMMON, mage.cards.d.Deathgrip.class));
cards.add(new SetCardInfo("Death Speakers", 300, Rarity.COMMON, mage.cards.d.DeathSpeakers.class));
cards.add(new SetCardInfo("Death Ward", 301, Rarity.COMMON, mage.cards.d.DeathWard.class));
cards.add(new SetCardInfo("Deflection", 81, Rarity.RARE, mage.cards.d.Deflection.class));
cards.add(new SetCardInfo("Derelor", 17, Rarity.RARE, mage.cards.d.Derelor.class));
cards.add(new SetCardInfo("Desert Twister", 150, Rarity.UNCOMMON, mage.cards.d.DesertTwister.class));
cards.add(new SetCardInfo("Detonate", 218, Rarity.UNCOMMON, mage.cards.d.Detonate.class));
cards.add(new SetCardInfo("Diabolic Machine", 363, Rarity.UNCOMMON, mage.cards.d.DiabolicMachine.class));
cards.add(new SetCardInfo("Dingus Egg", 364, Rarity.RARE, mage.cards.d.DingusEgg.class));
cards.add(new SetCardInfo("Disenchant", 302, Rarity.COMMON, mage.cards.d.Disenchant.class));
cards.add(new SetCardInfo("Disintegrate", 219, Rarity.COMMON, mage.cards.d.Disintegrate.class));
cards.add(new SetCardInfo("Disrupting Scepter", 365, Rarity.RARE, mage.cards.d.DisruptingScepter.class));
cards.add(new SetCardInfo("Divine Offering", 303, Rarity.COMMON, mage.cards.d.DivineOffering.class));
cards.add(new SetCardInfo("Divine Transformation", 304, Rarity.UNCOMMON, mage.cards.d.DivineTransformation.class));
cards.add(new SetCardInfo("Dragon Engine", 366, Rarity.RARE, mage.cards.d.DragonEngine.class));
cards.add(new SetCardInfo("Drain Life", 18, Rarity.COMMON, mage.cards.d.DrainLife.class));
cards.add(new SetCardInfo("Drudge Skeletons", 19, Rarity.COMMON, mage.cards.d.DrudgeSkeletons.class));
cards.add(new SetCardInfo("Durkwood Boars", 151, Rarity.COMMON, mage.cards.d.DurkwoodBoars.class));
cards.add(new SetCardInfo("Dust to Dust", 305, Rarity.UNCOMMON, mage.cards.d.DustToDust.class));
cards.add(new SetCardInfo("Dwarven Catapult", 220, Rarity.UNCOMMON, mage.cards.d.DwarvenCatapult.class));
cards.add(new SetCardInfo("Dwarven Hold", 414, Rarity.RARE, mage.cards.d.DwarvenHold.class));
cards.add(new SetCardInfo("Dwarven Ruins", 415, Rarity.UNCOMMON, mage.cards.d.DwarvenRuins.class));
cards.add(new SetCardInfo("Dwarven Soldier", 221, Rarity.COMMON, DwarvenSoldier.class));
cards.add(new SetCardInfo("Dwarven Warriors", 222, Rarity.COMMON, mage.cards.d.DwarvenWarriors.class));
cards.add(new SetCardInfo("Earthquake", 223, Rarity.RARE, mage.cards.e.Earthquake.class));
cards.add(new SetCardInfo("Ebon Stronghold", 416, Rarity.UNCOMMON, mage.cards.e.EbonStronghold.class));
cards.add(new SetCardInfo("Elder Druid", 152, Rarity.RARE, mage.cards.e.ElderDruid.class));
cards.add(new SetCardInfo("Elven Riders", 153, Rarity.UNCOMMON, mage.cards.e.ElvenRiders.class));
cards.add(new SetCardInfo("Elvish Archers", 154, Rarity.RARE, mage.cards.e.ElvishArchers.class));
cards.add(new SetCardInfo("Energy Flux", 83, Rarity.UNCOMMON, mage.cards.e.EnergyFlux.class));
cards.add(new SetCardInfo("Enervate", 84, Rarity.COMMON, mage.cards.e.Enervate.class));
cards.add(new SetCardInfo("Erg Raiders", 20, Rarity.COMMON, mage.cards.e.ErgRaiders.class));
cards.add(new SetCardInfo("Errantry", 224, Rarity.COMMON, mage.cards.e.Errantry.class));
cards.add(new SetCardInfo("Eternal Warrior", 225, Rarity.COMMON, mage.cards.e.EternalWarrior.class));
cards.add(new SetCardInfo("Evil Eye of Orms-by-Gore", 21, Rarity.UNCOMMON, mage.cards.e.EvilEyeOfOrmsByGore.class));
cards.add(new SetCardInfo("Evil Presence", 22, Rarity.UNCOMMON, mage.cards.e.EvilPresence.class));
cards.add(new SetCardInfo("Eye for an Eye", 306, Rarity.RARE, mage.cards.e.EyeForAnEye.class));
cards.add(new SetCardInfo("Fallen Angel", 23, Rarity.UNCOMMON, mage.cards.f.FallenAngel.class));
cards.add(new SetCardInfo("Fear", 24, Rarity.COMMON, mage.cards.f.Fear.class));
cards.add(new SetCardInfo("Feedback", 85, Rarity.UNCOMMON, mage.cards.f.Feedback.class));
cards.add(new SetCardInfo("Feldon's Cane", 368, Rarity.UNCOMMON, mage.cards.f.FeldonsCane.class));
cards.add(new SetCardInfo("Fellwar Stone", 369, Rarity.UNCOMMON, mage.cards.f.FellwarStone.class));
cards.add(new SetCardInfo("Feroz's Ban", 370, Rarity.RARE, mage.cards.f.FerozsBan.class));
cards.add(new SetCardInfo("Fireball", 227, Rarity.COMMON, mage.cards.f.Fireball.class));
cards.add(new SetCardInfo("Firebreathing", 228, Rarity.COMMON, mage.cards.f.Firebreathing.class));
cards.add(new SetCardInfo("Fire Drake", 226, Rarity.UNCOMMON, mage.cards.f.FireDrake.class));
cards.add(new SetCardInfo("Flame Spirit", 229, Rarity.UNCOMMON, mage.cards.f.FlameSpirit.class));
cards.add(new SetCardInfo("Flare", 230, Rarity.COMMON, mage.cards.f.Flare.class));
cards.add(new SetCardInfo("Flashfires", 231, Rarity.UNCOMMON, mage.cards.f.Flashfires.class));
cards.add(new SetCardInfo("Flight", 86, Rarity.COMMON, mage.cards.f.Flight.class));
cards.add(new SetCardInfo("Flood", 87, Rarity.COMMON, mage.cards.f.Flood.class));
cards.add(new SetCardInfo("Flying Carpet", 371, Rarity.RARE, mage.cards.f.FlyingCarpet.class));
cards.add(new SetCardInfo("Fog", 155, Rarity.COMMON, mage.cards.f.Fog.class));
cards.add(new SetCardInfo("Force of Nature", 156, Rarity.RARE, mage.cards.f.ForceOfNature.class));
cards.add(new SetCardInfo("Force Spike", 88, Rarity.COMMON, mage.cards.f.ForceSpike.class));
cards.add(new SetCardInfo("Forest", 417, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Forest", 418, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Forest", 419, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Forest", 420, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Forget", 89, Rarity.RARE, mage.cards.f.Forget.class));
cards.add(new SetCardInfo("Fountain of Youth", 372, Rarity.UNCOMMON, mage.cards.f.FountainOfYouth.class));
cards.add(new SetCardInfo("Frozen Shade", 25, Rarity.COMMON, mage.cards.f.FrozenShade.class));
cards.add(new SetCardInfo("Fungusaur", 158, Rarity.RARE, mage.cards.f.Fungusaur.class));
cards.add(new SetCardInfo("Fyndhorn Elder", 159, Rarity.UNCOMMON, mage.cards.f.FyndhornElder.class));
cards.add(new SetCardInfo("Game of Chaos", 232, Rarity.RARE, mage.cards.g.GameOfChaos.class));
cards.add(new SetCardInfo("Gaseous Form", 90, Rarity.COMMON, mage.cards.g.GaseousForm.class));
cards.add(new SetCardInfo("Ghazban Ogre", 160, Rarity.COMMON, mage.cards.g.GhazbanOgre.class));
cards.add(new SetCardInfo("Giant Growth", 161, Rarity.COMMON, mage.cards.g.GiantGrowth.class));
cards.add(new SetCardInfo("Giant Spider", 162, Rarity.COMMON, mage.cards.g.GiantSpider.class));
cards.add(new SetCardInfo("Giant Strength", 233, Rarity.COMMON, mage.cards.g.GiantStrength.class));
cards.add(new SetCardInfo("Glacial Wall", 91, Rarity.UNCOMMON, mage.cards.g.GlacialWall.class));
cards.add(new SetCardInfo("Glasses of Urza", 374, Rarity.UNCOMMON, mage.cards.g.GlassesOfUrza.class));
cards.add(new SetCardInfo("Gloom", 27, Rarity.UNCOMMON, mage.cards.g.Gloom.class));
cards.add(new SetCardInfo("Goblin Digging Team", 234, Rarity.COMMON, mage.cards.g.GoblinDiggingTeam.class));
cards.add(new SetCardInfo("Goblin Hero", 235, Rarity.COMMON, mage.cards.g.GoblinHero.class));
cards.add(new SetCardInfo("Goblin King", 236, Rarity.RARE, mage.cards.g.GoblinKing.class));
cards.add(new SetCardInfo("Goblin War Drums", 237, Rarity.COMMON, GoblinWarDrums.class));
cards.add(new SetCardInfo("Goblin Warrens", 238, Rarity.RARE, mage.cards.g.GoblinWarrens.class));
cards.add(new SetCardInfo("Grapeshot Catapult", 375, Rarity.COMMON, mage.cards.g.GrapeshotCatapult.class));
cards.add(new SetCardInfo("Grizzly Bears", 163, Rarity.COMMON, mage.cards.g.GrizzlyBears.class));
cards.add(new SetCardInfo("Havenwood Battleground", 421, Rarity.UNCOMMON, mage.cards.h.HavenwoodBattleground.class));
cards.add(new SetCardInfo("Heal", 308, Rarity.COMMON, mage.cards.h.Heal.class));
cards.add(new SetCardInfo("Healing Salve", 309, Rarity.COMMON, mage.cards.h.HealingSalve.class));
cards.add(new SetCardInfo("Hecatomb", 29, Rarity.RARE, mage.cards.h.Hecatomb.class));
cards.add(new SetCardInfo("Hill Giant", 239, Rarity.COMMON, mage.cards.h.HillGiant.class));
cards.add(new SetCardInfo("Hollow Trees", 422, Rarity.RARE, mage.cards.h.HollowTrees.class));
cards.add(new SetCardInfo("Holy Strength", 311, Rarity.COMMON, mage.cards.h.HolyStrength.class));
cards.add(new SetCardInfo("Homarid Warrior", 92, Rarity.COMMON, HomaridWarrior.class));
cards.add(new SetCardInfo("Howl from Beyond", 30, Rarity.COMMON, mage.cards.h.HowlFromBeyond.class));
cards.add(new SetCardInfo("Howling Mine", 377, Rarity.RARE, mage.cards.h.HowlingMine.class));
cards.add(new SetCardInfo("Hungry Mist", 164, Rarity.COMMON, mage.cards.h.HungryMist.class));
cards.add(new SetCardInfo("Hurkyl's Recall", 93, Rarity.RARE, mage.cards.h.HurkylsRecall.class));
cards.add(new SetCardInfo("Hurloon Minotaur", 240, Rarity.COMMON, mage.cards.h.HurloonMinotaur.class));
cards.add(new SetCardInfo("Hurricane", 165, Rarity.UNCOMMON, mage.cards.h.Hurricane.class));
cards.add(new SetCardInfo("Hydroblast", 94, Rarity.UNCOMMON, mage.cards.h.Hydroblast.class));
cards.add(new SetCardInfo("Icatian Scout", 313, Rarity.COMMON, IcatianScout.class));
cards.add(new SetCardInfo("Icatian Store", 423, Rarity.RARE, mage.cards.i.IcatianStore.class));
cards.add(new SetCardInfo("Icatian Town", 314, Rarity.RARE, mage.cards.i.IcatianTown.class));
cards.add(new SetCardInfo("Imposing Visage", 241, Rarity.COMMON, mage.cards.i.ImposingVisage.class));
cards.add(new SetCardInfo("Incinerate", 242, Rarity.COMMON, mage.cards.i.Incinerate.class));
cards.add(new SetCardInfo("Inferno", 243, Rarity.RARE, mage.cards.i.Inferno.class));
cards.add(new SetCardInfo("Initiates of the Ebon Hand", 31, Rarity.COMMON, InitiatesOfTheEbonHand.class));
cards.add(new SetCardInfo("Instill Energy", 166, Rarity.UNCOMMON, mage.cards.i.InstillEnergy.class));
cards.add(new SetCardInfo("Ironclaw Orcs", 245, Rarity.COMMON, mage.cards.i.IronclawOrcs.class));
cards.add(new SetCardInfo("Ironroot Treefolk", 167, Rarity.COMMON, mage.cards.i.IronrootTreefolk.class));
cards.add(new SetCardInfo("Iron Star", 379, Rarity.UNCOMMON, mage.cards.i.IronStar.class));
cards.add(new SetCardInfo("Island", 425, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Island", 426, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Island", 427, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Island", 428, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Island Sanctuary", 315, Rarity.RARE, mage.cards.i.IslandSanctuary.class));
cards.add(new SetCardInfo("Ivory Cup", 380, Rarity.UNCOMMON, mage.cards.i.IvoryCup.class));
cards.add(new SetCardInfo("Ivory Guardians", 316, Rarity.UNCOMMON, mage.cards.i.IvoryGuardians.class));
cards.add(new SetCardInfo("Jade Monolith", 381, Rarity.RARE, mage.cards.j.JadeMonolith.class));
cards.add(new SetCardInfo("Jalum Tome", 382, Rarity.RARE, mage.cards.j.JalumTome.class));
cards.add(new SetCardInfo("Jandor's Saddlebags", 383, Rarity.RARE, mage.cards.j.JandorsSaddlebags.class));
cards.add(new SetCardInfo("Jayemdae Tome", 384, Rarity.RARE, mage.cards.j.JayemdaeTome.class));
cards.add(new SetCardInfo("Jester's Cap", 385, Rarity.RARE, mage.cards.j.JestersCap.class));
cards.add(new SetCardInfo("Johtull Wurm", 168, Rarity.UNCOMMON, mage.cards.j.JohtullWurm.class));
cards.add(new SetCardInfo("Jokulhaups", 246, Rarity.RARE, mage.cards.j.Jokulhaups.class));
cards.add(new SetCardInfo("Justice", 317, Rarity.UNCOMMON, mage.cards.j.Justice.class));
cards.add(new SetCardInfo("Juxtapose", 95, Rarity.RARE, mage.cards.j.Juxtapose.class));
cards.add(new SetCardInfo("Karma", 318, Rarity.UNCOMMON, mage.cards.k.Karma.class));
cards.add(new SetCardInfo("Karplusan Forest", 429, Rarity.RARE, mage.cards.k.KarplusanForest.class));
cards.add(new SetCardInfo("Keldon Warlord", 247, Rarity.UNCOMMON, mage.cards.k.KeldonWarlord.class));
cards.add(new SetCardInfo("Killer Bees", 169, Rarity.UNCOMMON, mage.cards.k.KillerBees.class));
cards.add(new SetCardInfo("Kismet", 319, Rarity.UNCOMMON, mage.cards.k.Kismet.class));
cards.add(new SetCardInfo("Kjeldoran Dead", 32, Rarity.COMMON, mage.cards.k.KjeldoranDead.class));
cards.add(new SetCardInfo("Kjeldoran Royal Guard", 320, Rarity.RARE, mage.cards.k.KjeldoranRoyalGuard.class));
cards.add(new SetCardInfo("Knight of Stromgald", 33, Rarity.UNCOMMON, mage.cards.k.KnightOfStromgald.class));
cards.add(new SetCardInfo("Krovikan Fetish", 34, Rarity.COMMON, mage.cards.k.KrovikanFetish.class));
cards.add(new SetCardInfo("Krovikan Sorcerer", 96, Rarity.COMMON, mage.cards.k.KrovikanSorcerer.class));
cards.add(new SetCardInfo("Leshrac's Rite", 35, Rarity.UNCOMMON, mage.cards.l.LeshracsRite.class));
cards.add(new SetCardInfo("Ley Druid", 170, Rarity.COMMON, mage.cards.l.LeyDruid.class));
cards.add(new SetCardInfo("Lhurgoyf", 171, Rarity.RARE, mage.cards.l.Lhurgoyf.class));
cards.add(new SetCardInfo("Library of Leng", 387, Rarity.UNCOMMON, mage.cards.l.LibraryOfLeng.class));
cards.add(new SetCardInfo("Lifeforce", 172, Rarity.UNCOMMON, mage.cards.l.Lifeforce.class));
cards.add(new SetCardInfo("Lifetap", 99, Rarity.UNCOMMON, mage.cards.l.Lifetap.class));
cards.add(new SetCardInfo("Living Artifact", 173, Rarity.RARE, mage.cards.l.LivingArtifact.class));
cards.add(new SetCardInfo("Living Lands", 174, Rarity.RARE, mage.cards.l.LivingLands.class));
cards.add(new SetCardInfo("Llanowar Elves", 175, Rarity.COMMON, mage.cards.l.LlanowarElves.class));
cards.add(new SetCardInfo("Lord of Atlantis", 100, Rarity.RARE, mage.cards.l.LordOfAtlantis.class));
cards.add(new SetCardInfo("Lord of the Pit", 36, Rarity.RARE, mage.cards.l.LordOfThePit.class));
cards.add(new SetCardInfo("Lost Soul", 37, Rarity.COMMON, mage.cards.l.LostSoul.class));
cards.add(new SetCardInfo("Lure", 176, Rarity.UNCOMMON, mage.cards.l.Lure.class));
cards.add(new SetCardInfo("Magus of the Unseen", 102, Rarity.RARE, mage.cards.m.MagusOfTheUnseen.class));
cards.add(new SetCardInfo("Manabarbs", 250, Rarity.RARE, mage.cards.m.Manabarbs.class));
cards.add(new SetCardInfo("Mana Clash", 248, Rarity.RARE, mage.cards.m.ManaClash.class));
cards.add(new SetCardInfo("Mana Flare", 249, Rarity.RARE, mage.cards.m.ManaFlare.class));
cards.add(new SetCardInfo("Mana Vault", 388, Rarity.RARE, mage.cards.m.ManaVault.class));
cards.add(new SetCardInfo("Marsh Viper", 177, Rarity.COMMON, mage.cards.m.MarshViper.class));
cards.add(new SetCardInfo("Meekstone", 389, Rarity.RARE, mage.cards.m.Meekstone.class));
cards.add(new SetCardInfo("Memory Lapse", 103, Rarity.COMMON, mage.cards.m.MemoryLapse.class));
cards.add(new SetCardInfo("Merfolk of the Pearl Trident", 104, Rarity.COMMON, mage.cards.m.MerfolkOfThePearlTrident.class));
cards.add(new SetCardInfo("Mesa Falcon", 322, Rarity.COMMON, MesaFalcon.class));
cards.add(new SetCardInfo("Millstone", 390, Rarity.RARE, mage.cards.m.Millstone.class));
cards.add(new SetCardInfo("Mind Ravel", 38, Rarity.COMMON, mage.cards.m.MindRavel.class));
cards.add(new SetCardInfo("Mindstab Thrull", 40, Rarity.COMMON, MindstabThrull.class));
cards.add(new SetCardInfo("Mind Warp", 39, Rarity.UNCOMMON, mage.cards.m.MindWarp.class));
cards.add(new SetCardInfo("Mole Worms", 41, Rarity.UNCOMMON, mage.cards.m.MoleWorms.class));
cards.add(new SetCardInfo("Mons's Goblin Raiders", 251, Rarity.COMMON, mage.cards.m.MonssGoblinRaiders.class));
cards.add(new SetCardInfo("Mountain", 430, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Mountain", 431, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Mountain", 432, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Mountain", 433, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Mountain Goat", 252, Rarity.COMMON, mage.cards.m.MountainGoat.class));
cards.add(new SetCardInfo("Murk Dwellers", 42, Rarity.COMMON, mage.cards.m.MurkDwellers.class));
cards.add(new SetCardInfo("Nature's Lore", 178, Rarity.COMMON, mage.cards.n.NaturesLore.class));
cards.add(new SetCardInfo("Necrite", 43, Rarity.COMMON, Necrite.class));
cards.add(new SetCardInfo("Necropotence", 44, Rarity.RARE, mage.cards.n.Necropotence.class));
cards.add(new SetCardInfo("Nether Shadow", 45, Rarity.RARE, mage.cards.n.NetherShadow.class));
cards.add(new SetCardInfo("Nevinyrral's Disk", 391, Rarity.RARE, mage.cards.n.NevinyrralsDisk.class));
cards.add(new SetCardInfo("Nightmare", 46, Rarity.RARE, mage.cards.n.Nightmare.class));
cards.add(new SetCardInfo("Obelisk of Undoing", 392, Rarity.RARE, mage.cards.o.ObeliskOfUndoing.class));
cards.add(new SetCardInfo("Orcish Artillery", 253, Rarity.UNCOMMON, mage.cards.o.OrcishArtillery.class));
cards.add(new SetCardInfo("Orcish Captain", 254, Rarity.UNCOMMON, mage.cards.o.OrcishCaptain.class));
cards.add(new SetCardInfo("Orcish Oriflamme", 257, Rarity.UNCOMMON, mage.cards.o.OrcishOriflamme.class));
cards.add(new SetCardInfo("Order of the Sacred Torch", 324, Rarity.RARE, mage.cards.o.OrderOfTheSacredTorch.class));
cards.add(new SetCardInfo("Order of the White Shield", 325, Rarity.UNCOMMON, mage.cards.o.OrderOfTheWhiteShield.class));
cards.add(new SetCardInfo("Orgg", 259, Rarity.RARE, mage.cards.o.Orgg.class));
cards.add(new SetCardInfo("Ornithopter", 393, Rarity.UNCOMMON, mage.cards.o.Ornithopter.class));
cards.add(new SetCardInfo("Panic", 260, Rarity.COMMON, mage.cards.p.Panic.class));
cards.add(new SetCardInfo("Paralyze", 47, Rarity.COMMON, mage.cards.p.Paralyze.class));
cards.add(new SetCardInfo("Pearled Unicorn", 326, Rarity.COMMON, mage.cards.p.PearledUnicorn.class));
cards.add(new SetCardInfo("Pentagram of the Ages", 394, Rarity.RARE, mage.cards.p.PentagramOfTheAges.class));
cards.add(new SetCardInfo("Personal Incarnation", 327, Rarity.RARE, mage.cards.p.PersonalIncarnation.class));
cards.add(new SetCardInfo("Pestilence", 48, Rarity.COMMON, mage.cards.p.Pestilence.class));
cards.add(new SetCardInfo("Phantasmal Forces", 106, Rarity.UNCOMMON, mage.cards.p.PhantasmalForces.class));
cards.add(new SetCardInfo("Phantasmal Terrain", 107, Rarity.COMMON, mage.cards.p.PhantasmalTerrain.class));
cards.add(new SetCardInfo("Phantom Monster", 108, Rarity.UNCOMMON, mage.cards.p.PhantomMonster.class));
cards.add(new SetCardInfo("Pirate Ship", 109, Rarity.RARE, mage.cards.p.PirateShip.class));
cards.add(new SetCardInfo("Pit Scorpion", 49, Rarity.COMMON, mage.cards.p.PitScorpion.class));
cards.add(new SetCardInfo("Plague Rats", 50, Rarity.COMMON, mage.cards.p.PlagueRats.class));
cards.add(new SetCardInfo("Plains", 434, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Plains", 435, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Plains", 436, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Plains", 437, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Portent", 110, Rarity.COMMON, mage.cards.p.Portent.class));
cards.add(new SetCardInfo("Power Sink", 111, Rarity.UNCOMMON, mage.cards.p.PowerSink.class));
cards.add(new SetCardInfo("Pox", 51, Rarity.RARE, mage.cards.p.Pox.class));
cards.add(new SetCardInfo("Pradesh Gypsies", 179, Rarity.COMMON, mage.cards.p.PradeshGypsies.class));
cards.add(new SetCardInfo("Primal Clay", 395, Rarity.RARE, mage.cards.p.PrimalClay.class));
cards.add(new SetCardInfo("Primal Order", 180, Rarity.RARE, mage.cards.p.PrimalOrder.class));
cards.add(new SetCardInfo("Prodigal Sorcerer", 112, Rarity.COMMON, mage.cards.p.ProdigalSorcerer.class));
cards.add(new SetCardInfo("Psychic Venom", 113, Rarity.COMMON, mage.cards.p.PsychicVenom.class));
cards.add(new SetCardInfo("Pyroblast", 262, Rarity.UNCOMMON, mage.cards.p.Pyroblast.class));
cards.add(new SetCardInfo("Pyrotechnics", 263, Rarity.UNCOMMON, mage.cards.p.Pyrotechnics.class));
cards.add(new SetCardInfo("Radjan Spirit", 182, Rarity.UNCOMMON, mage.cards.r.RadjanSpirit.class));
cards.add(new SetCardInfo("Rag Man", 52, Rarity.RARE, mage.cards.r.RagMan.class));
cards.add(new SetCardInfo("Raise Dead", 53, Rarity.COMMON, mage.cards.r.RaiseDead.class));
cards.add(new SetCardInfo("Ray of Command", 114, Rarity.COMMON, mage.cards.r.RayOfCommand.class));
cards.add(new SetCardInfo("Recall", 115, Rarity.RARE, mage.cards.r.Recall.class));
cards.add(new SetCardInfo("Reef Pirates", 116, Rarity.COMMON, ReefPirates.class));
cards.add(new SetCardInfo("Regeneration", 183, Rarity.COMMON, mage.cards.r.Regeneration.class));
cards.add(new SetCardInfo("Remove Soul", 117, Rarity.COMMON, mage.cards.r.RemoveSoul.class));
cards.add(new SetCardInfo("Repentant Blacksmith", 330, Rarity.COMMON, mage.cards.r.RepentantBlacksmith.class));
cards.add(new SetCardInfo("Reverse Damage", 331, Rarity.RARE, mage.cards.r.ReverseDamage.class));
cards.add(new SetCardInfo("Righteousness", 332, Rarity.RARE, mage.cards.r.Righteousness.class));
cards.add(new SetCardInfo("Rod of Ruin", 396, Rarity.UNCOMMON, mage.cards.r.RodOfRuin.class));
cards.add(new SetCardInfo("Ruins of Trokair", 438, Rarity.UNCOMMON, mage.cards.r.RuinsOfTrokair.class));
cards.add(new SetCardInfo("Sabretooth Tiger", 264, Rarity.COMMON, mage.cards.s.SabretoothTiger.class));
cards.add(new SetCardInfo("Samite Healer", 334, Rarity.COMMON, mage.cards.s.SamiteHealer.class));
cards.add(new SetCardInfo("Sand Silos", 439, Rarity.RARE, mage.cards.s.SandSilos.class));
cards.add(new SetCardInfo("Scaled Wurm", 184, Rarity.COMMON, mage.cards.s.ScaledWurm.class));
cards.add(new SetCardInfo("Scathe Zombies", 54, Rarity.COMMON, mage.cards.s.ScatheZombies.class));
cards.add(new SetCardInfo("Scavenger Folk", 185, Rarity.COMMON, mage.cards.s.ScavengerFolk.class));
cards.add(new SetCardInfo("Scryb Sprites", 186, Rarity.COMMON, mage.cards.s.ScrybSprites.class));
cards.add(new SetCardInfo("Sea Serpent", 118, Rarity.COMMON, mage.cards.s.SeaSerpent.class));
cards.add(new SetCardInfo("Seasinger", 121, Rarity.UNCOMMON, mage.cards.s.Seasinger.class));
cards.add(new SetCardInfo("Sea Spirit", 119, Rarity.UNCOMMON, mage.cards.s.SeaSpirit.class));
cards.add(new SetCardInfo("Sea Sprite", 120, Rarity.UNCOMMON, mage.cards.s.SeaSprite.class));
cards.add(new SetCardInfo("Segovian Leviathan", 122, Rarity.UNCOMMON, mage.cards.s.SegovianLeviathan.class));
cards.add(new SetCardInfo("Sengir Autocrat", 55, Rarity.RARE, mage.cards.s.SengirAutocrat.class));
cards.add(new SetCardInfo("Serpent Generator", 397, Rarity.RARE, mage.cards.s.SerpentGenerator.class));
cards.add(new SetCardInfo("Shanodin Dryads", 187, Rarity.COMMON, mage.cards.s.ShanodinDryads.class));
cards.add(new SetCardInfo("Shapeshifter", 398, Rarity.UNCOMMON, mage.cards.s.Shapeshifter.class));
cards.add(new SetCardInfo("Shatter", 265, Rarity.COMMON, mage.cards.s.Shatter.class));
cards.add(new SetCardInfo("Shatterstorm", 266, Rarity.UNCOMMON, mage.cards.s.Shatterstorm.class));
cards.add(new SetCardInfo("Shield Wall", 339, Rarity.COMMON, mage.cards.s.ShieldWall.class));
cards.add(new SetCardInfo("Shivan Dragon", 267, Rarity.RARE, mage.cards.s.ShivanDragon.class));
cards.add(new SetCardInfo("Shrink", 188, Rarity.COMMON, mage.cards.s.Shrink.class));
cards.add(new SetCardInfo("Sibilant Spirit", 123, Rarity.RARE, mage.cards.s.SibilantSpirit.class));
cards.add(new SetCardInfo("Skull Catapult", 399, Rarity.UNCOMMON, mage.cards.s.SkullCatapult.class));
cards.add(new SetCardInfo("Smoke", 268, Rarity.RARE, mage.cards.s.Smoke.class));
cards.add(new SetCardInfo("Sorceress Queen", 56, Rarity.RARE, mage.cards.s.SorceressQueen.class));
cards.add(new SetCardInfo("Soul Net", 400, Rarity.UNCOMMON, mage.cards.s.SoulNet.class));
cards.add(new SetCardInfo("Spell Blast", 126, Rarity.COMMON, mage.cards.s.SpellBlast.class));
cards.add(new SetCardInfo("Spirit Link", 340, Rarity.UNCOMMON, mage.cards.s.SpiritLink.class));
cards.add(new SetCardInfo("Stampede", 189, Rarity.RARE, mage.cards.s.Stampede.class));
cards.add(new SetCardInfo("Stasis", 127, Rarity.RARE, mage.cards.s.Stasis.class));
cards.add(new SetCardInfo("Steal Artifact", 128, Rarity.UNCOMMON, mage.cards.s.StealArtifact.class));
cards.add(new SetCardInfo("Stone Giant", 269, Rarity.UNCOMMON, mage.cards.s.StoneGiant.class));
cards.add(new SetCardInfo("Stone Rain", 270, Rarity.COMMON, mage.cards.s.StoneRain.class));
cards.add(new SetCardInfo("Stone Spirit", 271, Rarity.UNCOMMON, mage.cards.s.StoneSpirit.class));
cards.add(new SetCardInfo("Stream of Life", 190, Rarity.COMMON, mage.cards.s.StreamOfLife.class));
cards.add(new SetCardInfo("Stromgald Cabal", 57, Rarity.RARE, mage.cards.s.StromgaldCabal.class));
cards.add(new SetCardInfo("Sulfurous Springs", 440, Rarity.RARE, mage.cards.s.SulfurousSprings.class));
cards.add(new SetCardInfo("Svyelunite Temple", 441, Rarity.UNCOMMON, mage.cards.s.SvyeluniteTemple.class));
cards.add(new SetCardInfo("Swamp", 442, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Swamp", 443, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Swamp", 444, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Swamp", 445, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Sylvan Library", 191, Rarity.RARE, mage.cards.s.SylvanLibrary.class));
cards.add(new SetCardInfo("Tarpan", 192, Rarity.COMMON, mage.cards.t.Tarpan.class));
cards.add(new SetCardInfo("Tawnos's Weaponry", 401, Rarity.UNCOMMON, mage.cards.t.TawnossWeaponry.class));
cards.add(new SetCardInfo("Terror", 58, Rarity.COMMON, mage.cards.t.Terror.class));
cards.add(new SetCardInfo("The Brute", 272, Rarity.COMMON, mage.cards.t.TheBrute.class));
cards.add(new SetCardInfo("The Hive", 402, Rarity.RARE, mage.cards.t.TheHive.class));
cards.add(new SetCardInfo("The Wretched", 59, Rarity.RARE, mage.cards.t.TheWretched.class));
cards.add(new SetCardInfo("Thicket Basilisk", 193, Rarity.UNCOMMON, mage.cards.t.ThicketBasilisk.class));
cards.add(new SetCardInfo("Throne of Bone", 403, Rarity.UNCOMMON, mage.cards.t.ThroneOfBone.class));
cards.add(new SetCardInfo("Thrull Retainer", 60, Rarity.UNCOMMON, mage.cards.t.ThrullRetainer.class));
cards.add(new SetCardInfo("Time Bomb", 404, Rarity.RARE, mage.cards.t.TimeBomb.class));
cards.add(new SetCardInfo("Titania's Song", 194, Rarity.RARE, mage.cards.t.TitaniasSong.class));
cards.add(new SetCardInfo("Torture", 61, Rarity.COMMON, Torture.class));
cards.add(new SetCardInfo("Touch of Death", 62, Rarity.COMMON, mage.cards.t.TouchOfDeath.class));
cards.add(new SetCardInfo("Tranquility", 195, Rarity.COMMON, mage.cards.t.Tranquility.class));
cards.add(new SetCardInfo("Tsunami", 196, Rarity.UNCOMMON, mage.cards.t.Tsunami.class));
cards.add(new SetCardInfo("Tundra Wolves", 342, Rarity.COMMON, mage.cards.t.TundraWolves.class));
cards.add(new SetCardInfo("Twiddle", 130, Rarity.COMMON, mage.cards.t.Twiddle.class));
cards.add(new SetCardInfo("Underground River", 446, Rarity.RARE, mage.cards.u.UndergroundRiver.class));
cards.add(new SetCardInfo("Unholy Strength", 63, Rarity.COMMON, mage.cards.u.UnholyStrength.class));
cards.add(new SetCardInfo("Unstable Mutation", 131, Rarity.COMMON, mage.cards.u.UnstableMutation.class));
cards.add(new SetCardInfo("Unsummon", 132, Rarity.COMMON, mage.cards.u.Unsummon.class));
cards.add(new SetCardInfo("Untamed Wilds", 197, Rarity.UNCOMMON, mage.cards.u.UntamedWilds.class));
cards.add(new SetCardInfo("Updraft", 133, Rarity.COMMON, mage.cards.u.Updraft.class));
cards.add(new SetCardInfo("Urza's Bauble", 406, Rarity.UNCOMMON, mage.cards.u.UrzasBauble.class));
cards.add(new SetCardInfo("Urza's Mine", 447, Rarity.COMMON, mage.cards.u.UrzasMine.class));
cards.add(new SetCardInfo("Urza's Power Plant", 448, Rarity.COMMON, mage.cards.u.UrzasPowerPlant.class));
cards.add(new SetCardInfo("Urza's Tower", 449, Rarity.COMMON, mage.cards.u.UrzasTower.class));
cards.add(new SetCardInfo("Vampire Bats", 64, Rarity.COMMON, mage.cards.v.VampireBats.class));
cards.add(new SetCardInfo("Venom", 198, Rarity.COMMON, mage.cards.v.Venom.class));
cards.add(new SetCardInfo("Verduran Enchantress", 199, Rarity.RARE, mage.cards.v.VerduranEnchantress.class));
cards.add(new SetCardInfo("Vodalian Soldiers", 134, Rarity.COMMON, VodalianSoldiers.class));
cards.add(new SetCardInfo("Wall of Air", 135, Rarity.UNCOMMON, mage.cards.w.WallOfAir.class));
cards.add(new SetCardInfo("Wall of Bone", 65, Rarity.UNCOMMON, mage.cards.w.WallOfBone.class));
cards.add(new SetCardInfo("Wall of Brambles", 200, Rarity.UNCOMMON, mage.cards.w.WallOfBrambles.class));
cards.add(new SetCardInfo("Wall of Fire", 273, Rarity.UNCOMMON, mage.cards.w.WallOfFire.class));
cards.add(new SetCardInfo("Wall of Spears", 407, Rarity.COMMON, mage.cards.w.WallOfSpears.class));
cards.add(new SetCardInfo("Wall of Stone", 274, Rarity.UNCOMMON, mage.cards.w.WallOfStone.class));
cards.add(new SetCardInfo("Wall of Swords", 343, Rarity.UNCOMMON, mage.cards.w.WallOfSwords.class));
cards.add(new SetCardInfo("Wanderlust", 201, Rarity.UNCOMMON, mage.cards.w.Wanderlust.class));
cards.add(new SetCardInfo("War Mammoth", 202, Rarity.COMMON, mage.cards.w.WarMammoth.class));
cards.add(new SetCardInfo("Warp Artifact", 66, Rarity.RARE, mage.cards.w.WarpArtifact.class));
cards.add(new SetCardInfo("Weakness", 67, Rarity.COMMON, mage.cards.w.Weakness.class));
cards.add(new SetCardInfo("Whirling Dervish", 203, Rarity.UNCOMMON, mage.cards.w.WhirlingDervish.class));
cards.add(new SetCardInfo("White Knight", 344, Rarity.UNCOMMON, mage.cards.w.WhiteKnight.class));
cards.add(new SetCardInfo("Wild Growth", 204, Rarity.COMMON, mage.cards.w.WildGrowth.class));
cards.add(new SetCardInfo("Winds of Change", 275, Rarity.RARE, mage.cards.w.WindsOfChange.class));
cards.add(new SetCardInfo("Wind Spirit", 136, Rarity.UNCOMMON, mage.cards.w.WindSpirit.class));
cards.add(new SetCardInfo("Winter Orb", 408, Rarity.RARE, mage.cards.w.WinterOrb.class));
cards.add(new SetCardInfo("Wolverine Pack", 206, Rarity.UNCOMMON, mage.cards.w.WolverinePack.class));
cards.add(new SetCardInfo("Wooden Sphere", 409, Rarity.UNCOMMON, mage.cards.w.WoodenSphere.class));
cards.add(new SetCardInfo("Word of Blasting", 276, Rarity.UNCOMMON, mage.cards.w.WordOfBlasting.class));
cards.add(new SetCardInfo("Wrath of God", 345, Rarity.RARE, mage.cards.w.WrathOfGod.class));
cards.add(new SetCardInfo("Wyluli Wolf", 207, Rarity.RARE, mage.cards.w.WyluliWolf.class));
cards.add(new SetCardInfo("Xenic Poltergeist", 68, Rarity.RARE, mage.cards.x.XenicPoltergeist.class));
cards.add(new SetCardInfo("Zephyr Falcon", 137, Rarity.COMMON, mage.cards.z.ZephyrFalcon.class));
cards.add(new SetCardInfo("Zombie Master", 69, Rarity.RARE, mage.cards.z.ZombieMaster.class));
cards.add(new SetCardInfo("Zur's Weirding", 138, Rarity.RARE, mage.cards.z.ZursWeirding.class));
}
}
package mage.sets;
import mage.cards.ExpansionSet;
import mage.cards.b.BrassclawOrcs;
import mage.cards.d.DwarvenSoldier;
import mage.cards.g.GoblinWarDrums;
import mage.cards.h.HomaridWarrior;
import mage.cards.i.IcatianScout;
import mage.cards.i.InitiatesOfTheEbonHand;
import mage.cards.m.MesaFalcon;
import mage.cards.m.MindstabThrull;
import mage.cards.n.Necrite;
import mage.cards.r.ReefPirates;
import mage.cards.t.Torture;
import mage.cards.v.VodalianSoldiers;
import mage.constants.SetType;
import mage.constants.Rarity;
import mage.cards.CardGraphicInfo;
public class FifthEdition extends ExpansionSet {
private static final FifthEdition fINSTANCE = new FifthEdition();
public static FifthEdition getInstance() {
return fINSTANCE;
}
private FifthEdition() {
super("Fifth Edition", "5ED", ExpansionSet.buildDate(1997, 3, 1), SetType.CORE);
this.hasBoosters = true;
this.numBoosterLands = 0;
this.numBoosterCommon = 11;
this.numBoosterUncommon = 3;
this.numBoosterRare = 1;
this.ratioBoosterMythic = 0;
cards.add(new SetCardInfo("Abbey Gargoyles", 277, Rarity.UNCOMMON, mage.cards.a.AbbeyGargoyles.class));
cards.add(new SetCardInfo("Abyssal Specter", 1, Rarity.UNCOMMON, mage.cards.a.AbyssalSpecter.class));
cards.add(new SetCardInfo("Adarkar Wastes", 410, Rarity.RARE, mage.cards.a.AdarkarWastes.class));
cards.add(new SetCardInfo("Air Elemental", 71, Rarity.UNCOMMON, mage.cards.a.AirElemental.class));
cards.add(new SetCardInfo("Akron Legionnaire", 278, Rarity.RARE, mage.cards.a.AkronLegionnaire.class));
cards.add(new SetCardInfo("Aladdin's Ring", 346, Rarity.RARE, mage.cards.a.AladdinsRing.class));
cards.add(new SetCardInfo("Ambush Party", 208, Rarity.COMMON, mage.cards.a.AmbushParty.class));
cards.add(new SetCardInfo("Amulet of Kroog", 347, Rarity.COMMON, mage.cards.a.AmuletOfKroog.class));
cards.add(new SetCardInfo("An-Havva Constable", 139, Rarity.RARE, mage.cards.a.AnHavvaConstable.class));
cards.add(new SetCardInfo("Angry Mob", 280, Rarity.UNCOMMON, mage.cards.a.AngryMob.class));
cards.add(new SetCardInfo("Animate Dead", 2, Rarity.UNCOMMON, mage.cards.a.AnimateDead.class));
cards.add(new SetCardInfo("Animate Wall", 281, Rarity.RARE, mage.cards.a.AnimateWall.class));
cards.add(new SetCardInfo("Ankh of Mishra", 348, Rarity.RARE, mage.cards.a.AnkhOfMishra.class));
cards.add(new SetCardInfo("Arenson's Aura", 282, Rarity.UNCOMMON, mage.cards.a.ArensonsAura.class));
cards.add(new SetCardInfo("Armageddon", 283, Rarity.RARE, mage.cards.a.Armageddon.class));
cards.add(new SetCardInfo("Armor of Faith", 284, Rarity.COMMON, mage.cards.a.ArmorOfFaith.class));
cards.add(new SetCardInfo("Ashes to Ashes", 3, Rarity.UNCOMMON, mage.cards.a.AshesToAshes.class));
cards.add(new SetCardInfo("Ashnod's Altar", 349, Rarity.UNCOMMON, mage.cards.a.AshnodsAltar.class));
cards.add(new SetCardInfo("Ashnod's Transmogrant", 350, Rarity.COMMON, mage.cards.a.AshnodsTransmogrant.class));
cards.add(new SetCardInfo("Aspect of Wolf", 140, Rarity.RARE, mage.cards.a.AspectOfWolf.class));
cards.add(new SetCardInfo("Atog", 209, Rarity.UNCOMMON, mage.cards.a.Atog.class));
cards.add(new SetCardInfo("Aurochs", 141, Rarity.COMMON, mage.cards.a.Aurochs.class));
cards.add(new SetCardInfo("Aysen Bureaucrats", 285, Rarity.COMMON, mage.cards.a.AysenBureaucrats.class));
cards.add(new SetCardInfo("Azure Drake", 73, Rarity.UNCOMMON, mage.cards.a.AzureDrake.class));
cards.add(new SetCardInfo("Bad Moon", 4, Rarity.RARE, mage.cards.b.BadMoon.class));
cards.add(new SetCardInfo("Ball Lightning", 210, Rarity.RARE, mage.cards.b.BallLightning.class));
cards.add(new SetCardInfo("Barbed Sextant", 351, Rarity.COMMON, mage.cards.b.BarbedSextant.class));
cards.add(new SetCardInfo("Barl's Cage", 352, Rarity.RARE, mage.cards.b.BarlsCage.class));
cards.add(new SetCardInfo("Binding Grasp", 74, Rarity.UNCOMMON, mage.cards.b.BindingGrasp.class));
cards.add(new SetCardInfo("Bird Maiden", 211, Rarity.COMMON, mage.cards.b.BirdMaiden.class));
cards.add(new SetCardInfo("Birds of Paradise", 142, Rarity.RARE, mage.cards.b.BirdsOfParadise.class));
cards.add(new SetCardInfo("Black Knight", 5, Rarity.UNCOMMON, mage.cards.b.BlackKnight.class));
cards.add(new SetCardInfo("Blessed Wine", 287, Rarity.COMMON, mage.cards.b.BlessedWine.class));
cards.add(new SetCardInfo("Blight", 6, Rarity.UNCOMMON, mage.cards.b.Blight.class));
cards.add(new SetCardInfo("Blinking Spirit", 288, Rarity.RARE, mage.cards.b.BlinkingSpirit.class));
cards.add(new SetCardInfo("Blood Lust", 212, Rarity.COMMON, mage.cards.b.BloodLust.class));
cards.add(new SetCardInfo("Bog Imp", 7, Rarity.COMMON, mage.cards.b.BogImp.class));
cards.add(new SetCardInfo("Bog Rats", 8, Rarity.COMMON, mage.cards.b.BogRats.class));
cards.add(new SetCardInfo("Bog Wraith", 9, Rarity.UNCOMMON, mage.cards.b.BogWraith.class));
cards.add(new SetCardInfo("Boomerang", 75, Rarity.COMMON, mage.cards.b.Boomerang.class));
cards.add(new SetCardInfo("Bottle of Suleiman", 354, Rarity.RARE, mage.cards.b.BottleOfSuleiman.class));
cards.add(new SetCardInfo("Bottomless Vault", 411, Rarity.RARE, mage.cards.b.BottomlessVault.class));
cards.add(new SetCardInfo("Brainstorm", 76, Rarity.COMMON, mage.cards.b.Brainstorm.class));
cards.add(new SetCardInfo("Brassclaw Orcs", 213, Rarity.COMMON, BrassclawOrcs.class));
cards.add(new SetCardInfo("Breeding Pit", 10, Rarity.UNCOMMON, mage.cards.b.BreedingPit.class));
cards.add(new SetCardInfo("Brothers of Fire", 214, Rarity.COMMON, mage.cards.b.BrothersOfFire.class));
cards.add(new SetCardInfo("Brushland", 412, Rarity.RARE, mage.cards.b.Brushland.class));
cards.add(new SetCardInfo("Caribou Range", 290, Rarity.RARE, mage.cards.c.CaribouRange.class));
cards.add(new SetCardInfo("Carrion Ants", 12, Rarity.UNCOMMON, mage.cards.c.CarrionAnts.class));
cards.add(new SetCardInfo("Castle", 291, Rarity.UNCOMMON, mage.cards.c.Castle.class));
cards.add(new SetCardInfo("Cat Warriors", 144, Rarity.COMMON, mage.cards.c.CatWarriors.class));
cards.add(new SetCardInfo("Cave People", 215, Rarity.UNCOMMON, mage.cards.c.CavePeople.class));
cards.add(new SetCardInfo("Chub Toad", 145, Rarity.COMMON, mage.cards.c.ChubToad.class));
cards.add(new SetCardInfo("Circle of Protection: Artifacts", 292, Rarity.COMMON, mage.cards.c.CircleOfProtectionArtifacts.class));
cards.add(new SetCardInfo("Circle of Protection: Black", 293, Rarity.COMMON, mage.cards.c.CircleOfProtectionBlack.class));
cards.add(new SetCardInfo("Circle of Protection: Blue", 294, Rarity.COMMON, mage.cards.c.CircleOfProtectionBlue.class));
cards.add(new SetCardInfo("Circle of Protection: Green", 295, Rarity.COMMON, mage.cards.c.CircleOfProtectionGreen.class));
cards.add(new SetCardInfo("Circle of Protection: Red", 296, Rarity.COMMON, mage.cards.c.CircleOfProtectionRed.class));
cards.add(new SetCardInfo("Circle of Protection: White", 297, Rarity.COMMON, mage.cards.c.CircleOfProtectionWhite.class));
cards.add(new SetCardInfo("City of Brass", 413, Rarity.RARE, mage.cards.c.CityOfBrass.class));
cards.add(new SetCardInfo("Clay Statue", 355, Rarity.COMMON, mage.cards.c.ClayStatue.class));
cards.add(new SetCardInfo("Clockwork Beast", 356, Rarity.RARE, mage.cards.c.ClockworkBeast.class));
cards.add(new SetCardInfo("Cockatrice", 146, Rarity.RARE, mage.cards.c.Cockatrice.class));
cards.add(new SetCardInfo("Colossus of Sardia", 358, Rarity.RARE, mage.cards.c.ColossusOfSardia.class));
cards.add(new SetCardInfo("Conquer", 216, Rarity.UNCOMMON, mage.cards.c.Conquer.class));
cards.add(new SetCardInfo("Coral Helm", 359, Rarity.RARE, mage.cards.c.CoralHelm.class));
cards.add(new SetCardInfo("Counterspell", 77, Rarity.COMMON, mage.cards.c.Counterspell.class));
cards.add(new SetCardInfo("Craw Giant", 147, Rarity.UNCOMMON, mage.cards.c.CrawGiant.class));
cards.add(new SetCardInfo("Craw Wurm", 148, Rarity.COMMON, mage.cards.c.CrawWurm.class));
cards.add(new SetCardInfo("Crimson Manticore", 217, Rarity.RARE, mage.cards.c.CrimsonManticore.class));
cards.add(new SetCardInfo("Crown of the Ages", 360, Rarity.RARE, mage.cards.c.CrownOfTheAges.class));
cards.add(new SetCardInfo("Crumble", 149, Rarity.UNCOMMON, mage.cards.c.Crumble.class));
cards.add(new SetCardInfo("Crusade", 298, Rarity.RARE, mage.cards.c.Crusade.class));
cards.add(new SetCardInfo("Crystal Rod", 361, Rarity.UNCOMMON, mage.cards.c.CrystalRod.class));
cards.add(new SetCardInfo("Cursed Land", 14, Rarity.UNCOMMON, mage.cards.c.CursedLand.class));
cards.add(new SetCardInfo("Dance of Many", 78, Rarity.RARE, mage.cards.d.DanceOfMany.class));
cards.add(new SetCardInfo("Dancing Scimitar", 362, Rarity.RARE, mage.cards.d.DancingScimitar.class));
cards.add(new SetCardInfo("Dandan", 79, Rarity.COMMON, mage.cards.d.Dandan.class));
cards.add(new SetCardInfo("Dark Maze", 80, Rarity.COMMON, mage.cards.d.DarkMaze.class));
cards.add(new SetCardInfo("Dark Ritual", 15, Rarity.COMMON, mage.cards.d.DarkRitual.class));
cards.add(new SetCardInfo("D'Avenant Archer", 299, Rarity.COMMON, mage.cards.d.DAvenantArcher.class));
cards.add(new SetCardInfo("Deathgrip", 16, Rarity.UNCOMMON, mage.cards.d.Deathgrip.class));
cards.add(new SetCardInfo("Death Speakers", 300, Rarity.COMMON, mage.cards.d.DeathSpeakers.class));
cards.add(new SetCardInfo("Death Ward", 301, Rarity.COMMON, mage.cards.d.DeathWard.class));
cards.add(new SetCardInfo("Deflection", 81, Rarity.RARE, mage.cards.d.Deflection.class));
cards.add(new SetCardInfo("Derelor", 17, Rarity.RARE, mage.cards.d.Derelor.class));
cards.add(new SetCardInfo("Desert Twister", 150, Rarity.UNCOMMON, mage.cards.d.DesertTwister.class));
cards.add(new SetCardInfo("Detonate", 218, Rarity.UNCOMMON, mage.cards.d.Detonate.class));
cards.add(new SetCardInfo("Diabolic Machine", 363, Rarity.UNCOMMON, mage.cards.d.DiabolicMachine.class));
cards.add(new SetCardInfo("Dingus Egg", 364, Rarity.RARE, mage.cards.d.DingusEgg.class));
cards.add(new SetCardInfo("Disenchant", 302, Rarity.COMMON, mage.cards.d.Disenchant.class));
cards.add(new SetCardInfo("Disintegrate", 219, Rarity.COMMON, mage.cards.d.Disintegrate.class));
cards.add(new SetCardInfo("Disrupting Scepter", 365, Rarity.RARE, mage.cards.d.DisruptingScepter.class));
cards.add(new SetCardInfo("Divine Offering", 303, Rarity.COMMON, mage.cards.d.DivineOffering.class));
cards.add(new SetCardInfo("Divine Transformation", 304, Rarity.UNCOMMON, mage.cards.d.DivineTransformation.class));
cards.add(new SetCardInfo("Dragon Engine", 366, Rarity.RARE, mage.cards.d.DragonEngine.class));
cards.add(new SetCardInfo("Drain Life", 18, Rarity.COMMON, mage.cards.d.DrainLife.class));
cards.add(new SetCardInfo("Drudge Skeletons", 19, Rarity.COMMON, mage.cards.d.DrudgeSkeletons.class));
cards.add(new SetCardInfo("Durkwood Boars", 151, Rarity.COMMON, mage.cards.d.DurkwoodBoars.class));
cards.add(new SetCardInfo("Dust to Dust", 305, Rarity.UNCOMMON, mage.cards.d.DustToDust.class));
cards.add(new SetCardInfo("Dwarven Catapult", 220, Rarity.UNCOMMON, mage.cards.d.DwarvenCatapult.class));
cards.add(new SetCardInfo("Dwarven Hold", 414, Rarity.RARE, mage.cards.d.DwarvenHold.class));
cards.add(new SetCardInfo("Dwarven Ruins", 415, Rarity.UNCOMMON, mage.cards.d.DwarvenRuins.class));
cards.add(new SetCardInfo("Dwarven Soldier", 221, Rarity.COMMON, DwarvenSoldier.class));
cards.add(new SetCardInfo("Dwarven Warriors", 222, Rarity.COMMON, mage.cards.d.DwarvenWarriors.class));
cards.add(new SetCardInfo("Earthquake", 223, Rarity.RARE, mage.cards.e.Earthquake.class));
cards.add(new SetCardInfo("Ebon Stronghold", 416, Rarity.UNCOMMON, mage.cards.e.EbonStronghold.class));
cards.add(new SetCardInfo("Elder Druid", 152, Rarity.RARE, mage.cards.e.ElderDruid.class));
cards.add(new SetCardInfo("Elven Riders", 153, Rarity.UNCOMMON, mage.cards.e.ElvenRiders.class));
cards.add(new SetCardInfo("Elvish Archers", 154, Rarity.RARE, mage.cards.e.ElvishArchers.class));
cards.add(new SetCardInfo("Energy Flux", 83, Rarity.UNCOMMON, mage.cards.e.EnergyFlux.class));
cards.add(new SetCardInfo("Enervate", 84, Rarity.COMMON, mage.cards.e.Enervate.class));
cards.add(new SetCardInfo("Erg Raiders", 20, Rarity.COMMON, mage.cards.e.ErgRaiders.class));
cards.add(new SetCardInfo("Errantry", 224, Rarity.COMMON, mage.cards.e.Errantry.class));
cards.add(new SetCardInfo("Eternal Warrior", 225, Rarity.COMMON, mage.cards.e.EternalWarrior.class));
cards.add(new SetCardInfo("Evil Eye of Orms-by-Gore", 21, Rarity.UNCOMMON, mage.cards.e.EvilEyeOfOrmsByGore.class));
cards.add(new SetCardInfo("Evil Presence", 22, Rarity.UNCOMMON, mage.cards.e.EvilPresence.class));
cards.add(new SetCardInfo("Eye for an Eye", 306, Rarity.RARE, mage.cards.e.EyeForAnEye.class));
cards.add(new SetCardInfo("Fallen Angel", 23, Rarity.UNCOMMON, mage.cards.f.FallenAngel.class));
cards.add(new SetCardInfo("Fear", 24, Rarity.COMMON, mage.cards.f.Fear.class));
cards.add(new SetCardInfo("Feedback", 85, Rarity.UNCOMMON, mage.cards.f.Feedback.class));
cards.add(new SetCardInfo("Feldon's Cane", 368, Rarity.UNCOMMON, mage.cards.f.FeldonsCane.class));
cards.add(new SetCardInfo("Fellwar Stone", 369, Rarity.UNCOMMON, mage.cards.f.FellwarStone.class));
cards.add(new SetCardInfo("Feroz's Ban", 370, Rarity.RARE, mage.cards.f.FerozsBan.class));
cards.add(new SetCardInfo("Fireball", 227, Rarity.COMMON, mage.cards.f.Fireball.class));
cards.add(new SetCardInfo("Firebreathing", 228, Rarity.COMMON, mage.cards.f.Firebreathing.class));
cards.add(new SetCardInfo("Fire Drake", 226, Rarity.UNCOMMON, mage.cards.f.FireDrake.class));
cards.add(new SetCardInfo("Flame Spirit", 229, Rarity.UNCOMMON, mage.cards.f.FlameSpirit.class));
cards.add(new SetCardInfo("Flare", 230, Rarity.COMMON, mage.cards.f.Flare.class));
cards.add(new SetCardInfo("Flashfires", 231, Rarity.UNCOMMON, mage.cards.f.Flashfires.class));
cards.add(new SetCardInfo("Flight", 86, Rarity.COMMON, mage.cards.f.Flight.class));
cards.add(new SetCardInfo("Flood", 87, Rarity.COMMON, mage.cards.f.Flood.class));
cards.add(new SetCardInfo("Flying Carpet", 371, Rarity.RARE, mage.cards.f.FlyingCarpet.class));
cards.add(new SetCardInfo("Fog", 155, Rarity.COMMON, mage.cards.f.Fog.class));
cards.add(new SetCardInfo("Force of Nature", 156, Rarity.RARE, mage.cards.f.ForceOfNature.class));
cards.add(new SetCardInfo("Force Spike", 88, Rarity.COMMON, mage.cards.f.ForceSpike.class));
cards.add(new SetCardInfo("Forest", 417, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Forest", 418, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Forest", 419, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Forest", 420, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Forget", 89, Rarity.RARE, mage.cards.f.Forget.class));
cards.add(new SetCardInfo("Fountain of Youth", 372, Rarity.UNCOMMON, mage.cards.f.FountainOfYouth.class));
cards.add(new SetCardInfo("Frozen Shade", 25, Rarity.COMMON, mage.cards.f.FrozenShade.class));
cards.add(new SetCardInfo("Fungusaur", 158, Rarity.RARE, mage.cards.f.Fungusaur.class));
cards.add(new SetCardInfo("Fyndhorn Elder", 159, Rarity.UNCOMMON, mage.cards.f.FyndhornElder.class));
cards.add(new SetCardInfo("Game of Chaos", 232, Rarity.RARE, mage.cards.g.GameOfChaos.class));
cards.add(new SetCardInfo("Gaseous Form", 90, Rarity.COMMON, mage.cards.g.GaseousForm.class));
cards.add(new SetCardInfo("Ghazban Ogre", 160, Rarity.COMMON, mage.cards.g.GhazbanOgre.class));
cards.add(new SetCardInfo("Giant Growth", 161, Rarity.COMMON, mage.cards.g.GiantGrowth.class));
cards.add(new SetCardInfo("Giant Spider", 162, Rarity.COMMON, mage.cards.g.GiantSpider.class));
cards.add(new SetCardInfo("Giant Strength", 233, Rarity.COMMON, mage.cards.g.GiantStrength.class));
cards.add(new SetCardInfo("Glacial Wall", 91, Rarity.UNCOMMON, mage.cards.g.GlacialWall.class));
cards.add(new SetCardInfo("Glasses of Urza", 374, Rarity.UNCOMMON, mage.cards.g.GlassesOfUrza.class));
cards.add(new SetCardInfo("Gloom", 27, Rarity.UNCOMMON, mage.cards.g.Gloom.class));
cards.add(new SetCardInfo("Goblin Digging Team", 234, Rarity.COMMON, mage.cards.g.GoblinDiggingTeam.class));
cards.add(new SetCardInfo("Goblin Hero", 235, Rarity.COMMON, mage.cards.g.GoblinHero.class));
cards.add(new SetCardInfo("Goblin King", 236, Rarity.RARE, mage.cards.g.GoblinKing.class));
cards.add(new SetCardInfo("Goblin War Drums", 237, Rarity.COMMON, GoblinWarDrums.class));
cards.add(new SetCardInfo("Goblin Warrens", 238, Rarity.RARE, mage.cards.g.GoblinWarrens.class));
cards.add(new SetCardInfo("Grapeshot Catapult", 375, Rarity.COMMON, mage.cards.g.GrapeshotCatapult.class));
cards.add(new SetCardInfo("Grizzly Bears", 163, Rarity.COMMON, mage.cards.g.GrizzlyBears.class));
cards.add(new SetCardInfo("Havenwood Battleground", 421, Rarity.UNCOMMON, mage.cards.h.HavenwoodBattleground.class));
cards.add(new SetCardInfo("Heal", 308, Rarity.COMMON, mage.cards.h.Heal.class));
cards.add(new SetCardInfo("Healing Salve", 309, Rarity.COMMON, mage.cards.h.HealingSalve.class));
cards.add(new SetCardInfo("Hecatomb", 29, Rarity.RARE, mage.cards.h.Hecatomb.class));
cards.add(new SetCardInfo("Hill Giant", 239, Rarity.COMMON, mage.cards.h.HillGiant.class));
cards.add(new SetCardInfo("Hollow Trees", 422, Rarity.RARE, mage.cards.h.HollowTrees.class));
cards.add(new SetCardInfo("Holy Strength", 311, Rarity.COMMON, mage.cards.h.HolyStrength.class));
cards.add(new SetCardInfo("Homarid Warrior", 92, Rarity.COMMON, HomaridWarrior.class));
cards.add(new SetCardInfo("Howl from Beyond", 30, Rarity.COMMON, mage.cards.h.HowlFromBeyond.class));
cards.add(new SetCardInfo("Howling Mine", 377, Rarity.RARE, mage.cards.h.HowlingMine.class));
cards.add(new SetCardInfo("Hungry Mist", 164, Rarity.COMMON, mage.cards.h.HungryMist.class));
cards.add(new SetCardInfo("Hurkyl's Recall", 93, Rarity.RARE, mage.cards.h.HurkylsRecall.class));
cards.add(new SetCardInfo("Hurloon Minotaur", 240, Rarity.COMMON, mage.cards.h.HurloonMinotaur.class));
cards.add(new SetCardInfo("Hurricane", 165, Rarity.UNCOMMON, mage.cards.h.Hurricane.class));
cards.add(new SetCardInfo("Hydroblast", 94, Rarity.UNCOMMON, mage.cards.h.Hydroblast.class));
cards.add(new SetCardInfo("Icatian Scout", 313, Rarity.COMMON, IcatianScout.class));
cards.add(new SetCardInfo("Icatian Store", 423, Rarity.RARE, mage.cards.i.IcatianStore.class));
cards.add(new SetCardInfo("Icatian Town", 314, Rarity.RARE, mage.cards.i.IcatianTown.class));
cards.add(new SetCardInfo("Imposing Visage", 241, Rarity.COMMON, mage.cards.i.ImposingVisage.class));
cards.add(new SetCardInfo("Incinerate", 242, Rarity.COMMON, mage.cards.i.Incinerate.class));
cards.add(new SetCardInfo("Inferno", 243, Rarity.RARE, mage.cards.i.Inferno.class));
cards.add(new SetCardInfo("Initiates of the Ebon Hand", 31, Rarity.COMMON, InitiatesOfTheEbonHand.class));
cards.add(new SetCardInfo("Instill Energy", 166, Rarity.UNCOMMON, mage.cards.i.InstillEnergy.class));
cards.add(new SetCardInfo("Ironclaw Orcs", 245, Rarity.COMMON, mage.cards.i.IronclawOrcs.class));
cards.add(new SetCardInfo("Ironroot Treefolk", 167, Rarity.COMMON, mage.cards.i.IronrootTreefolk.class));
cards.add(new SetCardInfo("Iron Star", 379, Rarity.UNCOMMON, mage.cards.i.IronStar.class));
cards.add(new SetCardInfo("Island", 425, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Island", 426, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Island", 427, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Island", 428, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Island Sanctuary", 315, Rarity.RARE, mage.cards.i.IslandSanctuary.class));
cards.add(new SetCardInfo("Ivory Cup", 380, Rarity.UNCOMMON, mage.cards.i.IvoryCup.class));
cards.add(new SetCardInfo("Ivory Guardians", 316, Rarity.UNCOMMON, mage.cards.i.IvoryGuardians.class));
cards.add(new SetCardInfo("Jade Monolith", 381, Rarity.RARE, mage.cards.j.JadeMonolith.class));
cards.add(new SetCardInfo("Jalum Tome", 382, Rarity.RARE, mage.cards.j.JalumTome.class));
cards.add(new SetCardInfo("Jandor's Saddlebags", 383, Rarity.RARE, mage.cards.j.JandorsSaddlebags.class));
cards.add(new SetCardInfo("Jayemdae Tome", 384, Rarity.RARE, mage.cards.j.JayemdaeTome.class));
cards.add(new SetCardInfo("Jester's Cap", 385, Rarity.RARE, mage.cards.j.JestersCap.class));
cards.add(new SetCardInfo("Johtull Wurm", 168, Rarity.UNCOMMON, mage.cards.j.JohtullWurm.class));
cards.add(new SetCardInfo("Jokulhaups", 246, Rarity.RARE, mage.cards.j.Jokulhaups.class));
cards.add(new SetCardInfo("Justice", 317, Rarity.UNCOMMON, mage.cards.j.Justice.class));
cards.add(new SetCardInfo("Juxtapose", 95, Rarity.RARE, mage.cards.j.Juxtapose.class));
cards.add(new SetCardInfo("Karma", 318, Rarity.UNCOMMON, mage.cards.k.Karma.class));
cards.add(new SetCardInfo("Karplusan Forest", 429, Rarity.RARE, mage.cards.k.KarplusanForest.class));
cards.add(new SetCardInfo("Keldon Warlord", 247, Rarity.UNCOMMON, mage.cards.k.KeldonWarlord.class));
cards.add(new SetCardInfo("Killer Bees", 169, Rarity.UNCOMMON, mage.cards.k.KillerBees.class));
cards.add(new SetCardInfo("Kismet", 319, Rarity.UNCOMMON, mage.cards.k.Kismet.class));
cards.add(new SetCardInfo("Kjeldoran Dead", 32, Rarity.COMMON, mage.cards.k.KjeldoranDead.class));
cards.add(new SetCardInfo("Kjeldoran Royal Guard", 320, Rarity.RARE, mage.cards.k.KjeldoranRoyalGuard.class));
cards.add(new SetCardInfo("Knight of Stromgald", 33, Rarity.UNCOMMON, mage.cards.k.KnightOfStromgald.class));
cards.add(new SetCardInfo("Krovikan Fetish", 34, Rarity.COMMON, mage.cards.k.KrovikanFetish.class));
cards.add(new SetCardInfo("Krovikan Sorcerer", 96, Rarity.COMMON, mage.cards.k.KrovikanSorcerer.class));
cards.add(new SetCardInfo("Leshrac's Rite", 35, Rarity.UNCOMMON, mage.cards.l.LeshracsRite.class));
cards.add(new SetCardInfo("Ley Druid", 170, Rarity.COMMON, mage.cards.l.LeyDruid.class));
cards.add(new SetCardInfo("Lhurgoyf", 171, Rarity.RARE, mage.cards.l.Lhurgoyf.class));
cards.add(new SetCardInfo("Library of Leng", 387, Rarity.UNCOMMON, mage.cards.l.LibraryOfLeng.class));
cards.add(new SetCardInfo("Lifeforce", 172, Rarity.UNCOMMON, mage.cards.l.Lifeforce.class));
cards.add(new SetCardInfo("Lifetap", 99, Rarity.UNCOMMON, mage.cards.l.Lifetap.class));
cards.add(new SetCardInfo("Living Artifact", 173, Rarity.RARE, mage.cards.l.LivingArtifact.class));
cards.add(new SetCardInfo("Living Lands", 174, Rarity.RARE, mage.cards.l.LivingLands.class));
cards.add(new SetCardInfo("Llanowar Elves", 175, Rarity.COMMON, mage.cards.l.LlanowarElves.class));
cards.add(new SetCardInfo("Lord of Atlantis", 100, Rarity.RARE, mage.cards.l.LordOfAtlantis.class));
cards.add(new SetCardInfo("Lord of the Pit", 36, Rarity.RARE, mage.cards.l.LordOfThePit.class));
cards.add(new SetCardInfo("Lost Soul", 37, Rarity.COMMON, mage.cards.l.LostSoul.class));
cards.add(new SetCardInfo("Lure", 176, Rarity.UNCOMMON, mage.cards.l.Lure.class));
cards.add(new SetCardInfo("Magus of the Unseen", 102, Rarity.RARE, mage.cards.m.MagusOfTheUnseen.class));
cards.add(new SetCardInfo("Manabarbs", 250, Rarity.RARE, mage.cards.m.Manabarbs.class));
cards.add(new SetCardInfo("Mana Clash", 248, Rarity.RARE, mage.cards.m.ManaClash.class));
cards.add(new SetCardInfo("Mana Flare", 249, Rarity.RARE, mage.cards.m.ManaFlare.class));
cards.add(new SetCardInfo("Mana Vault", 388, Rarity.RARE, mage.cards.m.ManaVault.class));
cards.add(new SetCardInfo("Marsh Viper", 177, Rarity.COMMON, mage.cards.m.MarshViper.class));
cards.add(new SetCardInfo("Meekstone", 389, Rarity.RARE, mage.cards.m.Meekstone.class));
cards.add(new SetCardInfo("Memory Lapse", 103, Rarity.COMMON, mage.cards.m.MemoryLapse.class));
cards.add(new SetCardInfo("Merfolk of the Pearl Trident", 104, Rarity.COMMON, mage.cards.m.MerfolkOfThePearlTrident.class));
cards.add(new SetCardInfo("Mesa Falcon", 322, Rarity.COMMON, MesaFalcon.class));
cards.add(new SetCardInfo("Millstone", 390, Rarity.RARE, mage.cards.m.Millstone.class));
cards.add(new SetCardInfo("Mind Ravel", 38, Rarity.COMMON, mage.cards.m.MindRavel.class));
cards.add(new SetCardInfo("Mindstab Thrull", 40, Rarity.COMMON, MindstabThrull.class));
cards.add(new SetCardInfo("Mind Warp", 39, Rarity.UNCOMMON, mage.cards.m.MindWarp.class));
cards.add(new SetCardInfo("Mole Worms", 41, Rarity.UNCOMMON, mage.cards.m.MoleWorms.class));
cards.add(new SetCardInfo("Mons's Goblin Raiders", 251, Rarity.COMMON, mage.cards.m.MonssGoblinRaiders.class));
cards.add(new SetCardInfo("Mountain", 430, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Mountain", 431, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Mountain", 432, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Mountain", 433, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Mountain Goat", 252, Rarity.COMMON, mage.cards.m.MountainGoat.class));
cards.add(new SetCardInfo("Murk Dwellers", 42, Rarity.COMMON, mage.cards.m.MurkDwellers.class));
cards.add(new SetCardInfo("Nature's Lore", 178, Rarity.COMMON, mage.cards.n.NaturesLore.class));
cards.add(new SetCardInfo("Necrite", 43, Rarity.COMMON, Necrite.class));
cards.add(new SetCardInfo("Necropotence", 44, Rarity.RARE, mage.cards.n.Necropotence.class));
cards.add(new SetCardInfo("Nether Shadow", 45, Rarity.RARE, mage.cards.n.NetherShadow.class));
cards.add(new SetCardInfo("Nevinyrral's Disk", 391, Rarity.RARE, mage.cards.n.NevinyrralsDisk.class));
cards.add(new SetCardInfo("Nightmare", 46, Rarity.RARE, mage.cards.n.Nightmare.class));
cards.add(new SetCardInfo("Obelisk of Undoing", 392, Rarity.RARE, mage.cards.o.ObeliskOfUndoing.class));
cards.add(new SetCardInfo("Orcish Artillery", 253, Rarity.UNCOMMON, mage.cards.o.OrcishArtillery.class));
cards.add(new SetCardInfo("Orcish Captain", 254, Rarity.UNCOMMON, mage.cards.o.OrcishCaptain.class));
cards.add(new SetCardInfo("Orcish Oriflamme", 257, Rarity.UNCOMMON, mage.cards.o.OrcishOriflamme.class));
cards.add(new SetCardInfo("Order of the Sacred Torch", 324, Rarity.RARE, mage.cards.o.OrderOfTheSacredTorch.class));
cards.add(new SetCardInfo("Order of the White Shield", 325, Rarity.UNCOMMON, mage.cards.o.OrderOfTheWhiteShield.class));
cards.add(new SetCardInfo("Orgg", 259, Rarity.RARE, mage.cards.o.Orgg.class));
cards.add(new SetCardInfo("Ornithopter", 393, Rarity.UNCOMMON, mage.cards.o.Ornithopter.class));
cards.add(new SetCardInfo("Panic", 260, Rarity.COMMON, mage.cards.p.Panic.class));
cards.add(new SetCardInfo("Paralyze", 47, Rarity.COMMON, mage.cards.p.Paralyze.class));
cards.add(new SetCardInfo("Pearled Unicorn", 326, Rarity.COMMON, mage.cards.p.PearledUnicorn.class));
cards.add(new SetCardInfo("Pentagram of the Ages", 394, Rarity.RARE, mage.cards.p.PentagramOfTheAges.class));
cards.add(new SetCardInfo("Personal Incarnation", 327, Rarity.RARE, mage.cards.p.PersonalIncarnation.class));
cards.add(new SetCardInfo("Pestilence", 48, Rarity.COMMON, mage.cards.p.Pestilence.class));
cards.add(new SetCardInfo("Phantasmal Forces", 106, Rarity.UNCOMMON, mage.cards.p.PhantasmalForces.class));
cards.add(new SetCardInfo("Phantasmal Terrain", 107, Rarity.COMMON, mage.cards.p.PhantasmalTerrain.class));
cards.add(new SetCardInfo("Phantom Monster", 108, Rarity.UNCOMMON, mage.cards.p.PhantomMonster.class));
cards.add(new SetCardInfo("Pirate Ship", 109, Rarity.RARE, mage.cards.p.PirateShip.class));
cards.add(new SetCardInfo("Pit Scorpion", 49, Rarity.COMMON, mage.cards.p.PitScorpion.class));
cards.add(new SetCardInfo("Plague Rats", 50, Rarity.COMMON, mage.cards.p.PlagueRats.class));
cards.add(new SetCardInfo("Plains", 434, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Plains", 435, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Plains", 436, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Plains", 437, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Portent", 110, Rarity.COMMON, mage.cards.p.Portent.class));
cards.add(new SetCardInfo("Power Sink", 111, Rarity.UNCOMMON, mage.cards.p.PowerSink.class));
cards.add(new SetCardInfo("Pox", 51, Rarity.RARE, mage.cards.p.Pox.class));
cards.add(new SetCardInfo("Pradesh Gypsies", 179, Rarity.COMMON, mage.cards.p.PradeshGypsies.class));
cards.add(new SetCardInfo("Primal Clay", 395, Rarity.RARE, mage.cards.p.PrimalClay.class));
cards.add(new SetCardInfo("Primal Order", 180, Rarity.RARE, mage.cards.p.PrimalOrder.class));
cards.add(new SetCardInfo("Prodigal Sorcerer", 112, Rarity.COMMON, mage.cards.p.ProdigalSorcerer.class));
cards.add(new SetCardInfo("Psychic Venom", 113, Rarity.COMMON, mage.cards.p.PsychicVenom.class));
cards.add(new SetCardInfo("Pyroblast", 262, Rarity.UNCOMMON, mage.cards.p.Pyroblast.class));
cards.add(new SetCardInfo("Pyrotechnics", 263, Rarity.UNCOMMON, mage.cards.p.Pyrotechnics.class));
cards.add(new SetCardInfo("Rabid Wombat", 181, Rarity.UNCOMMON, mage.cards.r.RabidWombat.class));
cards.add(new SetCardInfo("Radjan Spirit", 182, Rarity.UNCOMMON, mage.cards.r.RadjanSpirit.class));
cards.add(new SetCardInfo("Rag Man", 52, Rarity.RARE, mage.cards.r.RagMan.class));
cards.add(new SetCardInfo("Raise Dead", 53, Rarity.COMMON, mage.cards.r.RaiseDead.class));
cards.add(new SetCardInfo("Ray of Command", 114, Rarity.COMMON, mage.cards.r.RayOfCommand.class));
cards.add(new SetCardInfo("Recall", 115, Rarity.RARE, mage.cards.r.Recall.class));
cards.add(new SetCardInfo("Reef Pirates", 116, Rarity.COMMON, ReefPirates.class));
cards.add(new SetCardInfo("Regeneration", 183, Rarity.COMMON, mage.cards.r.Regeneration.class));
cards.add(new SetCardInfo("Remove Soul", 117, Rarity.COMMON, mage.cards.r.RemoveSoul.class));
cards.add(new SetCardInfo("Repentant Blacksmith", 330, Rarity.COMMON, mage.cards.r.RepentantBlacksmith.class));
cards.add(new SetCardInfo("Reverse Damage", 331, Rarity.RARE, mage.cards.r.ReverseDamage.class));
cards.add(new SetCardInfo("Righteousness", 332, Rarity.RARE, mage.cards.r.Righteousness.class));
cards.add(new SetCardInfo("Rod of Ruin", 396, Rarity.UNCOMMON, mage.cards.r.RodOfRuin.class));
cards.add(new SetCardInfo("Ruins of Trokair", 438, Rarity.UNCOMMON, mage.cards.r.RuinsOfTrokair.class));
cards.add(new SetCardInfo("Sabretooth Tiger", 264, Rarity.COMMON, mage.cards.s.SabretoothTiger.class));
cards.add(new SetCardInfo("Samite Healer", 334, Rarity.COMMON, mage.cards.s.SamiteHealer.class));
cards.add(new SetCardInfo("Sand Silos", 439, Rarity.RARE, mage.cards.s.SandSilos.class));
cards.add(new SetCardInfo("Scaled Wurm", 184, Rarity.COMMON, mage.cards.s.ScaledWurm.class));
cards.add(new SetCardInfo("Scathe Zombies", 54, Rarity.COMMON, mage.cards.s.ScatheZombies.class));
cards.add(new SetCardInfo("Scavenger Folk", 185, Rarity.COMMON, mage.cards.s.ScavengerFolk.class));
cards.add(new SetCardInfo("Scryb Sprites", 186, Rarity.COMMON, mage.cards.s.ScrybSprites.class));
cards.add(new SetCardInfo("Sea Serpent", 118, Rarity.COMMON, mage.cards.s.SeaSerpent.class));
cards.add(new SetCardInfo("Seasinger", 121, Rarity.UNCOMMON, mage.cards.s.Seasinger.class));
cards.add(new SetCardInfo("Sea Spirit", 119, Rarity.UNCOMMON, mage.cards.s.SeaSpirit.class));
cards.add(new SetCardInfo("Sea Sprite", 120, Rarity.UNCOMMON, mage.cards.s.SeaSprite.class));
cards.add(new SetCardInfo("Segovian Leviathan", 122, Rarity.UNCOMMON, mage.cards.s.SegovianLeviathan.class));
cards.add(new SetCardInfo("Sengir Autocrat", 55, Rarity.RARE, mage.cards.s.SengirAutocrat.class));
cards.add(new SetCardInfo("Serpent Generator", 397, Rarity.RARE, mage.cards.s.SerpentGenerator.class));
cards.add(new SetCardInfo("Shanodin Dryads", 187, Rarity.COMMON, mage.cards.s.ShanodinDryads.class));
cards.add(new SetCardInfo("Shapeshifter", 398, Rarity.UNCOMMON, mage.cards.s.Shapeshifter.class));
cards.add(new SetCardInfo("Shatter", 265, Rarity.COMMON, mage.cards.s.Shatter.class));
cards.add(new SetCardInfo("Shatterstorm", 266, Rarity.UNCOMMON, mage.cards.s.Shatterstorm.class));
cards.add(new SetCardInfo("Shield Wall", 339, Rarity.COMMON, mage.cards.s.ShieldWall.class));
cards.add(new SetCardInfo("Shivan Dragon", 267, Rarity.RARE, mage.cards.s.ShivanDragon.class));
cards.add(new SetCardInfo("Shrink", 188, Rarity.COMMON, mage.cards.s.Shrink.class));
cards.add(new SetCardInfo("Sibilant Spirit", 123, Rarity.RARE, mage.cards.s.SibilantSpirit.class));
cards.add(new SetCardInfo("Skull Catapult", 399, Rarity.UNCOMMON, mage.cards.s.SkullCatapult.class));
cards.add(new SetCardInfo("Smoke", 268, Rarity.RARE, mage.cards.s.Smoke.class));
cards.add(new SetCardInfo("Sorceress Queen", 56, Rarity.RARE, mage.cards.s.SorceressQueen.class));
cards.add(new SetCardInfo("Soul Net", 400, Rarity.UNCOMMON, mage.cards.s.SoulNet.class));
cards.add(new SetCardInfo("Spell Blast", 126, Rarity.COMMON, mage.cards.s.SpellBlast.class));
cards.add(new SetCardInfo("Spirit Link", 340, Rarity.UNCOMMON, mage.cards.s.SpiritLink.class));
cards.add(new SetCardInfo("Stampede", 189, Rarity.RARE, mage.cards.s.Stampede.class));
cards.add(new SetCardInfo("Stasis", 127, Rarity.RARE, mage.cards.s.Stasis.class));
cards.add(new SetCardInfo("Steal Artifact", 128, Rarity.UNCOMMON, mage.cards.s.StealArtifact.class));
cards.add(new SetCardInfo("Stone Giant", 269, Rarity.UNCOMMON, mage.cards.s.StoneGiant.class));
cards.add(new SetCardInfo("Stone Rain", 270, Rarity.COMMON, mage.cards.s.StoneRain.class));
cards.add(new SetCardInfo("Stone Spirit", 271, Rarity.UNCOMMON, mage.cards.s.StoneSpirit.class));
cards.add(new SetCardInfo("Stream of Life", 190, Rarity.COMMON, mage.cards.s.StreamOfLife.class));
cards.add(new SetCardInfo("Stromgald Cabal", 57, Rarity.RARE, mage.cards.s.StromgaldCabal.class));
cards.add(new SetCardInfo("Sulfurous Springs", 440, Rarity.RARE, mage.cards.s.SulfurousSprings.class));
cards.add(new SetCardInfo("Svyelunite Temple", 441, Rarity.UNCOMMON, mage.cards.s.SvyeluniteTemple.class));
cards.add(new SetCardInfo("Swamp", 442, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Swamp", 443, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Swamp", 444, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Swamp", 445, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Sylvan Library", 191, Rarity.RARE, mage.cards.s.SylvanLibrary.class));
cards.add(new SetCardInfo("Tarpan", 192, Rarity.COMMON, mage.cards.t.Tarpan.class));
cards.add(new SetCardInfo("Tawnos's Weaponry", 401, Rarity.UNCOMMON, mage.cards.t.TawnossWeaponry.class));
cards.add(new SetCardInfo("Terror", 58, Rarity.COMMON, mage.cards.t.Terror.class));
cards.add(new SetCardInfo("The Brute", 272, Rarity.COMMON, mage.cards.t.TheBrute.class));
cards.add(new SetCardInfo("The Hive", 402, Rarity.RARE, mage.cards.t.TheHive.class));
cards.add(new SetCardInfo("The Wretched", 59, Rarity.RARE, mage.cards.t.TheWretched.class));
cards.add(new SetCardInfo("Thicket Basilisk", 193, Rarity.UNCOMMON, mage.cards.t.ThicketBasilisk.class));
cards.add(new SetCardInfo("Throne of Bone", 403, Rarity.UNCOMMON, mage.cards.t.ThroneOfBone.class));
cards.add(new SetCardInfo("Thrull Retainer", 60, Rarity.UNCOMMON, mage.cards.t.ThrullRetainer.class));
cards.add(new SetCardInfo("Time Bomb", 404, Rarity.RARE, mage.cards.t.TimeBomb.class));
cards.add(new SetCardInfo("Titania's Song", 194, Rarity.RARE, mage.cards.t.TitaniasSong.class));
cards.add(new SetCardInfo("Torture", 61, Rarity.COMMON, Torture.class));
cards.add(new SetCardInfo("Touch of Death", 62, Rarity.COMMON, mage.cards.t.TouchOfDeath.class));
cards.add(new SetCardInfo("Tranquility", 195, Rarity.COMMON, mage.cards.t.Tranquility.class));
cards.add(new SetCardInfo("Tsunami", 196, Rarity.UNCOMMON, mage.cards.t.Tsunami.class));
cards.add(new SetCardInfo("Tundra Wolves", 342, Rarity.COMMON, mage.cards.t.TundraWolves.class));
cards.add(new SetCardInfo("Twiddle", 130, Rarity.COMMON, mage.cards.t.Twiddle.class));
cards.add(new SetCardInfo("Underground River", 446, Rarity.RARE, mage.cards.u.UndergroundRiver.class));
cards.add(new SetCardInfo("Unholy Strength", 63, Rarity.COMMON, mage.cards.u.UnholyStrength.class));
cards.add(new SetCardInfo("Unstable Mutation", 131, Rarity.COMMON, mage.cards.u.UnstableMutation.class));
cards.add(new SetCardInfo("Unsummon", 132, Rarity.COMMON, mage.cards.u.Unsummon.class));
cards.add(new SetCardInfo("Untamed Wilds", 197, Rarity.UNCOMMON, mage.cards.u.UntamedWilds.class));
cards.add(new SetCardInfo("Updraft", 133, Rarity.COMMON, mage.cards.u.Updraft.class));
cards.add(new SetCardInfo("Urza's Bauble", 406, Rarity.UNCOMMON, mage.cards.u.UrzasBauble.class));
cards.add(new SetCardInfo("Urza's Mine", 447, Rarity.COMMON, mage.cards.u.UrzasMine.class));
cards.add(new SetCardInfo("Urza's Power Plant", 448, Rarity.COMMON, mage.cards.u.UrzasPowerPlant.class));
cards.add(new SetCardInfo("Urza's Tower", 449, Rarity.COMMON, mage.cards.u.UrzasTower.class));
cards.add(new SetCardInfo("Vampire Bats", 64, Rarity.COMMON, mage.cards.v.VampireBats.class));
cards.add(new SetCardInfo("Venom", 198, Rarity.COMMON, mage.cards.v.Venom.class));
cards.add(new SetCardInfo("Verduran Enchantress", 199, Rarity.RARE, mage.cards.v.VerduranEnchantress.class));
cards.add(new SetCardInfo("Vodalian Soldiers", 134, Rarity.COMMON, VodalianSoldiers.class));
cards.add(new SetCardInfo("Wall of Air", 135, Rarity.UNCOMMON, mage.cards.w.WallOfAir.class));
cards.add(new SetCardInfo("Wall of Bone", 65, Rarity.UNCOMMON, mage.cards.w.WallOfBone.class));
cards.add(new SetCardInfo("Wall of Brambles", 200, Rarity.UNCOMMON, mage.cards.w.WallOfBrambles.class));
cards.add(new SetCardInfo("Wall of Fire", 273, Rarity.UNCOMMON, mage.cards.w.WallOfFire.class));
cards.add(new SetCardInfo("Wall of Spears", 407, Rarity.COMMON, mage.cards.w.WallOfSpears.class));
cards.add(new SetCardInfo("Wall of Stone", 274, Rarity.UNCOMMON, mage.cards.w.WallOfStone.class));
cards.add(new SetCardInfo("Wall of Swords", 343, Rarity.UNCOMMON, mage.cards.w.WallOfSwords.class));
cards.add(new SetCardInfo("Wanderlust", 201, Rarity.UNCOMMON, mage.cards.w.Wanderlust.class));
cards.add(new SetCardInfo("War Mammoth", 202, Rarity.COMMON, mage.cards.w.WarMammoth.class));
cards.add(new SetCardInfo("Warp Artifact", 66, Rarity.RARE, mage.cards.w.WarpArtifact.class));
cards.add(new SetCardInfo("Weakness", 67, Rarity.COMMON, mage.cards.w.Weakness.class));
cards.add(new SetCardInfo("Whirling Dervish", 203, Rarity.UNCOMMON, mage.cards.w.WhirlingDervish.class));
cards.add(new SetCardInfo("White Knight", 344, Rarity.UNCOMMON, mage.cards.w.WhiteKnight.class));
cards.add(new SetCardInfo("Wild Growth", 204, Rarity.COMMON, mage.cards.w.WildGrowth.class));
cards.add(new SetCardInfo("Winds of Change", 275, Rarity.RARE, mage.cards.w.WindsOfChange.class));
cards.add(new SetCardInfo("Wind Spirit", 136, Rarity.UNCOMMON, mage.cards.w.WindSpirit.class));
cards.add(new SetCardInfo("Winter Orb", 408, Rarity.RARE, mage.cards.w.WinterOrb.class));
cards.add(new SetCardInfo("Wolverine Pack", 206, Rarity.UNCOMMON, mage.cards.w.WolverinePack.class));
cards.add(new SetCardInfo("Wooden Sphere", 409, Rarity.UNCOMMON, mage.cards.w.WoodenSphere.class));
cards.add(new SetCardInfo("Word of Blasting", 276, Rarity.UNCOMMON, mage.cards.w.WordOfBlasting.class));
cards.add(new SetCardInfo("Wrath of God", 345, Rarity.RARE, mage.cards.w.WrathOfGod.class));
cards.add(new SetCardInfo("Wyluli Wolf", 207, Rarity.RARE, mage.cards.w.WyluliWolf.class));
cards.add(new SetCardInfo("Xenic Poltergeist", 68, Rarity.RARE, mage.cards.x.XenicPoltergeist.class));
cards.add(new SetCardInfo("Zephyr Falcon", 137, Rarity.COMMON, mage.cards.z.ZephyrFalcon.class));
cards.add(new SetCardInfo("Zombie Master", 69, Rarity.RARE, mage.cards.z.ZombieMaster.class));
cards.add(new SetCardInfo("Zur's Weirding", 138, Rarity.RARE, mage.cards.z.ZursWeirding.class));
}
}

View file

@ -159,6 +159,7 @@ public class Legends extends ExpansionSet {
cards.add(new SetCardInfo("Mana Drain", 65, Rarity.UNCOMMON, mage.cards.m.ManaDrain.class));
cards.add(new SetCardInfo("Mana Matrix", 230, Rarity.RARE, mage.cards.m.ManaMatrix.class));
cards.add(new SetCardInfo("Marhault Elsdragon", 284, Rarity.UNCOMMON, mage.cards.m.MarhaultElsdragon.class));
cards.add(new SetCardInfo("Mirror Universe", 232, Rarity.RARE, mage.cards.m.MirrorUniverse.class));
cards.add(new SetCardInfo("Moat", 197, Rarity.RARE, mage.cards.m.Moat.class));
cards.add(new SetCardInfo("Mold Demon", 26, Rarity.RARE, mage.cards.m.MoldDemon.class));
cards.add(new SetCardInfo("Moss Monster", 109, Rarity.COMMON, mage.cards.m.MossMonster.class));
@ -177,6 +178,7 @@ public class Legends extends ExpansionSet {
cards.add(new SetCardInfo("Presence of the Master", 200, Rarity.UNCOMMON, mage.cards.p.PresenceOfTheMaster.class));
cards.add(new SetCardInfo("Princess Lucrezia", 289, Rarity.UNCOMMON, mage.cards.p.PrincessLucrezia.class));
cards.add(new SetCardInfo("Pyrotechnics", 158, Rarity.COMMON, mage.cards.p.Pyrotechnics.class));
cards.add(new SetCardInfo("Rabid Wombat", 112, Rarity.UNCOMMON, mage.cards.r.RabidWombat.class));
cards.add(new SetCardInfo("Radjan Spirit", 113, Rarity.UNCOMMON, mage.cards.r.RadjanSpirit.class));
cards.add(new SetCardInfo("Raging Bull", 160, Rarity.COMMON, mage.cards.r.RagingBull.class));
cards.add(new SetCardInfo("Ragnar", 290, Rarity.RARE, mage.cards.r.Ragnar.class));

View file

@ -165,6 +165,7 @@ public class MastersEdition extends ExpansionSet {
cards.add(new SetCardInfo("Mana Flare", 103, Rarity.RARE, mage.cards.m.ManaFlare.class));
cards.add(new SetCardInfo("Marton Stromgald", 104, Rarity.RARE, mage.cards.m.MartonStromgald.class));
cards.add(new SetCardInfo("Mindstab Thrull", 76, Rarity.COMMON, MindstabThrull.class));
cards.add(new SetCardInfo("Mirror Universe", 159, Rarity.RARE, mage.cards.m.MirrorUniverse.class));
cards.add(new SetCardInfo("Mishra's Factory", 178, Rarity.UNCOMMON, mage.cards.m.MishrasFactory.class));
cards.add(new SetCardInfo("Moat", 21, Rarity.RARE, mage.cards.m.Moat.class));
cards.add(new SetCardInfo("Mountain", 190, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true)));
@ -193,6 +194,7 @@ public class MastersEdition extends ExpansionSet {
cards.add(new SetCardInfo("Primal Order", 125, Rarity.RARE, mage.cards.p.PrimalOrder.class));
cards.add(new SetCardInfo("Psychic Venom", 46, Rarity.COMMON, mage.cards.p.PsychicVenom.class));
cards.add(new SetCardInfo("Pyroblast", 107, Rarity.COMMON, mage.cards.p.Pyroblast.class));
cards.add(new SetCardInfo("Rabid Wombat", 126, Rarity.UNCOMMON, mage.cards.r.RabidWombat.class));
cards.add(new SetCardInfo("Rainbow Vale", 179, Rarity.RARE, mage.cards.r.RainbowVale.class));
cards.add(new SetCardInfo("Righteous Avengers", 25, Rarity.COMMON, mage.cards.r.RighteousAvengers.class));
cards.add(new SetCardInfo("River Merfolk", 47, Rarity.COMMON, mage.cards.r.RiverMerfolk.class));

View file

@ -0,0 +1,91 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.abilities.effects.common;
import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.effects.OneShotEffect;
import mage.constants.Outcome;
import mage.game.Game;
import mage.players.Player;
/**
*
* @author Styxo
*/
public class ExchangeLifeTargetEffect extends OneShotEffect {
public ExchangeLifeTargetEffect() {
super(Outcome.Neutral);
}
public ExchangeLifeTargetEffect(final ExchangeLifeTargetEffect effect) {
super(effect);
}
@Override
public ExchangeLifeTargetEffect copy() {
return new ExchangeLifeTargetEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
Player player = game.getPlayer(source.getFirstTarget());
if (controller != null && player != null) {
int lifeController = controller.getLife();
int lifePlayer = player.getLife();
if (lifeController == lifePlayer) {
return false;
}
if (!controller.isLifeTotalCanChange() || !player.isLifeTotalCanChange()) {
return false;
}
if (lifeController < lifePlayer && (!controller.isCanGainLife() || !player.isCanLoseLife())) {
return false;
}
if (lifeController > lifePlayer && (!controller.isCanLoseLife() || !player.isCanGainLife())) {
return false;
}
controller.setLife(lifePlayer, game);
player.setLife(lifeController, game);
return true;
}
return false;
}
@Override
public String getText(Mode mode) {
return "Exchange life totals with target " + mode.getTargets().get(0).getTargetName();
}
}

View file

@ -0,0 +1,147 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.abilities.effects.common;
import java.util.List;
import java.util.Set;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.cards.Card;
import mage.cards.Cards;
import mage.cards.CardsImpl;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.FilterCard;
import mage.game.Game;
import mage.players.Player;
import mage.target.TargetCard;
/**
*
* @author Styxo
*/
public class WishEffect extends OneShotEffect {
private final FilterCard filter;
private final boolean reveal;
private final boolean alsoFromExile;
private final String choiceText;
public WishEffect() {
this(new FilterCard());
}
public WishEffect(FilterCard filter) {
this(filter, true);
}
public WishEffect(FilterCard filter, boolean reveal) {
this(filter, reveal, false);
}
public WishEffect(FilterCard filter, boolean reveal, boolean alsoFromExile) {
super(Outcome.DrawCard);
this.filter = filter;
this.alsoFromExile = alsoFromExile;
this.reveal = reveal;
choiceText = "Choose " + filter.getMessage() + " you own from outside the game"
+ (alsoFromExile ? " or in exile" : "")
+ (reveal ? ", reveal that card," : "")
+ " and put it into your hand.";
staticText = "You may c" + choiceText.substring(1, choiceText.length() - 1);
}
public WishEffect(final WishEffect effect) {
super(effect);
this.filter = effect.filter;
this.alsoFromExile = effect.alsoFromExile;
this.reveal = effect.reveal;
this.choiceText = effect.choiceText;
}
@Override
public WishEffect copy() {
return new WishEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
MageObject sourceObject = source.getSourceObject(game);
if (controller != null && sourceObject != null) {
if (controller.chooseUse(Outcome.Benefit, choiceText, source, game)) {
Cards cards = controller.getSideboard();
List<Card> exile = game.getExile().getAllCards(game);
boolean noTargets = cards.isEmpty() && (alsoFromExile ? exile.isEmpty() : true);
if (noTargets) {
game.informPlayer(controller, "You have no cards outside the game" + (alsoFromExile ? " or in exile" : "") + ".");
return true;
}
Set<Card> filtered = cards.getCards(filter, game);
Cards filteredCards = new CardsImpl();
for (Card card : filtered) {
filteredCards.add(card.getId());
}
if (alsoFromExile) {
for (Card exileCard : exile) {
if (exileCard.getOwnerId().equals(source.getControllerId()) && filter.match(exileCard, game)) {
filteredCards.add(exileCard);
}
}
}
if (filteredCards.isEmpty()) {
game.informPlayer(controller, "You don't have " + filter.getMessage() + " outside the game" + (alsoFromExile ? " or in exile" : "") + ".");
return true;
}
TargetCard target = new TargetCard(Zone.OUTSIDE, filter);
target.setNotTarget(true);
if (controller.choose(Outcome.Benefit, filteredCards, target, game)) {
Card card = controller.getSideboard().get(target.getFirstTarget(), game);
if (card == null && alsoFromExile) {
card = game.getCard(target.getFirstTarget());
}
if (card != null) {
card.moveToZone(Zone.HAND, source.getSourceId(), game, false);
if (reveal) {
Cards revealCard = new CardsImpl();
revealCard.add(card);
controller.revealCards(sourceObject.getIdName(), revealCard, game);
}
}
}
}
return true;
}
return false;
}
}