[ANK] Added 4/7 spoilers to mtg-cards-data.txt and implemented a few simple cards.

This commit is contained in:
fireshoes 2017-04-07 10:48:45 -05:00
parent e6cd313843
commit c44043532f
7 changed files with 559 additions and 174 deletions

View file

@ -0,0 +1,89 @@
/*
* 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.a;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.delayed.OnLeaveReturnExiledToBattlefieldAbility;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
import mage.abilities.effects.common.ExileUntilSourceLeavesEffect;
import mage.abilities.keyword.EmbalmAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.TargetController;
import mage.filter.common.FilterNonlandPermanent;
import mage.filter.predicate.permanent.ControllerPredicate;
import mage.target.TargetPermanent;
/**
*
* @author fireshoes
*/
public class AngelOfSanctions extends CardImpl {
private final static FilterNonlandPermanent filter = new FilterNonlandPermanent();
static {
filter.add(new ControllerPredicate(TargetController.OPPONENT));
}
public AngelOfSanctions(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}{W}");
this.subtype.add("Angel");
this.power = new MageInt(3);
this.toughness = new MageInt(4);
// Flying
this.addAbility(FlyingAbility.getInstance());
// When Angel of Sanctions enters the battlefield, you may exile target nonland permanent an opponent controls until Angel of Sanctions leaves the battlefield.
Ability ability = new EntersBattlefieldTriggeredAbility(new ExileUntilSourceLeavesEffect(filter.getMessage()));
ability.addTarget(new TargetPermanent(filter));
ability.addEffect(new CreateDelayedTriggeredAbilityEffect(new OnLeaveReturnExiledToBattlefieldAbility()));
this.addAbility(ability);
// Embalm {5}{W}
this.addAbility(new EmbalmAbility(new ManaCostsImpl("{5}{W}"), this));
}
public AngelOfSanctions(final AngelOfSanctions card) {
super(card);
}
@Override
public AngelOfSanctions copy() {
return new AngelOfSanctions(this);
}
}

View file

@ -0,0 +1,66 @@
/*
* 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.d;
import java.util.UUID;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.DestroyTargetEffect;
import mage.abilities.keyword.CyclingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.target.common.TargetArtifactPermanent;
/**
*
* @author fireshoes
*/
public class DissentersDeliverance extends CardImpl {
public DissentersDeliverance(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{G}");
// Destroy target artifact.
getSpellAbility().addEffect(new DestroyTargetEffect());
getSpellAbility().addTarget(new TargetArtifactPermanent());
// Cycling {G}
this.addAbility(new CyclingAbility(new ManaCostsImpl("{G}")));
}
public DissentersDeliverance(final DissentersDeliverance card) {
super(card);
}
@Override
public DissentersDeliverance copy() {
return new DissentersDeliverance(this);
}
}

View file

@ -0,0 +1,64 @@
/*
* 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.n;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.keyword.ProwessAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
/**
*
* @author fireshoes
*/
public class NimbleBladeKhenra extends CardImpl {
public NimbleBladeKhenra(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}");
this.subtype.add("Jackal");
this.subtype.add("Warrior");
this.power = new MageInt(1);
this.toughness = new MageInt(3);
// Prowess
this.addAbility(new ProwessAbility());
}
public NimbleBladeKhenra(final NimbleBladeKhenra card) {
super(card);
}
@Override
public NimbleBladeKhenra copy() {
return new NimbleBladeKhenra(this);
}
}

View file

