mirror of
https://github.com/correl/mage.git
synced 2024-12-25 03:00:15 +00:00
Merge branch 'master' into war-of-the-spark
This commit is contained in:
commit
fdea72aecd
12 changed files with 451 additions and 1 deletions
49
Mage.Sets/src/mage/cards/b/BurningProphet.java
Normal file
49
Mage.Sets/src/mage/cards/b/BurningProphet.java
Normal file
|
@ -0,0 +1,49 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.keyword.ScryEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class BurningProphet extends CardImpl {
|
||||
|
||||
public BurningProphet(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}");
|
||||
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.WIZARD);
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// Whenever you cast a noncreature spell, Burning Prophet gets +1/+0 until end of turn, then scry 1.
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(
|
||||
new BoostSourceEffect(
|
||||
1, 0, Duration.EndOfTurn
|
||||
).setText("{this} gets +1/+0 until end of turn, then"),
|
||||
StaticFilters.FILTER_SPELL_NON_CREATURE, false
|
||||
);
|
||||
ability.addEffect(new ScryEffect(1));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private BurningProphet(final BurningProphet card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BurningProphet copy() {
|
||||
return new BurningProphet(this);
|
||||
}
|
||||
}
|
41
Mage.Sets/src/mage/cards/d/DovinsVeto.java
Normal file
41
Mage.Sets/src/mage/cards/d/DovinsVeto.java
Normal file
|
@ -0,0 +1,41 @@
|
|||
package mage.cards.d;
|
||||
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.CantBeCounteredSourceEffect;
|
||||
import mage.abilities.effects.common.CounterTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.TargetSpell;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class DovinsVeto extends CardImpl {
|
||||
|
||||
public DovinsVeto(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{W}{U}");
|
||||
|
||||
// This spell can't be countered.
|
||||
this.addAbility(new SimpleStaticAbility(
|
||||
Zone.STACK, new CantBeCounteredSourceEffect()
|
||||
).setRuleAtTheTop(true));
|
||||
|
||||
// Counter target noncreature spell.
|
||||
this.getSpellAbility().addEffect(new CounterTargetEffect());
|
||||
this.getSpellAbility().addTarget(new TargetSpell(StaticFilters.FILTER_SPELL_NON_CREATURE));
|
||||
}
|
||||
|
||||
private DovinsVeto(final DovinsVeto card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DovinsVeto copy() {
|
||||
return new DovinsVeto(this);
|
||||
}
|
||||
}
|
45
Mage.Sets/src/mage/cards/e/ErraticVisionary.java
Normal file
45
Mage.Sets/src/mage/cards/e/ErraticVisionary.java
Normal file
|
@ -0,0 +1,45 @@
|
|||
package mage.cards.e;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.DrawDiscardControllerEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class ErraticVisionary extends CardImpl {
|
||||
|
||||
public ErraticVisionary(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}");
|
||||
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
this.subtype.add(SubType.WIZARD);
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(3);
|
||||
|
||||
// {1}{U}, {T}: Draw a card, then discard a card.
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new DrawDiscardControllerEffect(), new ManaCostsImpl("{1}{U}")
|
||||
);
|
||||
ability.addCost(new TapSourceCost());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private ErraticVisionary(final ErraticVisionary card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ErraticVisionary copy() {
|
||||
return new ErraticVisionary(this);
|
||||
}
|
||||
}
|
36
Mage.Sets/src/mage/cards/h/HonorTheGodPharaoh.java
Normal file
36
Mage.Sets/src/mage/cards/h/HonorTheGodPharaoh.java
Normal file
|
@ -0,0 +1,36 @@
|
|||
package mage.cards.h;
|
||||
|
||||
import mage.abilities.costs.common.DiscardCardCost;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.keyword.AmassEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class HonorTheGodPharaoh extends CardImpl {
|
||||
|
||||
public HonorTheGodPharaoh(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{R}");
|
||||
|
||||
// As an additional cost to cast this spell, discard a card.
|
||||
this.getSpellAbility().addCost(new DiscardCardCost(false));
|
||||
|
||||
// Draw two cards. Amass 1.
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2).setText("draw two cards."));
|
||||
this.getSpellAbility().addEffect(new AmassEffect(1));
|
||||
}
|
||||
|
||||
private HonorTheGodPharaoh(final HonorTheGodPharaoh card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HonorTheGodPharaoh copy() {
|
||||
return new HonorTheGodPharaoh(this);
|
||||
}
|
||||
}
|
40
Mage.Sets/src/mage/cards/k/KarnsBastion.java
Normal file
40
Mage.Sets/src/mage/cards/k/KarnsBastion.java
Normal file
|
@ -0,0 +1,40 @@
|
|||
package mage.cards.k;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.SimpleActivatedAbility;
|
||||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.common.counter.ProliferateEffect;
|
||||
import mage.abilities.mana.ColorlessManaAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class KarnsBastion extends CardImpl {
|
||||
|
||||
public KarnsBastion(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
|
||||
// {T}: Add {C}.
|
||||
this.addAbility(new ColorlessManaAbility());
|
||||
|
||||
// {4}, {T}: Proliferate.
|
||||
Ability ability = new SimpleActivatedAbility(new ProliferateEffect(), new GenericManaCost(4));
|
||||
ability.addCost(new TapSourceCost());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private KarnsBastion(final KarnsBastion card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public KarnsBastion copy() {
|
||||
return new KarnsBastion(this);
|
||||
}
|
||||
}
|
57
Mage.Sets/src/mage/cards/k/KioraBehemothBeckoner.java
Normal file
57
Mage.Sets/src/mage/cards/k/KioraBehemothBeckoner.java
Normal file
|
@ -0,0 +1,57 @@
|
|||
package mage.cards.k;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.LoyaltyAbility;
|
||||
import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
|
||||
import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
|
||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||
import mage.abilities.effects.common.UntapTargetEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.PowerPredicate;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class KioraBehemothBeckoner extends CardImpl {
|
||||
|
||||
private static final FilterPermanent filter
|
||||
= new FilterCreaturePermanent("a creature with power 4 or greater");
|
||||
|
||||
static {
|
||||
filter.add(new PowerPredicate(ComparisonType.MORE_THAN, 3));
|
||||
}
|
||||
|
||||
public KioraBehemothBeckoner(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{2}{G/U}");
|
||||
|
||||
this.addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.KIORA);
|
||||
this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(7));
|
||||
|
||||
// Whenever a creature with power 4 or greater enters the battlefield under your control, draw a card.
|
||||
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(
|
||||
Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), filter, false
|
||||
));
|
||||
|
||||
// -1: Untap target permanent.
|
||||
Ability ability = new LoyaltyAbility(new UntapTargetEffect(), -1);
|
||||
ability.addTarget(new TargetPermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private KioraBehemothBeckoner(final KioraBehemothBeckoner card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public KioraBehemothBeckoner copy() {
|
||||
return new KioraBehemothBeckoner(this);
|
||||
}
|
||||
}
|
33
Mage.Sets/src/mage/cards/n/NagaEternal.java
Normal file
33
Mage.Sets/src/mage/cards/n/NagaEternal.java
Normal file
|
@ -0,0 +1,33 @@
|
|||
package mage.cards.n;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class NagaEternal extends CardImpl {
|
||||
|
||||
public NagaEternal(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}");
|
||||
|
||||
this.subtype.add(SubType.ZOMBIE);
|
||||
this.subtype.add(SubType.NAGA);
|
||||
this.power = new MageInt(3);
|
||||
this.toughness = new MageInt(2);
|
||||
}
|
||||
|
||||
private NagaEternal(final NagaEternal card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public NagaEternal copy() {
|
||||
return new NagaEternal(this);
|
||||
}
|
||||
}
|
61
Mage.Sets/src/mage/cards/s/SamutTyrantSmasher.java
Normal file
61
Mage.Sets/src/mage/cards/s/SamutTyrantSmasher.java
Normal file
|
@ -0,0 +1,61 @@
|
|||
package mage.cards.s;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.LoyaltyAbility;
|
||||
import mage.abilities.common.PlaneswalkerEntersWithLoyaltyCountersAbility;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.abilities.effects.keyword.ScryEffect;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class SamutTyrantSmasher extends CardImpl {
|
||||
|
||||
public SamutTyrantSmasher(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, "{2}{R/G}{R/G}");
|
||||
|
||||
this.addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add(SubType.SAMUT);
|
||||
this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(5));
|
||||
|
||||
// Creatures you control have haste.
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
|
||||
HasteAbility.getInstance(), Duration.WhileOnBattlefield,
|
||||
StaticFilters.FILTER_PERMANENT_CREATURES
|
||||
)));
|
||||
|
||||
// -1: Target creature gets +2/+1 and gains haste until end of turn. Scry 1.
|
||||
Ability ability = new LoyaltyAbility(new BoostTargetEffect(
|
||||
2, 1, Duration.EndOfTurn
|
||||
).setText("target creature gets +2/+1"), -1);
|
||||
ability.addEffect(new GainAbilityTargetEffect(
|
||||
HasteAbility.getInstance(), Duration.EndOfTurn
|
||||
).setText("and gains haste until end of turn."));
|
||||
ability.addEffect(new ScryEffect(1));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private SamutTyrantSmasher(final SamutTyrantSmasher card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SamutTyrantSmasher copy() {
|
||||
return new SamutTyrantSmasher(this);
|
||||
}
|
||||
}
|
42
Mage.Sets/src/mage/cards/s/SamutsSprint.java
Normal file
42
Mage.Sets/src/mage/cards/s/SamutsSprint.java
Normal file
|
@ -0,0 +1,42 @@
|
|||
package mage.cards.s;
|
||||
|
||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.abilities.effects.keyword.ScryEffect;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class SamutsSprint extends CardImpl {
|
||||
|
||||
public SamutsSprint(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{R}");
|
||||
|
||||
// Target creature gets +2/+1 and gains haste until end of turn. Scry 1.
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(
|
||||
2, 1, Duration.EndOfTurn
|
||||
).setText("target creature gets +2/+1"));
|
||||
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(
|
||||
HasteAbility.getInstance(), Duration.EndOfTurn
|
||||
).setText("and gains haste until end of turn."));
|
||||
this.getSpellAbility().addEffect(new ScryEffect(1));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
}
|
||||
|
||||
private SamutsSprint(final SamutsSprint card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SamutsSprint copy() {
|
||||
return new SamutsSprint(this);
|
||||
}
|
||||
}
|
38
Mage.Sets/src/mage/cards/w/WanderersStrike.java
Normal file
38
Mage.Sets/src/mage/cards/w/WanderersStrike.java
Normal file
|
@ -0,0 +1,38 @@
|
|||
package mage.cards.w;
|
||||
|
||||
import mage.abilities.effects.common.ExileTargetEffect;
|
||||
import mage.abilities.effects.common.counter.ProliferateEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class WanderersStrike extends CardImpl {
|
||||
|
||||
public WanderersStrike(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{W}");
|
||||
|
||||
|
||||
// Exile target creature, then proliferate.
|
||||
this.getSpellAbility().addEffect(new ExileTargetEffect());
|
||||
this.getSpellAbility().addEffect(new ProliferateEffect().setText(
|
||||
"then proliferate <i>(Choose any number of permanents and/or players, " +
|
||||
"then give each another counter of each kind already there.)</i>"
|
||||
));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
}
|
||||
|
||||
private WanderersStrike(final WanderersStrike card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WanderersStrike copy() {
|
||||
return new WanderersStrike(this);
|
||||
}
|
||||
}
|
|
@ -31,7 +31,7 @@ public final class WarOfTheSpark extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Burning Prophet", 117, Rarity.COMMON, mage.cards.b.BurningProphet.class));
|
||||
cards.add(new SetCardInfo("Cruel Celebrant", 188, Rarity.UNCOMMON, mage.cards.c.CruelCelebrant.class));
|
||||
cards.add(new SetCardInfo("Crush Dissent", 47, Rarity.COMMON, mage.cards.c.CrushDissent.class));
|
||||
cards.add(new SetCardInfo("Dovin's Veto", 193, Rarity.UNCOMMON, mage.cards.d.DovinsVeto.class));
|
||||
cards.add(new SetCardInfo("Dovin's Veto", 193, Rarity.COMMON, mage.cards.d.DovinsVeto.class));
|
||||
cards.add(new SetCardInfo("Dreadhorde Invasion", 86, Rarity.RARE, mage.cards.d.DreadhordeInvasion.class));
|
||||
cards.add(new SetCardInfo("Emergence Zone", 245, Rarity.UNCOMMON, mage.cards.e.EmergenceZone.class));
|
||||
cards.add(new SetCardInfo("Erratic Visionary", 48, Rarity.COMMON, mage.cards.e.ErraticVisionary.class));
|
||||
|
@ -40,6 +40,7 @@ public final class WarOfTheSpark extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Forest", 263, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Forest", 264, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Herald of the Dreadhorde", 93, Rarity.COMMON, mage.cards.h.HeraldOfTheDreadhorde.class));
|
||||
cards.add(new SetCardInfo("Honor the God-Pharaoh", 132, Rarity.COMMON, mage.cards.h.HonorTheGodPharaoh.class));
|
||||
cards.add(new SetCardInfo("Ignite the Beacon", 18, Rarity.RARE, mage.cards.i.IgniteTheBeacon.class));
|
||||
cards.add(new SetCardInfo("Interplanar Beacon", 247, Rarity.UNCOMMON, mage.cards.i.InterplanarBeacon.class));
|
||||
cards.add(new SetCardInfo("Invade the City", 201, Rarity.UNCOMMON, mage.cards.i.InvadeTheCity.class));
|
||||
|
@ -47,10 +48,13 @@ public final class WarOfTheSpark extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Island", 254, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Island", 255, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Jace, Wielder of Mysteries", 54, Rarity.RARE, mage.cards.j.JaceWielderOfMysteries.class));
|
||||
cards.add(new SetCardInfo("Karn's Bastion", 248, Rarity.RARE, mage.cards.k.KarnsBastion.class));
|
||||
cards.add(new SetCardInfo("Kiora, Behemoth Beckoner", 232, Rarity.UNCOMMON, mage.cards.k.KioraBehemothBeckoner.class));
|
||||
cards.add(new SetCardInfo("Liliana, Dreadhorde General", 97, Rarity.MYTHIC, mage.cards.l.LilianaDreadhordeGeneral.class));
|
||||
cards.add(new SetCardInfo("Mountain", 259, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Mountain", 260, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Mountain", 261, Rarity.LAND, mage.cards.basiclands.Mountain.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Naga Eternal", 60, Rarity.COMMON, mage.cards.n.NagaEternal.class));
|
||||
cards.add(new SetCardInfo("No Escape", 63, Rarity.COMMON, mage.cards.n.NoEscape.class));
|
||||
cards.add(new SetCardInfo("Ob Nixilis's Cruelty", 101, Rarity.COMMON, mage.cards.o.ObNixilissCruelty.class));
|
||||
cards.add(new SetCardInfo("Ob Nixilis, the Hate-Twisted", 100, Rarity.UNCOMMON, mage.cards.o.ObNixilisTheHateTwisted.class));
|
||||
|
@ -60,6 +64,8 @@ public final class WarOfTheSpark extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Plains", 252, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Ravnica at War", 28, Rarity.RARE, mage.cards.r.RavnicaAtWar.class));
|
||||
cards.add(new SetCardInfo("Relentless Advance", 64, Rarity.COMMON, mage.cards.r.RelentlessAdvance.class));
|
||||
cards.add(new SetCardInfo("Samut's Sprint", 142, Rarity.COMMON, mage.cards.s.SamutsSprint.class));
|
||||
cards.add(new SetCardInfo("Samut, Tyrant Smasher", 235, Rarity.UNCOMMON, mage.cards.s.SamutTyrantSmasher.class));
|
||||
cards.add(new SetCardInfo("Swamp", 256, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Swamp", 257, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS));
|
||||
cards.add(new SetCardInfo("Swamp", 258, Rarity.LAND, mage.cards.basiclands.Swamp.class, NON_FULL_USE_VARIOUS));
|
||||
|
@ -69,6 +75,7 @@ public final class WarOfTheSpark extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Time Wipe", 223, Rarity.RARE, mage.cards.t.TimeWipe.class));
|
||||
cards.add(new SetCardInfo("Vraska's Finisher", 112, Rarity.COMMON, mage.cards.v.VraskasFinisher.class));
|
||||
cards.add(new SetCardInfo("Vraska, Swarm's Eminence", 236, Rarity.UNCOMMON, mage.cards.v.VraskaSwarmsEminence.class));
|
||||
cards.add(new SetCardInfo("Wanderer's Strike", 38, Rarity.COMMON, mage.cards.w.WanderersStrike.class));
|
||||
cards.add(new SetCardInfo("Widespread Brutality", 226, Rarity.RARE, mage.cards.w.WidespreadBrutality.class));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34852,6 +34852,7 @@ The Haunt of Hightower|Ravnica Allegiance|273|M|{4}{B}{B}|Legendary Creature - V
|
|||
Serra the Benevolent|Modern Horizons|26|M|{2}{W}{W}|Legendary Planeswalker - Serra|4|+2: Creatures you control with flying get +1/+1 until end of turn.$-3: Create a 4/4 white Angel creature token with flying and vigilance.$-6: You get an emblem with "If you control a creature, damage that would reduce your life total to less than 1 reduces it to 1 instead."|
|
||||
Cabal Therapist|Modern Horizons|80|R|{B}|Creature - Horror|1|1|Menace$At the beginning of your precombat main phase, you may sacrifice a creature. When you do, choose a nonland card name, then target player reveals their hand and discards all cards with that name.|
|
||||
Ajani's Pridemate|War of the Spark|4|U|{1}{W}|Creature - Cat Soldier|2|2|Whenever you gain life, put a +1/+1 counter on Ajani's Pridemate.|
|
||||
Gideon's Triumph|War of the Spark|15|U|{1}{W}|Instant|||Target opponent sacrifices a creature that attacked or blocked this turn. If you control a Gideon planeswalker, that player sacrifices two of those creatures instead.|
|
||||
Ignite the Beacon|War of the Spark|18|R|{4}{W}|Instant|||Search your library for up to to two planeswalker cards, reveal them, put them into your hand, then shuffle your library.|
|
||||
Ravnica at War|War of the Spark|28|R|{3}{W}|Sorcery|||Exile all multicolored permanents.|
|
||||
Rising Populace|War of the Spark|29|C|{2}{W}|Creature - Human|2|2|Whenever another creature or planeswalker you control dies, put a +1/+1 counter on Rising Populace.|
|
||||
|
|
Loading…
Reference in a new issue