@ -0,0 +1,77 @@
/*
* 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.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.CountType;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.decorator.ConditionalTriggeredAbility;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.predicate.permanent.TappedPredicate;
import mage.game.permanent.token.WarriorVigilantToken;
/**
*
* @author fireshoes
*/
public class SupplyCaravan extends CardImpl {
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("a tapped creature");
static {
filter.add(new TappedPredicate());
}
public SupplyCaravan(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{W}");
this.subtype.add("Camel");
this.power = new MageInt(3);
this.toughness = new MageInt(5);
// When Supply Caravan enters the battlefield, if you control a tapped creature, create a 1/1 white Warrior creature token with vigilance.
this.addAbility(new ConditionalTriggeredAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new WarriorVigilantToken())),
new PermanentsOnTheBattlefieldCondition(filter, CountType.MORE_THAN, 0),
"When {this} enters the battlefield, if you control a tapped creature, create a 1/1 white Warrior creature token with vigilance."));
}
public SupplyCaravan(final SupplyCaravan card) {
super(card);
}
@Override
public SupplyCaravan copy() {
return new SupplyCaravan(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.w;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.VigilanceAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.keyword.CyclingAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
/**
*
* @author fireshoes
*/
public class WingedShepherd extends CardImpl {
public WingedShepherd(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{W}");
this.subtype.add("Angel");
this.power = new MageInt(3);
this.toughness = new MageInt(3);
// Flying
this.addAbility(FlyingAbility.getInstance());
// Vigilance
this.addAbility(VigilanceAbility.getInstance());
// Cycling {W}
this.addAbility(new CyclingAbility(new ManaCostsImpl("{W}")));
}
public WingedShepherd(final WingedShepherd card) {
super(card);
}
@Override
public WingedShepherd copy() {
return new WingedShepherd(this);
}
}

View file

@ -1,174 +1,179 @@
/* /*
* Copyright 2011 BetaSteward_at_googlemail.com. All rights reserved. * Copyright 2011 BetaSteward_at_googlemail.com. All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without modification, are * Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met: * permitted provided that the following conditions are met:
* *
* 1. Redistributions of source code must retain the above copyright notice, this list of * 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer. * conditions and the following disclaimer.
* *
* 2. Redistributions in binary form must reproduce the above copyright notice, this list * 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 * of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution. * provided with the distribution.
* *
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED * 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 * 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 * 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 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 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 * 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 * 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 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* *
* The views and conclusions contained in the software and documentation are those of the * 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 * authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com. * or implied, of BetaSteward_at_googlemail.com.
*/ */
package mage.sets; package mage.sets;
import mage.cards.CardGraphicInfo; import mage.cards.CardGraphicInfo;
import mage.cards.ExpansionSet; import mage.cards.ExpansionSet;
import mage.cards.repository.CardCriteria; import mage.cards.repository.CardCriteria;
import mage.cards.repository.CardInfo; import mage.cards.repository.CardInfo;
import mage.cards.repository.CardRepository; import mage.cards.repository.CardRepository;
import mage.constants.Rarity; import mage.constants.Rarity;
import mage.constants.SetType; import mage.constants.SetType;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
* *
* @author fireshoes * @author fireshoes
*/ */
public class Amonkhet extends ExpansionSet { public class Amonkhet extends ExpansionSet {
private static final Amonkhet instance = new Amonkhet(); private static final Amonkhet instance = new Amonkhet();
public static Amonkhet getInstance() { public static Amonkhet getInstance() {
return instance; return instance;
} }
protected final List<CardInfo> savedSpecialLand = new ArrayList<>(); protected final List<CardInfo> savedSpecialLand = new ArrayList<>();
private Amonkhet() { private Amonkhet() {
super("Amonkhet", "AKH", ExpansionSet.buildDate(2017, 4, 28), SetType.EXPANSION); super("Amonkhet", "AKH", ExpansionSet.buildDate(2017, 4, 28), SetType.EXPANSION);
this.blockName = "Amonkhet"; this.blockName = "Amonkhet";
this.hasBoosters = true; this.hasBoosters = true;
this.hasBasicLands = true; this.hasBasicLands = true;
this.numBoosterLands = 1; this.numBoosterLands = 1;
this.numBoosterCommon = 10; this.numBoosterCommon = 10;
this.numBoosterUncommon = 3; this.numBoosterUncommon = 3;
this.numBoosterRare = 1; this.numBoosterRare = 1;
this.ratioBoosterMythic = 8; this.ratioBoosterMythic = 8;
this.maxCardNumberInBooster = 269; this.maxCardNumberInBooster = 269;
this.ratioBoosterSpecialLand = 144; this.ratioBoosterSpecialLand = 144;
cards.add(new SetCardInfo("Ahn-Crop Crasher", 117, Rarity.UNCOMMON, mage.cards.a.AhnCropCrasher.class)); cards.add(new SetCardInfo("Ahn-Crop Crasher", 117, Rarity.UNCOMMON, mage.cards.a.AhnCropCrasher.class));
cards.add(new SetCardInfo("Ancient Crab", 40, Rarity.COMMON, mage.cards.a.AncientCrab.class)); cards.add(new SetCardInfo("Ancient Crab", 40, Rarity.COMMON, mage.cards.a.AncientCrab.class));
cards.add(new SetCardInfo("Angler Drake", 41, Rarity.UNCOMMON, mage.cards.a.AnglerDrake.class)); cards.add(new SetCardInfo("Angel of Sanctions", 1, Rarity.MYTHIC, mage.cards.a.AngelOfSanctions.class));
cards.add(new SetCardInfo("Anointer Priest", 3, Rarity.COMMON, mage.cards.a.AnointerPriest.class)); cards.add(new SetCardInfo("Angler Drake", 41, Rarity.UNCOMMON, mage.cards.a.AnglerDrake.class));
cards.add(new SetCardInfo("Archfiend of Ifnir", 78, Rarity.RARE, mage.cards.a.ArchfiendOfIfnir.class)); cards.add(new SetCardInfo("Anointer Priest", 3, Rarity.COMMON, mage.cards.a.AnointerPriest.class));
cards.add(new SetCardInfo("Aven Mindcensor", 5, Rarity.RARE, mage.cards.a.AvenMindcensor.class)); cards.add(new SetCardInfo("Archfiend of Ifnir", 78, Rarity.RARE, mage.cards.a.ArchfiendOfIfnir.class));
cards.add(new SetCardInfo("Bontu's Monument", 225, Rarity.UNCOMMON, mage.cards.b.BontusMonument.class)); cards.add(new SetCardInfo("Aven Mindcensor", 5, Rarity.RARE, mage.cards.a.AvenMindcensor.class));
cards.add(new SetCardInfo("Canyon Slough", 239, Rarity.RARE, mage.cards.c.CanyonSlough.class)); cards.add(new SetCardInfo("Bontu's Monument", 225, Rarity.UNCOMMON, mage.cards.b.BontusMonument.class));
cards.add(new SetCardInfo("Cartouche of Solidarity", 7, Rarity.COMMON, mage.cards.c.CartoucheOfSolidarity.class)); cards.add(new SetCardInfo("Canyon Slough", 239, Rarity.RARE, mage.cards.c.CanyonSlough.class));
cards.add(new SetCardInfo("Cast Out", 8, Rarity.UNCOMMON, mage.cards.c.CastOut.class)); cards.add(new SetCardInfo("Cartouche of Solidarity", 7, Rarity.COMMON, mage.cards.c.CartoucheOfSolidarity.class));
cards.add(new SetCardInfo("Channeler Initiate", 160, Rarity.RARE, mage.cards.c.ChannelerInitiate.class)); cards.add(new SetCardInfo("Cast Out", 8, Rarity.UNCOMMON, mage.cards.c.CastOut.class));
cards.add(new SetCardInfo("Colossapede", 161, Rarity.COMMON, mage.cards.c.Colossapede.class)); cards.add(new SetCardInfo("Channeler Initiate", 160, Rarity.RARE, mage.cards.c.ChannelerInitiate.class));
cards.add(new SetCardInfo("Combat Celebrant", 125, Rarity.MYTHIC, mage.cards.c.CombatCelebrant.class)); cards.add(new SetCardInfo("Colossapede", 161, Rarity.COMMON, mage.cards.c.Colossapede.class));
cards.add(new SetCardInfo("Consuming Fervor", 126, Rarity.UNCOMMON, mage.cards.c.ConsumingFervor.class)); cards.add(new SetCardInfo("Combat Celebrant", 125, Rarity.MYTHIC, mage.cards.c.CombatCelebrant.class));
cards.add(new SetCardInfo("Crocodile of the Crossing", 162, Rarity.UNCOMMON, mage.cards.c.CrocodileOfTheCrossing.class)); cards.add(new SetCardInfo("Consuming Fervor", 126, Rarity.UNCOMMON, mage.cards.c.ConsumingFervor.class));
cards.add(new SetCardInfo("Cursed Minotaur", 85, Rarity.COMMON, mage.cards.c.CursedMinotaur.class)); cards.add(new SetCardInfo("Crocodile of the Crossing", 162, Rarity.UNCOMMON, mage.cards.c.CrocodileOfTheCrossing.class));
cards.add(new SetCardInfo("Cut // Ribbons", 223, Rarity.RARE, mage.cards.c.CutRibbons.class)); cards.add(new SetCardInfo("Cursed Minotaur", 85, Rarity.COMMON, mage.cards.c.CursedMinotaur.class));
cards.add(new SetCardInfo("Decision Paralysis", 50, Rarity.COMMON, mage.cards.d.DecisionParalysis.class)); cards.add(new SetCardInfo("Cut // Ribbons", 223, Rarity.RARE, mage.cards.c.CutRibbons.class));
cards.add(new SetCardInfo("Destined // Lead", 217, Rarity.UNCOMMON, mage.cards.d.DestinedLead.class)); cards.add(new SetCardInfo("Decision Paralysis", 50, Rarity.COMMON, mage.cards.d.DecisionParalysis.class));
cards.add(new SetCardInfo("Djeru's Resolve", 11, Rarity.COMMON, mage.cards.d.DjerusResolve.class)); cards.add(new SetCardInfo("Destined // Lead", 217, Rarity.UNCOMMON, mage.cards.d.DestinedLead.class));
cards.add(new SetCardInfo("Drake Haven", 51, Rarity.RARE, mage.cards.d.DrakeHaven.class)); cards.add(new SetCardInfo("Dissenter's Deliverance", 164, Rarity.COMMON, mage.cards.d.DissentersDeliverance.class));
cards.add(new SetCardInfo("Dune Beetle", 89, Rarity.COMMON, mage.cards.d.DuneBeetle.class)); cards.add(new SetCardInfo("Djeru's Resolve", 11, Rarity.COMMON, mage.cards.d.DjerusResolve.class));
cards.add(new SetCardInfo("Dusk // Dawn", 210, Rarity.RARE, mage.cards.d.DuskDawn.class)); cards.add(new SetCardInfo("Drake Haven", 51, Rarity.RARE, mage.cards.d.DrakeHaven.class));
cards.add(new SetCardInfo("Essence Scatter", 52, Rarity.COMMON, mage.cards.e.EssenceScatter.class)); cards.add(new SetCardInfo("Dune Beetle", 89, Rarity.COMMON, mage.cards.d.DuneBeetle.class));
cards.add(new SetCardInfo("Exemplar of Strength", 165, Rarity.UNCOMMON, mage.cards.e.ExemplarOfStrength.class)); cards.add(new SetCardInfo("Dusk // Dawn", 210, Rarity.RARE, mage.cards.d.DuskDawn.class));
cards.add(new SetCardInfo("Fetid Pools", 243, Rarity.RARE, mage.cards.f.FetidPools.class)); cards.add(new SetCardInfo("Essence Scatter", 52, Rarity.COMMON, mage.cards.e.EssenceScatter.class));
cards.add(new SetCardInfo("Flameblade Adept", 131, Rarity.UNCOMMON, mage.cards.f.FlamebladeAdept.class)); cards.add(new SetCardInfo("Exemplar of Strength", 165, Rarity.UNCOMMON, mage.cards.e.ExemplarOfStrength.class));
cards.add(new SetCardInfo("Fling", 132, Rarity.COMMON, mage.cards.f.Fling.class)); cards.add(new SetCardInfo("Fetid Pools", 243, Rarity.RARE, mage.cards.f.FetidPools.class));
cards.add(new SetCardInfo("Forest", 254, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Flameblade Adept", 131, Rarity.UNCOMMON, mage.cards.f.FlamebladeAdept.class));
cards.add(new SetCardInfo("Forest", 267, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Fling", 132, Rarity.COMMON, mage.cards.f.Fling.class));
cards.add(new SetCardInfo("Forest", 268, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Forest", 254, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Forest", 269, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Forest", 267, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Foul Orchard", 279, Rarity.COMMON, mage.cards.f.FoulOrchard.class)); cards.add(new SetCardInfo("Forest", 268, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Giant Spider", 166, Rarity.COMMON, mage.cards.g.GiantSpider.class)); cards.add(new SetCardInfo("Forest", 269, Rarity.LAND, mage.cards.basiclands.Forest.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Gideon of the Trials", 14, Rarity.MYTHIC, mage.cards.g.GideonOfTheTrials.class)); cards.add(new SetCardInfo("Foul Orchard", 279, Rarity.COMMON, mage.cards.f.FoulOrchard.class));
cards.add(new SetCardInfo("Gideon, Martial Paragon", 270, Rarity.MYTHIC, mage.cards.g.GideonMartialParagon.class)); cards.add(new SetCardInfo("Giant Spider", 166, Rarity.COMMON, mage.cards.g.GiantSpider.class));
cards.add(new SetCardInfo("Graceful Cat", 273, Rarity.COMMON, mage.cards.g.GracefulCat.class)); cards.add(new SetCardInfo("Gideon of the Trials", 14, Rarity.MYTHIC, mage.cards.g.GideonOfTheTrials.class));
cards.add(new SetCardInfo("Gravedigger", 93, Rarity.UNCOMMON, mage.cards.g.Gravedigger.class)); cards.add(new SetCardInfo("Gideon, Martial Paragon", 270, Rarity.MYTHIC, mage.cards.g.GideonMartialParagon.class));
cards.add(new SetCardInfo("Hazoret the Fervent", 136, Rarity.MYTHIC, mage.cards.h.HazoretTheFervent.class)); cards.add(new SetCardInfo("Graceful Cat", 273, Rarity.COMMON, mage.cards.g.GracefulCat.class));
cards.add(new SetCardInfo("Hazoret's Monument", 229, Rarity.UNCOMMON, mage.cards.h.HazoretsMonument.class)); cards.add(new SetCardInfo("Gravedigger", 93, Rarity.UNCOMMON, mage.cards.g.Gravedigger.class));
cards.add(new SetCardInfo("Hyena Pack", 139, Rarity.COMMON, mage.cards.h.HyenaPack.class)); cards.add(new SetCardInfo("Hazoret the Fervent", 136, Rarity.MYTHIC, mage.cards.h.HazoretTheFervent.class));
cards.add(new SetCardInfo("Impeccable Timing", 18, Rarity.COMMON, mage.cards.i.ImpeccableTiming.class)); cards.add(new SetCardInfo("Hazoret's Monument", 229, Rarity.UNCOMMON, mage.cards.h.HazoretsMonument.class));
cards.add(new SetCardInfo("In Oketra's Name", 19, Rarity.COMMON, mage.cards.i.InOketrasName.class)); cards.add(new SetCardInfo("Hyena Pack", 139, Rarity.COMMON, mage.cards.h.HyenaPack.class));
cards.add(new SetCardInfo("Insult // Injury", 213, Rarity.RARE, mage.cards.i.InsultInjury.class)); cards.add(new SetCardInfo("Impeccable Timing", 18, Rarity.COMMON, mage.cards.i.ImpeccableTiming.class));
cards.add(new SetCardInfo("Irrigated Farmland", 245, Rarity.RARE, mage.cards.i.IrrigatedFarmland.class)); cards.add(new SetCardInfo("In Oketra's Name", 19, Rarity.COMMON, mage.cards.i.InOketrasName.class));
cards.add(new SetCardInfo("Island", 251, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Insult // Injury", 213, Rarity.RARE, mage.cards.i.InsultInjury.class));
cards.add(new SetCardInfo("Island", 258, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Irrigated Farmland", 245, Rarity.RARE, mage.cards.i.IrrigatedFarmland.class));
cards.add(new SetCardInfo("Island", 259, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Island", 251, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Island", 260, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Island", 258, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Kefnet the Mindful", 59, Rarity.MYTHIC, mage.cards.k.KefnetTheMindful.class)); cards.add(new SetCardInfo("Island", 259, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Kefnet's Monument", 231, Rarity.UNCOMMON, mage.cards.k.KefnetsMonument.class)); cards.add(new SetCardInfo("Island", 260, Rarity.LAND, mage.cards.basiclands.Island.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Lay Bare the Heart", 96, Rarity.UNCOMMON, mage.cards.l.LayBareTheHeart.class)); cards.add(new SetCardInfo("Kefnet the Mindful", 59, Rarity.MYTHIC, mage.cards.k.KefnetTheMindful.class));
cards.add(new SetCardInfo("Liliana, Death Wielder", 274, Rarity.MYTHIC, mage.cards.l.LilianaDeathWielder.class)); cards.add(new SetCardInfo("Kefnet's Monument", 231, Rarity.UNCOMMON, mage.cards.k.KefnetsMonument.class));
cards.add(new SetCardInfo("Limits of Solidarity", 140, Rarity.UNCOMMON, mage.cards.l.LimitsOfSolidarity.class)); cards.add(new SetCardInfo("Lay Bare the Heart", 96, Rarity.UNCOMMON, mage.cards.l.LayBareTheHeart.class));
cards.add(new SetCardInfo("Magma Spray", 141, Rarity.COMMON, mage.cards.m.MagmaSpray.class)); cards.add(new SetCardInfo("Liliana, Death Wielder", 274, Rarity.MYTHIC, mage.cards.l.LilianaDeathWielder.class));
cards.add(new SetCardInfo("Miasma Mummy", 100, Rarity.COMMON, mage.cards.m.MiasmaMummy.class)); cards.add(new SetCardInfo("Limits of Solidarity", 140, Rarity.UNCOMMON, mage.cards.l.LimitsOfSolidarity.class));
cards.add(new SetCardInfo("Mighty Leap", 20, Rarity.COMMON, mage.cards.m.MightyLeap.class)); cards.add(new SetCardInfo("Magma Spray", 141, Rarity.COMMON, mage.cards.m.MagmaSpray.class));
cards.add(new SetCardInfo("Mountain", 253, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Miasma Mummy", 100, Rarity.COMMON, mage.cards.m.MiasmaMummy.class));
cards.add(new SetCardInfo("Mountain", 264, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Mighty Leap", 20, Rarity.COMMON, mage.cards.m.MightyLeap.class));
cards.add(new SetCardInfo("Mountain", 265, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Mountain", 253, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Mountain", 266, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Mountain", 264, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Mouth // Feed", 214, Rarity.RARE, mage.cards.m.MouthFeed.class)); cards.add(new SetCardInfo("Mountain", 265, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Oketra's Monument", 233, Rarity.UNCOMMON, mage.cards.o.OketrasMonument.class)); cards.add(new SetCardInfo("Mountain", 266, Rarity.LAND, mage.cards.basiclands.Mountain.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Onward // Victory", 218, Rarity.UNCOMMON, mage.cards.o.OnwardVictory.class)); cards.add(new SetCardInfo("Mouth // Feed", 214, Rarity.RARE, mage.cards.m.MouthFeed.class));
cards.add(new SetCardInfo("Oracle's Vault", 234, Rarity.RARE, mage.cards.o.OraclesVault.class)); cards.add(new SetCardInfo("Nimble-Blade Khenra", 145, Rarity.COMMON, mage.cards.n.NimbleBladeKhenra.class));
cards.add(new SetCardInfo("Plains", 250, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Oketra's Monument", 233, Rarity.UNCOMMON, mage.cards.o.OketrasMonument.class));
cards.add(new SetCardInfo("Plains", 255, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Onward // Victory", 218, Rarity.UNCOMMON, mage.cards.o.OnwardVictory.class));
cards.add(new SetCardInfo("Plains", 256, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Oracle's Vault", 234, Rarity.RARE, mage.cards.o.OraclesVault.class));
cards.add(new SetCardInfo("Plains", 257, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Plains", 250, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Pouncing Cheetah", 179, Rarity.COMMON, mage.cards.p.PouncingCheetah.class)); cards.add(new SetCardInfo("Plains", 255, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Prepared // Fight", 220, Rarity.RARE, mage.cards.p.PreparedFight.class)); cards.add(new SetCardInfo("Plains", 256, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Prowling Serpopard", 180, Rarity.RARE, mage.cards.p.ProwlingSerpopard.class)); cards.add(new SetCardInfo("Plains", 257, Rarity.LAND, mage.cards.basiclands.Plains.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Rags // Riches", 222, Rarity.RARE, mage.cards.r.RagsRiches.class)); cards.add(new SetCardInfo("Pouncing Cheetah", 179, Rarity.COMMON, mage.cards.p.PouncingCheetah.class));
cards.add(new SetCardInfo("Renewed Faith", 25, Rarity.UNCOMMON, mage.cards.r.RenewedFaith.class)); cards.add(new SetCardInfo("Prepared // Fight", 220, Rarity.RARE, mage.cards.p.PreparedFight.class));
cards.add(new SetCardInfo("Rhonas's Monument", 236, Rarity.UNCOMMON, mage.cards.r.RhonassMonument.class)); cards.add(new SetCardInfo("Prowling Serpopard", 180, Rarity.RARE, mage.cards.p.ProwlingSerpopard.class));
cards.add(new SetCardInfo("Sacred Cat", 27, Rarity.COMMON, mage.cards.s.SacredCat.class)); cards.add(new SetCardInfo("Rags // Riches", 222, Rarity.RARE, mage.cards.r.RagsRiches.class));
cards.add(new SetCardInfo("Scarab Feast", 106, Rarity.COMMON, mage.cards.s.ScarabFeast.class)); cards.add(new SetCardInfo("Renewed Faith", 25, Rarity.UNCOMMON, mage.cards.r.RenewedFaith.class));
cards.add(new SetCardInfo("Scattered Groves", 247, Rarity.RARE, mage.cards.s.ScatteredGroves.class)); cards.add(new SetCardInfo("Rhonas's Monument", 236, Rarity.UNCOMMON, mage.cards.r.RhonassMonument.class));
cards.add(new SetCardInfo("Scribe of the Mindful", 68, Rarity.COMMON, mage.cards.s.ScribeOfTheMindful.class)); cards.add(new SetCardInfo("Sacred Cat", 27, Rarity.COMMON, mage.cards.s.SacredCat.class));
cards.add(new SetCardInfo("Sheltered Thicket", 248, Rarity.RARE, mage.cards.s.ShelteredThicket.class)); cards.add(new SetCardInfo("Scarab Feast", 106, Rarity.COMMON, mage.cards.s.ScarabFeast.class));
cards.add(new SetCardInfo("Sixth Sense", 187, Rarity.UNCOMMON, mage.cards.s.SixthSense.class)); cards.add(new SetCardInfo("Scattered Groves", 247, Rarity.RARE, mage.cards.s.ScatteredGroves.class));
cards.add(new SetCardInfo("Spidery Grasp", 188, Rarity.COMMON, mage.cards.s.SpideryGrasp.class)); cards.add(new SetCardInfo("Scribe of the Mindful", 68, Rarity.COMMON, mage.cards.s.ScribeOfTheMindful.class));
cards.add(new SetCardInfo("Splendid Agony", 109, Rarity.COMMON, mage.cards.s.SplendidAgony.class)); cards.add(new SetCardInfo("Sheltered Thicket", 248, Rarity.RARE, mage.cards.s.ShelteredThicket.class));
cards.add(new SetCardInfo("Swamp", 252, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Sixth Sense", 187, Rarity.UNCOMMON, mage.cards.s.SixthSense.class));
cards.add(new SetCardInfo("Swamp", 261, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Spidery Grasp", 188, Rarity.COMMON, mage.cards.s.SpideryGrasp.class));
cards.add(new SetCardInfo("Swamp", 262, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Splendid Agony", 109, Rarity.COMMON, mage.cards.s.SplendidAgony.class));
cards.add(new SetCardInfo("Swamp", 263, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true))); cards.add(new SetCardInfo("Supply Caravan", 30, Rarity.COMMON, mage.cards.s.SupplyCaravan.class));
cards.add(new SetCardInfo("Tattered Mummy", 278, Rarity.COMMON, mage.cards.t.TatteredMummy.class)); cards.add(new SetCardInfo("Swamp", 252, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Temmet, Vizier of Naktamun", 207, Rarity.RARE, mage.cards.t.TemmetVizierOfNaktamun.class)); cards.add(new SetCardInfo("Swamp", 261, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Trial of Knowledge", 73, Rarity.UNCOMMON, mage.cards.t.TrialOfKnowledge.class)); cards.add(new SetCardInfo("Swamp", 262, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Trueheart Duelist", 35, Rarity.UNCOMMON, mage.cards.t.TrueheartDuelist.class)); cards.add(new SetCardInfo("Swamp", 263, Rarity.LAND, mage.cards.basiclands.Swamp.class, new CardGraphicInfo(null, true)));
cards.add(new SetCardInfo("Unwavering Initiate", 36, Rarity.COMMON, mage.cards.u.UnwaveringInitiate.class)); cards.add(new SetCardInfo("Tattered Mummy", 278, Rarity.COMMON, mage.cards.t.TatteredMummy.class));
} cards.add(new SetCardInfo("Temmet, Vizier of Naktamun", 207, Rarity.RARE, mage.cards.t.TemmetVizierOfNaktamun.class));
cards.add(new SetCardInfo("Trial of Knowledge", 73, Rarity.UNCOMMON, mage.cards.t.TrialOfKnowledge.class));
@Override cards.add(new SetCardInfo("Trueheart Duelist", 35, Rarity.UNCOMMON, mage.cards.t.TrueheartDuelist.class));
public List<CardInfo> getSpecialLand() { cards.add(new SetCardInfo("Unwavering Initiate", 36, Rarity.COMMON, mage.cards.u.UnwaveringInitiate.class));
if (savedSpecialLand.isEmpty()) { cards.add(new SetCardInfo("Winged Shepherd", 39, Rarity.COMMON, mage.cards.w.WingedShepherd.class));
CardCriteria criteria = new CardCriteria(); }
criteria.setCodes("MPS-AKH");
criteria.minCardNumber(1); @Override
criteria.maxCardNumber(30); public List<CardInfo> getSpecialLand() {
savedSpecialLand.addAll(CardRepository.instance.findCards(criteria)); if (savedSpecialLand.isEmpty()) {
} CardCriteria criteria = new CardCriteria();
criteria.setCodes("MPS-AKH");
return new ArrayList<>(savedSpecialLand); criteria.minCardNumber(1);
} criteria.maxCardNumber(30);
} savedSpecialLand.addAll(CardRepository.instance.findCards(criteria));
}
return new ArrayList<>(savedSpecialLand);
}
}

View file

@ -30827,7 +30827,9 @@ Selesnya Guildgate|Modern Masters 2017|246|C||Land - Gate|||Selesnya Guildgate e
Shimmering Grotto|Modern Masters 2017|247|C||Land|||{T}: Add {C} to your mana pool.${1}, {T}: Add one mana of any color to your mana pool.| Shimmering Grotto|Modern Masters 2017|247|C||Land|||{T}: Add {C} to your mana pool.${1}, {T}: Add one mana of any color to your mana pool.|
Simic Guildgate|Modern Masters 2017|248|C||Land - Gate|||Simic Guildgate enters the battlefield tapped.${T}: Add {G} or {U} to your mana pool.| Simic Guildgate|Modern Masters 2017|248|C||Land - Gate|||Simic Guildgate enters the battlefield tapped.${T}: Add {G} or {U} to your mana pool.|
Verdant Catacombs|Modern Masters 2017|249|R||Land|||{T}, Pay 1 life, Sacrifice Verdant Catacombs: Search your library for a Swamp or Forest card and put it onto the battlefield. Then shuffle your library.| Verdant Catacombs|Modern Masters 2017|249|R||Land|||{T}, Pay 1 life, Sacrifice Verdant Catacombs: Search your library for a Swamp or Forest card and put it onto the battlefield. Then shuffle your library.|
Angel of Sanctions|Amonkhet|1|M|{3}{W}{W}|Creature - Angel|3|4|Flying$When Angel of Sanctions enters the battlefield, you may exile target nonland permanent an opponent controls until Angel of Sanctions leaves the battlefield.$Embalm {5}{W}|
Anointer Priest|Amonkhet|3|C|{1}{W}|Creature - Human Cleric|1|3|Whenever a creature token enters the battlefield under your control, you gain 1 life.$Embalm {3}{W}| Anointer Priest|Amonkhet|3|C|{1}{W}|Creature - Human Cleric|1|3|Whenever a creature token enters the battlefield under your control, you gain 1 life.$Embalm {3}{W}|
Approach of the Second Sun|Amonkhet|4|R|{6}{W}|Sorcery|||If Approach of the Second Sun was cast from your hand and you cast another spell named Approach of the Second Sun this game, you win the game. If not, you gain 7 life and put Approach of the Second Sun back into your library as the 7th card from the top.|
Aven Mindcensor|Amonkhet|5|R|{2}{W}|Creature - Bird Wizard|2|1|Flash$Flying$If an opponent would search a library, that player searches the top four cards of that library instead.| Aven Mindcensor|Amonkhet|5|R|{2}{W}|Creature - Bird Wizard|2|1|Flash$Flying$If an opponent would search a library, that player searches the top four cards of that library instead.|
Cartouche of Solidarity|Amonkhet|7|C|{W}|Enchantment - Aura Cartouche|||Enchant creature you control$When Cartouche of Solidarity enters the battlefield, create a 1/1 white Warrior creature token with vigilance.$Enchanted creature gets +1/+1 and has first strike.| Cartouche of Solidarity|Amonkhet|7|C|{W}|Enchantment - Aura Cartouche|||Enchant creature you control$When Cartouche of Solidarity enters the battlefield, create a 1/1 white Warrior creature token with vigilance.$Enchanted creature gets +1/+1 and has first strike.|
Cast Out|Amonkhet|8|U|{3}{W}|Enchantment|||Flash$When Cast Out enters the battlefield, exile target nonland permanent an opponent controls until Cast Out leaves the battlefield.$Cycling {W}| Cast Out|Amonkhet|8|U|{3}{W}|Enchantment|||Flash$When Cast Out enters the battlefield, exile target nonland permanent an opponent controls until Cast Out leaves the battlefield.$Cycling {W}|
@ -30840,10 +30842,12 @@ Mighty Leap|Amonkhet|20|C|{1}{W}|Instant|||Target creature gets +2/+2 and gains
Regal Caracal|Amonkhet|24|R|{3}{W}{W}|Creature - Cat|3|3|Other Cats you control get +1/+1 and have lifelink.$When Regal Caracal enters the battlefield, create two 1/1 white Cat creature tokens with lifelink.| Regal Caracal|Amonkhet|24|R|{3}{W}{W}|Creature - Cat|3|3|Other Cats you control get +1/+1 and have lifelink.$When Regal Caracal enters the battlefield, create two 1/1 white Cat creature tokens with lifelink.|
Renewed Faith|Amonkhet|25|U|{2}{W}|Instant|||You gain 6 life.$Cycling {1}{W}$When you cycle Renewed Faith, you may gain 2 life.| Renewed Faith|Amonkhet|25|U|{2}{W}|Instant|||You gain 6 life.$Cycling {1}{W}$When you cycle Renewed Faith, you may gain 2 life.|
Sacred Cat|Amonkhet|27|C|{W}|Creature - Cat|1|1|Lifelink$Embalm {W}| Sacred Cat|Amonkhet|27|C|{W}|Creature - Cat|1|1|Lifelink$Embalm {W}|
Supply Caravan|Amonkhet|30|C|{4}{W}|Creature - Camel|3|5|When Supply Caravan enters the battlefield, if you control a tapped creature, create a 1/1 white Warrior creature token with vigilance.|
Tah-Crop Elite|Amonkhet|31|C|{3}{W}|Creature - Bird Warrior|2|2|Flying$You may exert Tah-Crop Elite as it attacks. When you do, creatures you control get +1/+1 until end of turn.| Tah-Crop Elite|Amonkhet|31|C|{3}{W}|Creature - Bird Warrior|2|2|Flying$You may exert Tah-Crop Elite as it attacks. When you do, creatures you control get +1/+1 until end of turn.|
Trial of Solidarity|Amonkhet|34|U|{2}{W}|Enchantment|||When Trial of Solidarity enters the battlefield, creatures you control get +2/+1 and gain vigilance until end of turn.$When a Cartouche enters the battlefield under you control, return Trial of Solidarity to its owner's hand.| Trial of Solidarity|Amonkhet|34|U|{2}{W}|Enchantment|||When Trial of Solidarity enters the battlefield, creatures you control get +2/+1 and gain vigilance until end of turn.$When a Cartouche enters the battlefield under you control, return Trial of Solidarity to its owner's hand.|
Trueheart Duelist|Amonkhet|35|U|{1}{W}|Creature - Human Warrior|2|2|Trueheart Duelist can block an additional creature each combat.$Embalm {2}{W}| Trueheart Duelist|Amonkhet|35|U|{1}{W}|Creature - Human Warrior|2|2|Trueheart Duelist can block an additional creature each combat.$Embalm {2}{W}|
Unwavering Initiate|Amonkhet|36|C|{2}{W}|Creature - Human Warrior|3|2|Vigilance$Embalm {4}{W} <i>({4}{W}, Exile this card from your graveyard: Create a token that's a copy of it, except it's a white Zombie Human Warrior with no mana cost. Embalm only as a sorcery.)</i>| Unwavering Initiate|Amonkhet|36|C|{2}{W}|Creature - Human Warrior|3|2|Vigilance$Embalm {4}{W} <i>({4}{W}, Exile this card from your graveyard: Create a token that's a copy of it, except it's a white Zombie Human Warrior with no mana cost. Embalm only as a sorcery.)</i>|
Winged Shepherd|Amonkhet|39|C|{5}{W}|Creature - Angel|3|3|Flying, vigilance$Cycling {W}|
Ancient Crab|Amonkhet|40|C|{1}{U}{U}|Creature - Crab|1|5|| Ancient Crab|Amonkhet|40|C|{1}{U}{U}|Creature - Crab|1|5||
Angler Drake|Amonkhet|41|U|{4}{U}{U}|Creature - Drake|4|4|Flying$When Angler Drake enters the battlefield, you may return target creature to its owner's hand.| Angler Drake|Amonkhet|41|U|{4}{U}{U}|Creature - Drake|4|4|Flying$When Angler Drake enters the battlefield, you may return target creature to its owner's hand.|
As Foretold|Amonkhet|42|M|{2}{U}|Enchantment|||At the beginning of your upkeep, put a time counter on As Foretold.$Once each turn, you may pay {0} rather than pay the mana cost for a spell you cast with converted mana cost X or less, where X is the number of time counters on As Foretold.| As Foretold|Amonkhet|42|M|{2}{U}|Enchantment|||At the beginning of your upkeep, put a time counter on As Foretold.$Once each turn, you may pay {0} rather than pay the mana cost for a spell you cast with converted mana cost X or less, where X is the number of time counters on As Foretold.|
@ -30854,10 +30858,12 @@ Drake Haven|Amonkhet|51|R|{2}{U}|Enchantment|||When you cycle or discard a card,
Essence Scatter|Amonkhet|52|C|{1}{U}|Instant|||Counter target creature spell.| Essence Scatter|Amonkhet|52|C|{1}{U}|Instant|||Counter target creature spell.|
Floodwaters|Amonkhet|53|C|{4}{U}{U}|Sorcery|||Return up to two target creatures to their owners' hands.$Cycling {2}| Floodwaters|Amonkhet|53|C|{4}{U}{U}|Sorcery|||Return up to two target creatures to their owners' hands.$Cycling {2}|
Kefnet the Mindful|Amonkhet|59|M|{2}{U}|Legendary Creature - God|5|5|Flying, indestructible$Kefnet the Mindful can't attack or block unless you have seven or more cards in hand.${3}{U}: Draw a card, then you may return a land you control to its owner's hand.| Kefnet the Mindful|Amonkhet|59|M|{2}{U}|Legendary Creature - God|5|5|Flying, indestructible$Kefnet the Mindful can't attack or block unless you have seven or more cards in hand.${3}{U}: Draw a card, then you may return a land you control to its owner's hand.|
New Perspectives|Amonkhet|63|R|{5}{U}|Enchantment|||When New Perspectives enters the battlefield, draw three cards.$As long as you have seven or more cards in hand, you may pay {0} rather than pay cycling costs.|
Scribe of the Mindful|Amonkhet|68|C|{2}{U}|Creature - Human Cleric|2|2|{1}, {T}, Sacrifice Scribe of the Mindful: Return target instant or sorcery card from your graveyard to your hand.| Scribe of the Mindful|Amonkhet|68|C|{2}{U}|Creature - Human Cleric|2|2|{1}, {T}, Sacrifice Scribe of the Mindful: Return target instant or sorcery card from your graveyard to your hand.|
Trial of Knowledge|Amonkhet|73|U|{3}{U}|Enchantment|||When Trial of Knowledge enters the battlefield, draw three cards, then discard a card.$When a Cartouche enters the battlefield under your control, return Trial of Knowledge to its owner's hand.| Trial of Knowledge|Amonkhet|73|U|{3}{U}|Enchantment|||When Trial of Knowledge enters the battlefield, draw three cards, then discard a card.$When a Cartouche enters the battlefield under your control, return Trial of Knowledge to its owner's hand.|
Archfiend of Ifnir|Amonkhet|78|R|{3}{B}{B}|Creature - Demon|5|4|Flying$Whenever you cycle or discard another card, put a -1/-1 counter on each creature your opponents control.$Cycling {2}| Archfiend of Ifnir|Amonkhet|78|R|{3}{B}{B}|Creature - Demon|5|4|Flying$Whenever you cycle or discard another card, put a -1/-1 counter on each creature your opponents control.$Cycling {2}|
Cartouche of Ambition|Amonkhet|83|C|{2}{B}|Enchantment - Aura Cartouche|||Enchant creature you control$When Cartouche of Ambition enters the battlefield, you may put a -1/-1 counter on target creature.$Enchanted creature gets +1/+1 and has lifelink.| Cartouche of Ambition|Amonkhet|83|C|{2}{B}|Enchantment - Aura Cartouche|||Enchant creature you control$When Cartouche of Ambition enters the battlefield, you may put a -1/-1 counter on target creature.$Enchanted creature gets +1/+1 and has lifelink.|
Cruel Reality|Amonkhet|84|M|{5}{B}{B}|Enchantment - Aura Curse|||Enchant player$At the beginning of enchanted player's upkeep, that player sacrifices a creature or planeswalker. If the player can't, he or she loses 5 life.|
Cursed Minotaur|Amonkhet|85|C|{2}{B}|Creature - Zombie Minotaur|3|2|Menace| Cursed Minotaur|Amonkhet|85|C|{2}{B}|Creature - Zombie Minotaur|3|2|Menace|
Dune Beetle|Amonkhet|89|C|{1}{B}|Creature - Insect|1|4|| Dune Beetle|Amonkhet|89|C|{1}{B}|Creature - Insect|1|4||
Gravedigger|Amonkhet|93|U|{3}{B}|Creature - Zombie|2|2|When Gravedigger enters the battlefield, you may return target creature card from your graveyard to your hand.| Gravedigger|Amonkhet|93|U|{3}{B}|Creature - Zombie|2|2|When Gravedigger enters the battlefield, you may return target creature card from your graveyard to your hand.|
@ -30878,14 +30884,18 @@ Glorybringer|Amonkhet|174|R|{3}{R}{R}|Creature - Dragon|4|4|Flying, haste$You ma
Flameblade Adept|Amonkhet|131|U|{R}|Creature - Jackal Warrior|1|2|Menace$Whenever you cycle or discard a card, Flameblade Adept gets +1/+0 until end of turn.| Flameblade Adept|Amonkhet|131|U|{R}|Creature - Jackal Warrior|1|2|Menace$Whenever you cycle or discard a card, Flameblade Adept gets +1/+0 until end of turn.|
Fling|Amonkhet|132|C|{1}{R}|Instant|||As an additional cost to cast Fling, sacrifice a creature.$Fling deals damage equal to the sacrificed creature's power to target creature or player.| Fling|Amonkhet|132|C|{1}{R}|Instant|||As an additional cost to cast Fling, sacrifice a creature.$Fling deals damage equal to the sacrificed creature's power to target creature or player.|
Hazoret the Fervent|Amonkhet|136|M|{3}{R}|Legendary Creature - God|5|4|Indestructible, haste$Hazoret the Fervent can't attack or block unless you have one or fewer cards in hand.${2}{R}, Discard a card: Hazoret deals 2 damage to each opponent.| Hazoret the Fervent|Amonkhet|136|M|{3}{R}|Legendary Creature - God|5|4|Indestructible, haste$Hazoret the Fervent can't attack or block unless you have one or fewer cards in hand.${2}{R}, Discard a card: Hazoret deals 2 damage to each opponent.|
Hazoret's Favor|Amonkhet|137|R|{2}{R}|Enchantment|||At the beginning of combat on your turn, you may have target creature you control get +2/+0 and gain haste until end of turn. If you do, sacrifice it at the beginning of the next end step.|
Limits of Solidarity|Amonkhet|140|U|{3}{R}|Sorcery|||Gain control of target creature until end of turn. Untap that creature. It gains haste until end of turn.$Cycling {2}| Limits of Solidarity|Amonkhet|140|U|{3}{R}|Sorcery|||Gain control of target creature until end of turn. Untap that creature. It gains haste until end of turn.$Cycling {2}|
Magma Spray|Amonkhet|141|C|{R}|Instant|||Magma Spray deals 2 damage to target creature. If that creature would die this turn, exile it instead.| Magma Spray|Amonkhet|141|C|{R}|Instant|||Magma Spray deals 2 damage to target creature. If that creature would die this turn, exile it instead.|
Hyena Pack|Amonkhet|139|C|{2}{R}{R}|Creature - Hyena|3|4|| Hyena Pack|Amonkhet|139|C|{2}{R}{R}|Creature - Hyena|3|4||
Nimble-Blade Khenra|Amonkhet|145|C|{1}{R}|Creature - Jackal Warrior|1|3|Prowess|
Soul-Scar Mage|Amonkhet|149|{R}|Creature - Human Wizard|1|2|Prowess$If a source you control would deal noncombat damage to a creature an opponent controls, put that many -1/-1 counters on that creature instead.|
Trial of Zeal|Amonkhet|152|U|{2}{R}|Enchantment|||When Trial of Zeal enters the battlefield, it deals 3 damage to target creature or player.$When a Cartouche enters the battlefield under your control, return Trial of Zeal to its owner's hand.| Trial of Zeal|Amonkhet|152|U|{2}{R}|Enchantment|||When Trial of Zeal enters the battlefield, it deals 3 damage to target creature or player.$When a Cartouche enters the battlefield under your control, return Trial of Zeal to its owner's hand.|
Cartouche of Strength|Amonkhet|158|C|{2}{G}|Enchantment - Aura Cartouche|||Enchant creature you control$When Cartouche of Strength enters the battlefield, you may have enchanted creature fight target creature an opponent controls.$Enchanted creature gets +1/+1 and has trample.| Cartouche of Strength|Amonkhet|158|C|{2}{G}|Enchantment - Aura Cartouche|||Enchant creature you control$When Cartouche of Strength enters the battlefield, you may have enchanted creature fight target creature an opponent controls.$Enchanted creature gets +1/+1 and has trample.|
Channeler Initiate|Amonkhet|160|R|{1}{G}|Creature - Human Druid|3|4|When Channeler Initiate enters the battlefield, put three -1/-1 counters on target creature you control.${T}, Remove a -1/-1 counter from Channeler Initiate: Add one mana of any color to your mana pool.| Channeler Initiate|Amonkhet|160|R|{1}{G}|Creature - Human Druid|3|4|When Channeler Initiate enters the battlefield, put three -1/-1 counters on target creature you control.${T}, Remove a -1/-1 counter from Channeler Initiate: Add one mana of any color to your mana pool.|
Colossapede|Amonkhet|161|C|{4}{G}|Creature - Insect|5|5|| Colossapede|Amonkhet|161|C|{4}{G}|Creature - Insect|5|5||
Crocodile of the Crossing|Amonkhet|162|U|{3}{G}|Creature - Crocodile|5|4|Haste$When Crocodile of the Crossing enters the battlefield, put a -1/-1 counter on target creature you control.| Crocodile of the Crossing|Amonkhet|162|U|{3}{G}|Creature - Crocodile|5|4|Haste$When Crocodile of the Crossing enters the battlefield, put a -1/-1 counter on target creature you control.|
Dissenter's Deliverance|Amonkhet|164|C|{1}{G}|Instant|||Destroy target artifact.$Cycling {G}|
Exemplar of Strength|Amonkhet|165|U|{1}{G}|Creature - Human Warrior|4|4|When Exemplar of Strength enters the battlefield, put three -1/-1 counters on target creature you control.$Whenever Exemplar of Strength attacks, remove a -1/-1 counter from it. If you do, you gain 1 life.| Exemplar of Strength|Amonkhet|165|U|{1}{G}|Creature - Human Warrior|4|4|When Exemplar of Strength enters the battlefield, put three -1/-1 counters on target creature you control.$Whenever Exemplar of Strength attacks, remove a -1/-1 counter from it. If you do, you gain 1 life.|
Giant Spider|Amonkhet|166|C|{3}{G}|Creature - Spider|2|4|Reach| Giant Spider|Amonkhet|166|C|{3}{G}|Creature - Spider|2|4|Reach|
Manglehorn|Amonkhet|175|U|{2}{G}|Creature - Beast|2|2|When Manglehorn enters the battlefield, you may destroy target artifact.$Artifacts your opponents control enter the battlefield tapped.| Manglehorn|Amonkhet|175|U|{2}{G}|Creature - Beast|2|2|When Manglehorn enters the battlefield, you may destroy target artifact.$Artifacts your opponents control enter the battlefield tapped.|
@ -30895,6 +30905,8 @@ Sixth Sense|Amonkhet|187|U|{G}|Enchantment - Aura|||Enchant creature$Enchanted c
Spidery Grasp|Amonkhet|188|C|{2}{G}|Instant|||Untap target creature. It gets +2/+4 and gains reach until end of turn.| Spidery Grasp|Amonkhet|188|C|{2}{G}|Instant|||Untap target creature. It gets +2/+4 and gains reach until end of turn.|
Trial of Strength|Amonkhet|191|U|{2}{G}|Enchantment|||When Trial of Strength enters the battlefield, create a 4/2 green Beast creature token.$When a Cartouche enters the battlefield under your control, return Trial of Strength to its owner's hand.| Trial of Strength|Amonkhet|191|U|{2}{G}|Enchantment|||When Trial of Strength enters the battlefield, create a 4/2 green Beast creature token.$When a Cartouche enters the battlefield under your control, return Trial of Strength to its owner's hand.|
Watchful Naga|Amonkhet|193|U|{2}{G}|Creature - Naga Wizard|2|2|You may exert Watchful Naga as it attacks. When you do, draw a card.| Watchful Naga|Amonkhet|193|U|{2}{G}|Creature - Naga Wizard|2|2|You may exert Watchful Naga as it attacks. When you do, draw a card.|
Bounty of the Luxa|Amonkhet|196|R|{2}{G}{U}|Enchantment|||At the beginning of your precombat main phase, remove all flood counters from Bounty of the Luxa. If no counters were removed this way, put a flood counter on Bounty of the Luxa and draw a card. Otherwise, add {C}{G}{U} to your mana pool.|
Hapatra, Vizier of Poisons|Amonkhet|199|R|{B}{G}|Legendary Creature - Human Cleric|2|2|Whenever Hapatra, Vizier of Poisons deals combat damage to a player, you may put a -1/-1 counter on target creature.$Whenever you put one or more -1/-1 counters on a creature, create a 1/1 green Snake creature token with deathtouch.|
Temmet, Vizier of Naktamun|Amonkhet|207|R|{W}{U}|Legendary Creature - Human Cleric|2|2|At the beginning of combat on your turn, target creature token you control gets +1/+1 until end of turn and can't be blocked this turn.$Embalm {3}{W}{U}| Temmet, Vizier of Naktamun|Amonkhet|207|R|{W}{U}|Legendary Creature - Human Cleric|2|2|At the beginning of combat on your turn, target creature token you control gets +1/+1 until end of turn and can't be blocked this turn.$Embalm {3}{W}{U}|
Dusk|Amonkhet|210a|R|{2}{W}{W}|Sorcery|||Destroy all creatures with power 3 or greater.| Dusk|Amonkhet|210a|R|{2}{W}{W}|Sorcery|||Destroy all creatures with power 3 or greater.|
Dawn|Amonkhet|210b|R|{3}{W}{W}|Sorcery|||Aftermath <i>(Cast this spell only from your graveyard. Then exile it.)</i>$Return all creature cards with power 2 or less from your graveyard to your hand.| Dawn|Amonkhet|210b|R|{3}{W}{W}|Sorcery|||Aftermath <i>(Cast this spell only from your graveyard. Then exile it.)</i>$Return all creature cards with power 2 or less from your graveyard to your hand.|