mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 10:40:06 -08:00
convert transforming "B" cards to single class file
This commit is contained in:
parent
f1d86a569f
commit
0fc8d0871c
58 changed files with 722 additions and 1569 deletions
|
|
@ -1,48 +0,0 @@
|
||||||
package mage.cards.b;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.common.AttacksTriggeredAbility;
|
|
||||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
|
||||||
import mage.abilities.keyword.CrewAbility;
|
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.SuperType;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author TheElk801
|
|
||||||
*/
|
|
||||||
public final class BalambGardenAirborne extends CardImpl {
|
|
||||||
|
|
||||||
public BalambGardenAirborne(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "");
|
|
||||||
|
|
||||||
this.supertype.add(SuperType.LEGENDARY);
|
|
||||||
this.subtype.add(SubType.VEHICLE);
|
|
||||||
this.power = new MageInt(5);
|
|
||||||
this.toughness = new MageInt(4);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Flying
|
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
|
||||||
|
|
||||||
// Whenever Balamb Garden attacks, draw a card.
|
|
||||||
this.addAbility(new AttacksTriggeredAbility(new DrawCardSourceControllerEffect(1)));
|
|
||||||
|
|
||||||
// Crew 1
|
|
||||||
this.addAbility(new CrewAbility(1));
|
|
||||||
}
|
|
||||||
|
|
||||||
private BalambGardenAirborne(final BalambGardenAirborne card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BalambGardenAirborne copy() {
|
|
||||||
return new BalambGardenAirborne(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.common.AttacksTriggeredAbility;
|
||||||
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
import mage.abilities.common.EntersBattlefieldTappedAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.CostAdjuster;
|
import mage.abilities.costs.CostAdjuster;
|
||||||
|
|
@ -8,17 +9,20 @@ import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.dynamicvalue.DynamicValue;
|
import mage.abilities.dynamicvalue.DynamicValue;
|
||||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||||
|
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||||
import mage.abilities.effects.common.InfoEffect;
|
import mage.abilities.effects.common.InfoEffect;
|
||||||
import mage.abilities.effects.common.TransformSourceEffect;
|
import mage.abilities.effects.common.TransformSourceEffect;
|
||||||
import mage.abilities.hint.Hint;
|
import mage.abilities.hint.Hint;
|
||||||
import mage.abilities.hint.ValueHint;
|
import mage.abilities.hint.ValueHint;
|
||||||
import mage.abilities.keyword.TransformAbility;
|
import mage.abilities.keyword.CrewAbility;
|
||||||
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.abilities.mana.BlueManaAbility;
|
import mage.abilities.mana.BlueManaAbility;
|
||||||
import mage.abilities.mana.GreenManaAbility;
|
import mage.abilities.mana.GreenManaAbility;
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
import mage.constants.SuperType;
|
||||||
import mage.filter.FilterPermanent;
|
import mage.filter.FilterPermanent;
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||||
|
|
@ -30,29 +34,39 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BalambGardenSeeDAcademy extends CardImpl {
|
public final class BalambGardenSeeDAcademy extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
public BalambGardenSeeDAcademy(UUID ownerId, CardSetInfo setInfo) {
|
public BalambGardenSeeDAcademy(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
super(ownerId, setInfo,
|
||||||
|
new SuperType[]{}, new CardType[]{CardType.LAND}, new SubType[]{SubType.TOWN}, "",
|
||||||
this.subtype.add(SubType.TOWN);
|
"Balamb Garden, Airborne",
|
||||||
this.secondSideCardClazz = mage.cards.b.BalambGardenAirborne.class;
|
new SuperType[]{SuperType.LEGENDARY}, new CardType[]{CardType.ARTIFACT}, new SubType[]{SubType.VEHICLE}, "");
|
||||||
|
this.getRightHalfCard().setPT(5, 4);
|
||||||
|
|
||||||
// This land enters tapped.
|
// This land enters tapped.
|
||||||
this.addAbility(new EntersBattlefieldTappedAbility());
|
this.getLeftHalfCard().addAbility(new EntersBattlefieldTappedAbility());
|
||||||
|
|
||||||
// Add {G} or {U}.
|
// Add {G} or {U}.
|
||||||
this.addAbility(new GreenManaAbility());
|
this.getLeftHalfCard().addAbility(new GreenManaAbility());
|
||||||
this.addAbility(new BlueManaAbility());
|
this.getLeftHalfCard().addAbility(new BlueManaAbility());
|
||||||
|
|
||||||
// {5}{G}{U}, {T}: Transform this land. This ability costs {1} less to activate for each other Town you control.
|
// {5}{G}{U}, {T}: Transform this land. This ability costs {1} less to activate for each other Town you control.
|
||||||
this.addAbility(new TransformAbility());
|
|
||||||
Ability ability = new SimpleActivatedAbility(new TransformSourceEffect(), new ManaCostsImpl<>("{5}{G}{U}"));
|
Ability ability = new SimpleActivatedAbility(new TransformSourceEffect(), new ManaCostsImpl<>("{5}{G}{U}"));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addEffect(new InfoEffect("This ability costs {1} less to activate for each other Town you control"));
|
ability.addEffect(new InfoEffect("This ability costs {1} less to activate for each other Town you control"));
|
||||||
this.addAbility(ability
|
this.getLeftHalfCard().addAbility(ability
|
||||||
.setCostAdjuster(BalambGardenSeeDAcademyAdjuster.instance)
|
.setCostAdjuster(BalambGardenSeeDAcademyAdjuster.instance)
|
||||||
.addHint(BalambGardenSeeDAcademyAdjuster.getHint()));
|
.addHint(BalambGardenSeeDAcademyAdjuster.getHint()));
|
||||||
|
|
||||||
|
// Balamb Garden, Airborne
|
||||||
|
// Flying
|
||||||
|
this.getRightHalfCard().addAbility(FlyingAbility.getInstance());
|
||||||
|
|
||||||
|
// Whenever Balamb Garden attacks, draw a card.
|
||||||
|
this.getRightHalfCard().addAbility(new AttacksTriggeredAbility(new DrawCardSourceControllerEffect(1)));
|
||||||
|
|
||||||
|
// Crew 1
|
||||||
|
this.getRightHalfCard().addAbility(new CrewAbility(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
private BalambGardenSeeDAcademy(final BalambGardenSeeDAcademy card) {
|
private BalambGardenSeeDAcademy(final BalambGardenSeeDAcademy card) {
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,23 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
|
import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.abilities.effects.common.DamageTargetEffect;
|
import mage.abilities.effects.common.DamageTargetEffect;
|
||||||
|
import mage.abilities.effects.common.combat.CantBlockTargetEffect;
|
||||||
import mage.abilities.keyword.DayboundAbility;
|
import mage.abilities.keyword.DayboundAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.abilities.keyword.NightboundAbility;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Duration;
|
||||||
|
import mage.constants.Outcome;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
import mage.game.Game;
|
||||||
|
import mage.game.permanent.Permanent;
|
||||||
|
import mage.players.Player;
|
||||||
import mage.target.common.TargetAnyTarget;
|
import mage.target.common.TargetAnyTarget;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
@ -18,17 +25,16 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BallistaWatcher extends CardImpl {
|
public final class BallistaWatcher extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
public BallistaWatcher(UUID ownerId, CardSetInfo setInfo) {
|
public BallistaWatcher(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{R}{R}");
|
super(ownerId, setInfo,
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.HUMAN, SubType.SOLDIER, SubType.WEREWOLF}, "{2}{R}{R}",
|
||||||
|
"Ballista Wielder",
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.WEREWOLF}, "R");
|
||||||
|
|
||||||
this.subtype.add(SubType.HUMAN);
|
// Ballista Watcher
|
||||||
this.subtype.add(SubType.SOLDIER);
|
this.getLeftHalfCard().setPT(4, 3);
|
||||||
this.subtype.add(SubType.WEREWOLF);
|
|
||||||
this.power = new MageInt(4);
|
|
||||||
this.toughness = new MageInt(3);
|
|
||||||
this.secondSideCardClazz = mage.cards.b.BallistaWielder.class;
|
|
||||||
|
|
||||||
// {2}{R}, {T}: Ballista Watcher deals 1 damage to any target.
|
// {2}{R}, {T}: Ballista Watcher deals 1 damage to any target.
|
||||||
Ability ability = new SimpleActivatedAbility(
|
Ability ability = new SimpleActivatedAbility(
|
||||||
|
|
@ -36,10 +42,21 @@ public final class BallistaWatcher extends CardImpl {
|
||||||
);
|
);
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addTarget(new TargetAnyTarget());
|
ability.addTarget(new TargetAnyTarget());
|
||||||
this.addAbility(ability);
|
this.getLeftHalfCard().addAbility(ability);
|
||||||
|
|
||||||
// Daybound
|
// Daybound
|
||||||
this.addAbility(new DayboundAbility());
|
this.getLeftHalfCard().addAbility(new DayboundAbility());
|
||||||
|
|
||||||
|
// Ballista Wielder
|
||||||
|
this.getRightHalfCard().setPT(5, 5);
|
||||||
|
|
||||||
|
// {2}{R}: Ballista Wielder deals 1 damage to any target. A creature dealt damage this way can't block this turn.
|
||||||
|
Ability weilderAbility = new SimpleActivatedAbility(new BallistaWielderEffect(), new ManaCostsImpl<>("{2}{R}"));
|
||||||
|
weilderAbility.addTarget(new TargetAnyTarget());
|
||||||
|
this.getRightHalfCard().addAbility(weilderAbility);
|
||||||
|
|
||||||
|
// Nightbound
|
||||||
|
this.getRightHalfCard().addAbility(new NightboundAbility());
|
||||||
}
|
}
|
||||||
|
|
||||||
private BallistaWatcher(final BallistaWatcher card) {
|
private BallistaWatcher(final BallistaWatcher card) {
|
||||||
|
|
@ -51,3 +68,34 @@ public final class BallistaWatcher extends CardImpl {
|
||||||
return new BallistaWatcher(this);
|
return new BallistaWatcher(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class BallistaWielderEffect extends OneShotEffect {
|
||||||
|
|
||||||
|
BallistaWielderEffect() {
|
||||||
|
super(Outcome.Benefit);
|
||||||
|
staticText = "{this} deals 1 damage to any target. A creature dealt damage this way can't block this turn";
|
||||||
|
}
|
||||||
|
|
||||||
|
private BallistaWielderEffect(final BallistaWielderEffect effect) {
|
||||||
|
super(effect);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BallistaWielderEffect copy() {
|
||||||
|
return new BallistaWielderEffect(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean apply(Game game, Ability source) {
|
||||||
|
Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source));
|
||||||
|
if (permanent == null) {
|
||||||
|
Player player = game.getPlayer(getTargetPointer().getFirst(game, source));
|
||||||
|
return player != null && player.damage(1, source, game) > 0;
|
||||||
|
}
|
||||||
|
if (permanent.damage(1, source, game) <= 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
game.addEffect(new CantBlockTargetEffect(Duration.EndOfTurn), source);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,85 +0,0 @@
|
||||||
package mage.cards.b;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.Ability;
|
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
|
||||||
import mage.abilities.effects.OneShotEffect;
|
|
||||||
import mage.abilities.effects.common.combat.CantBlockTargetEffect;
|
|
||||||
import mage.abilities.keyword.NightboundAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.game.Game;
|
|
||||||
import mage.game.permanent.Permanent;
|
|
||||||
import mage.players.Player;
|
|
||||||
import mage.target.common.TargetAnyTarget;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author TheElk801
|
|
||||||
*/
|
|
||||||
public final class BallistaWielder extends CardImpl {
|
|
||||||
|
|
||||||
public BallistaWielder(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.WEREWOLF);
|
|
||||||
this.power = new MageInt(5);
|
|
||||||
this.toughness = new MageInt(5);
|
|
||||||
this.color.setRed(true);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// {2}{R}: Ballista Wielder deals 1 damage to any target. A creature dealt damage this way can't block this turn.
|
|
||||||
Ability ability = new SimpleActivatedAbility(new BallistaWielderEffect(), new ManaCostsImpl<>("{2}{R}"));
|
|
||||||
ability.addTarget(new TargetAnyTarget());
|
|
||||||
this.addAbility(ability);
|
|
||||||
|
|
||||||
// Nightbound
|
|
||||||
this.addAbility(new NightboundAbility());
|
|
||||||
}
|
|
||||||
|
|
||||||
private BallistaWielder(final BallistaWielder card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BallistaWielder copy() {
|
|
||||||
return new BallistaWielder(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class BallistaWielderEffect extends OneShotEffect {
|
|
||||||
|
|
||||||
BallistaWielderEffect() {
|
|
||||||
super(Outcome.Benefit);
|
|
||||||
staticText = "{this} deals 1 damage to any target. A creature dealt damage this way can't block this turn";
|
|
||||||
}
|
|
||||||
|
|
||||||
private BallistaWielderEffect(final BallistaWielderEffect effect) {
|
|
||||||
super(effect);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BallistaWielderEffect copy() {
|
|
||||||
return new BallistaWielderEffect(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source));
|
|
||||||
if (permanent == null) {
|
|
||||||
Player player = game.getPlayer(getTargetPointer().getFirst(game, source));
|
|
||||||
return player != null && player.damage(1, source, game) > 0;
|
|
||||||
}
|
|
||||||
if (permanent.damage(1, source, game) <= 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
game.addEffect(new CantBlockTargetEffect(Duration.EndOfTurn), source);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.common.BecomesBlockedSourceTriggeredAbility;
|
import mage.abilities.common.BecomesBlockedSourceTriggeredAbility;
|
||||||
|
import mage.abilities.common.DiesCreatureTriggeredAbility;
|
||||||
|
import mage.abilities.effects.common.LoseLifeTargetControllerEffect;
|
||||||
import mage.abilities.effects.common.continuous.BoostAllEffect;
|
import mage.abilities.effects.common.continuous.BoostAllEffect;
|
||||||
import mage.abilities.keyword.DayboundAbility;
|
import mage.abilities.keyword.DayboundAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.abilities.keyword.NightboundAbility;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Duration;
|
import mage.constants.Duration;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
@ -17,31 +19,47 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BanebladeScoundrel extends CardImpl {
|
public final class BanebladeScoundrel extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent();
|
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature blocking {this}");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(BlockingOrBlockedBySourcePredicate.BLOCKING);
|
filter.add(BlockingOrBlockedBySourcePredicate.BLOCKING);
|
||||||
}
|
}
|
||||||
|
|
||||||
public BanebladeScoundrel(UUID ownerId, CardSetInfo setInfo) {
|
public BanebladeScoundrel(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, new SubType[]{SubType.HUMAN, SubType.ROGUE, SubType.WEREWOLF}, "{3}{B}",
|
||||||
|
"Baneclaw Marauder",
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.WEREWOLF}, "B");
|
||||||
|
|
||||||
this.subtype.add(SubType.HUMAN);
|
// Baneblade Scoundrel
|
||||||
this.subtype.add(SubType.ROGUE);
|
this.getLeftHalfCard().setPT(4, 3);
|
||||||
this.subtype.add(SubType.WEREWOLF);
|
|
||||||
this.power = new MageInt(4);
|
|
||||||
this.toughness = new MageInt(3);
|
|
||||||
this.secondSideCardClazz = mage.cards.b.BaneclawMarauder.class;
|
|
||||||
|
|
||||||
// Whenever Baneblade Scoundrel becomes blocked, each creature blocking it gets -1/-1 until end of turn.
|
// Whenever Baneblade Scoundrel becomes blocked, each creature blocking it gets -1/-1 until end of turn.
|
||||||
this.addAbility(new BecomesBlockedSourceTriggeredAbility(new BoostAllEffect(
|
this.getLeftHalfCard().addAbility(new BecomesBlockedSourceTriggeredAbility(new BoostAllEffect(
|
||||||
-1, -1, Duration.EndOfTurn, filter, false
|
-1, -1, Duration.EndOfTurn, filter, false
|
||||||
).setText("each creature blocking it gets -1/-1 until end of turn"), false));
|
).setText("each creature blocking it gets -1/-1 until end of turn"), false));
|
||||||
|
|
||||||
// Daybound
|
// Daybound
|
||||||
this.addAbility(new DayboundAbility());
|
this.getLeftHalfCard().addAbility(new DayboundAbility());
|
||||||
|
|
||||||
|
// Baneclaw Marauder
|
||||||
|
this.getRightHalfCard().setPT(5, 4);
|
||||||
|
|
||||||
|
// Whenever Baneclaw Marauder becomes blocked, each creature blocking it gets -1/-1 until end of turn.
|
||||||
|
this.getRightHalfCard().addAbility(new BecomesBlockedSourceTriggeredAbility(new BoostAllEffect(
|
||||||
|
-1, -1, Duration.EndOfTurn, filter, false
|
||||||
|
).setText("each creature blocking it gets -1/-1 until end of turn"), false));
|
||||||
|
|
||||||
|
// Whenever a creature blocking Baneclaw Marauder dies, its controller loses 1 life.
|
||||||
|
this.getRightHalfCard().addAbility(new DiesCreatureTriggeredAbility(
|
||||||
|
new LoseLifeTargetControllerEffect(1)
|
||||||
|
.setText("that creature's controller loses 1 life"),
|
||||||
|
false, filter, true
|
||||||
|
));
|
||||||
|
|
||||||
|
// Nightbound
|
||||||
|
this.getRightHalfCard().addAbility(new NightboundAbility());
|
||||||
}
|
}
|
||||||
|
|
||||||
private BanebladeScoundrel(final BanebladeScoundrel card) {
|
private BanebladeScoundrel(final BanebladeScoundrel card) {
|
||||||
|
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
||||||
package mage.cards.b;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.common.BecomesBlockedSourceTriggeredAbility;
|
|
||||||
import mage.abilities.common.DiesCreatureTriggeredAbility;
|
|
||||||
import mage.abilities.effects.common.LoseLifeTargetControllerEffect;
|
|
||||||
import mage.abilities.effects.common.continuous.BoostAllEffect;
|
|
||||||
import mage.abilities.keyword.NightboundAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
|
||||||
import mage.filter.predicate.permanent.BlockingOrBlockedBySourcePredicate;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author TheElk801
|
|
||||||
*/
|
|
||||||
public final class BaneclawMarauder extends CardImpl {
|
|
||||||
|
|
||||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature blocking {this}");
|
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(BlockingOrBlockedBySourcePredicate.BLOCKING);
|
|
||||||
}
|
|
||||||
|
|
||||||
public BaneclawMarauder(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.WEREWOLF);
|
|
||||||
this.power = new MageInt(5);
|
|
||||||
this.toughness = new MageInt(4);
|
|
||||||
this.color.setBlack(true);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Whenever Baneclaw Marauder becomes blocked, each creature blocking it gets -1/-1 until end of turn.
|
|
||||||
this.addAbility(new BecomesBlockedSourceTriggeredAbility(new BoostAllEffect(
|
|
||||||
-1, -1, Duration.EndOfTurn, filter, false
|
|
||||||
).setText("each creature blocking it gets -1/-1 until end of turn"), false));
|
|
||||||
|
|
||||||
// Whenever a creature blocking Baneclaw Marauder dies, its controller loses 1 life.
|
|
||||||
this.addAbility(new DiesCreatureTriggeredAbility(
|
|
||||||
new LoseLifeTargetControllerEffect(1)
|
|
||||||
.setText("that creature's controller loses 1 life"),
|
|
||||||
false, filter, true
|
|
||||||
));
|
|
||||||
|
|
||||||
// Nightbound
|
|
||||||
this.addAbility(new NightboundAbility());
|
|
||||||
}
|
|
||||||
|
|
||||||
private BaneclawMarauder(final BaneclawMarauder card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BaneclawMarauder copy() {
|
|
||||||
return new BaneclawMarauder(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -6,9 +6,8 @@ import mage.abilities.effects.common.ExileSagaAndReturnTransformedEffect;
|
||||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.abilities.keyword.TransformAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SagaChapter;
|
import mage.constants.SagaChapter;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
@ -19,20 +18,20 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BefriendingTheMoths extends CardImpl {
|
public final class BefriendingTheMoths extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
public BefriendingTheMoths(UUID ownerId, CardSetInfo setInfo) {
|
public BefriendingTheMoths(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{W}");
|
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, new SubType[]{SubType.SAGA}, "{3}{W}",
|
||||||
|
"Imperial Moth",
|
||||||
this.subtype.add(SubType.SAGA);
|
new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, new SubType[]{SubType.INSECT}, "W");
|
||||||
this.secondSideCardClazz = mage.cards.i.ImperialMoth.class;
|
|
||||||
|
|
||||||
|
// Befriending the Moths
|
||||||
// (As this Saga enters and after your draw step, add a lore counter.)
|
// (As this Saga enters and after your draw step, add a lore counter.)
|
||||||
SagaAbility sagaAbility = new SagaAbility(this);
|
SagaAbility sagaAbility = new SagaAbility(getLeftHalfCard());
|
||||||
|
|
||||||
// I, II — Target creature you control gets +1/+1 and gains flying until end of turn.
|
// I, II — Target creature you control gets +1/+1 and gains flying until end of turn.
|
||||||
sagaAbility.addChapterEffect(
|
sagaAbility.addChapterEffect(
|
||||||
this, SagaChapter.CHAPTER_I, SagaChapter.CHAPTER_II,
|
getLeftHalfCard(), SagaChapter.CHAPTER_I, SagaChapter.CHAPTER_II,
|
||||||
new Effects(
|
new Effects(
|
||||||
new BoostTargetEffect(1, 1)
|
new BoostTargetEffect(1, 1)
|
||||||
.setText("target creature you control gets +1/+1"),
|
.setText("target creature you control gets +1/+1"),
|
||||||
|
|
@ -42,10 +41,14 @@ public final class BefriendingTheMoths extends CardImpl {
|
||||||
);
|
);
|
||||||
|
|
||||||
// III — Exile this Saga, then return it to the battlefield transformed under your control.
|
// III — Exile this Saga, then return it to the battlefield transformed under your control.
|
||||||
this.addAbility(new TransformAbility());
|
sagaAbility.addChapterEffect(getLeftHalfCard(), SagaChapter.CHAPTER_III, new ExileSagaAndReturnTransformedEffect());
|
||||||
sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_III, new ExileSagaAndReturnTransformedEffect());
|
this.getLeftHalfCard().addAbility(sagaAbility);
|
||||||
|
|
||||||
this.addAbility(sagaAbility);
|
// Imperial Moth
|
||||||
|
this.getRightHalfCard().setPT(2, 4);
|
||||||
|
|
||||||
|
// Flying
|
||||||
|
this.getRightHalfCard().addAbility(FlyingAbility.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
private BefriendingTheMoths(final BefriendingTheMoths card) {
|
private BefriendingTheMoths(final BefriendingTheMoths card) {
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,19 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.abilities.common.SagaAbility;
|
import mage.abilities.common.SagaAbility;
|
||||||
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.condition.common.HeckbentCondition;
|
import mage.abilities.condition.common.HeckbentCondition;
|
||||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||||
|
import mage.abilities.dynamicvalue.common.CardsInControllerHandCount;
|
||||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||||
import mage.abilities.effects.common.ExileSagaAndReturnTransformedEffect;
|
import mage.abilities.effects.common.ExileSagaAndReturnTransformedEffect;
|
||||||
import mage.abilities.effects.common.continuous.BoostAllEffect;
|
import mage.abilities.effects.common.continuous.BoostAllEffect;
|
||||||
|
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||||
import mage.abilities.effects.keyword.ScryEffect;
|
import mage.abilities.effects.keyword.ScryEffect;
|
||||||
import mage.abilities.keyword.TransformAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.abilities.keyword.TrampleAbility;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Duration;
|
import mage.constants.Duration;
|
||||||
import mage.constants.SagaChapter;
|
import mage.constants.SagaChapter;
|
||||||
|
|
@ -21,35 +25,49 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BeholdTheUnspeakable extends CardImpl {
|
public final class BeholdTheUnspeakable extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
public BeholdTheUnspeakable(UUID ownerId, CardSetInfo setInfo) {
|
public BeholdTheUnspeakable(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{U}{U}");
|
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, new SubType[]{SubType.SAGA}, "{3}{U}{U}",
|
||||||
|
"Vision of the Unspeakable",
|
||||||
this.subtype.add(SubType.SAGA);
|
new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, new SubType[]{SubType.SPIRIT}, "U");
|
||||||
this.secondSideCardClazz = mage.cards.v.VisionOfTheUnspeakable.class;
|
|
||||||
|
|
||||||
|
// Behold the Unspeakable
|
||||||
// (As this Saga enters and after your draw step, add a lore counter.)
|
// (As this Saga enters and after your draw step, add a lore counter.)
|
||||||
SagaAbility sagaAbility = new SagaAbility(this);
|
SagaAbility sagaAbility = new SagaAbility(getLeftHalfCard());
|
||||||
|
|
||||||
// I — Creatures you don't control get -2/-0 until your next turn.
|
// I — Creatures you don't control get -2/-0 until your next turn.
|
||||||
sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_I, new BoostAllEffect(
|
sagaAbility.addChapterEffect(getLeftHalfCard(), SagaChapter.CHAPTER_I, new BoostAllEffect(
|
||||||
-2, 0, Duration.UntilYourNextTurn,
|
-2, 0, Duration.UntilYourNextTurn,
|
||||||
StaticFilters.FILTER_CREATURES_YOU_DONT_CONTROL, false
|
StaticFilters.FILTER_CREATURES_YOU_DONT_CONTROL, false
|
||||||
));
|
));
|
||||||
|
|
||||||
// II — If you have one or fewer cards in hand, draw four cards. Otherwise, scry 2, then draw two cards.
|
// II — If you have one or fewer cards in hand, draw four cards. Otherwise, scry 2, then draw two cards.
|
||||||
sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_II, new ConditionalOneShotEffect(
|
sagaAbility.addChapterEffect(getLeftHalfCard(), SagaChapter.CHAPTER_II, new ConditionalOneShotEffect(
|
||||||
new DrawCardSourceControllerEffect(4), new ScryEffect(2),
|
new DrawCardSourceControllerEffect(4), new ScryEffect(2),
|
||||||
HeckbentCondition.instance, "if you have one or fewer cards in hand, " +
|
HeckbentCondition.instance, "if you have one or fewer cards in hand, " +
|
||||||
"draw four cards. Otherwise, scry 2, then draw two cards"
|
"draw four cards. Otherwise, scry 2, then draw two cards"
|
||||||
).addOtherwiseEffect(new DrawCardSourceControllerEffect(2)));
|
).addOtherwiseEffect(new DrawCardSourceControllerEffect(2)));
|
||||||
|
|
||||||
// III — Exile this Saga, then return it to the battlefield transformed under your control.
|
// III — Exile this Saga, then return it to the battlefield transformed under your control.
|
||||||
this.addAbility(new TransformAbility());
|
sagaAbility.addChapterEffect(getLeftHalfCard(), SagaChapter.CHAPTER_III, new ExileSagaAndReturnTransformedEffect());
|
||||||
sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_III, new ExileSagaAndReturnTransformedEffect());
|
this.getLeftHalfCard().addAbility(sagaAbility);
|
||||||
|
|
||||||
this.addAbility(sagaAbility);
|
// Vision of the Unspeakable
|
||||||
|
this.getRightHalfCard().setPT(0, 0);
|
||||||
|
|
||||||
|
// Flying
|
||||||
|
this.getRightHalfCard().addAbility(FlyingAbility.getInstance());
|
||||||
|
|
||||||
|
// Trample
|
||||||
|
this.getRightHalfCard().addAbility(TrampleAbility.getInstance());
|
||||||
|
|
||||||
|
// Vision of the Unspeakable gets +1/+1 for each card in your hand.
|
||||||
|
this.getRightHalfCard().addAbility(new SimpleStaticAbility(new BoostSourceEffect(
|
||||||
|
CardsInControllerHandCount.ANY_SINGULAR,
|
||||||
|
CardsInControllerHandCount.ANY_SINGULAR,
|
||||||
|
Duration.WhileOnBattlefield
|
||||||
|
)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private BeholdTheUnspeakable(final BeholdTheUnspeakable card) {
|
private BeholdTheUnspeakable(final BeholdTheUnspeakable card) {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
|
||||||
import mage.abilities.keyword.DisturbAbility;
|
import mage.abilities.keyword.DisturbAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
|
import mage.abilities.keyword.VigilanceAbility;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
|
@ -13,20 +13,27 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author weirddan455
|
* @author weirddan455
|
||||||
*/
|
*/
|
||||||
public final class BelovedBeggar extends CardImpl {
|
public final class BelovedBeggar extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
public BelovedBeggar(UUID ownerId, CardSetInfo setInfo) {
|
public BelovedBeggar(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, new SubType[]{SubType.HUMAN, SubType.PEASANT}, "{1}{W}",
|
||||||
|
"Generous Soul",
|
||||||
this.subtype.add(SubType.HUMAN);
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.SPIRIT}, "W");
|
||||||
this.subtype.add(SubType.PEASANT);
|
this.getLeftHalfCard().setPT(0, 4);
|
||||||
this.power = new MageInt(0);
|
this.getRightHalfCard().setPT(4, 4);
|
||||||
this.toughness = new MageInt(4);
|
|
||||||
|
|
||||||
this.secondSideCardClazz = mage.cards.g.GenerousSoul.class;
|
|
||||||
|
|
||||||
// Disturb {4}{W}{W}
|
// Disturb {4}{W}{W}
|
||||||
this.addAbility(new DisturbAbility(this, "{4}{W}{W}"));
|
this.getLeftHalfCard().addAbility(new DisturbAbility(this, "{4}{W}{W}"));
|
||||||
|
|
||||||
|
// Generous Soul
|
||||||
|
// Flying
|
||||||
|
this.getRightHalfCard().addAbility(FlyingAbility.getInstance());
|
||||||
|
|
||||||
|
// Vigilance
|
||||||
|
this.getRightHalfCard().addAbility(VigilanceAbility.getInstance());
|
||||||
|
|
||||||
|
// If Generous Soul would be put into a graveyard from anywhere, exile it instead.
|
||||||
|
this.getRightHalfCard().addAbility(DisturbAbility.makeBackAbility());
|
||||||
}
|
}
|
||||||
|
|
||||||
private BelovedBeggar(final BelovedBeggar card) {
|
private BelovedBeggar(final BelovedBeggar card) {
|
||||||
|
|
|
||||||
|
|
@ -1,37 +1,56 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.common.AttacksTriggeredAbility;
|
||||||
import mage.abilities.common.DiesCreatureTriggeredAbility;
|
import mage.abilities.common.DiesCreatureTriggeredAbility;
|
||||||
|
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
|
||||||
import mage.abilities.effects.common.TransformSourceEffect;
|
import mage.abilities.effects.common.TransformSourceEffect;
|
||||||
import mage.abilities.keyword.TransformAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.ComparisonType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
import mage.filter.FilterCard;
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
|
import mage.filter.common.FilterCreatureCard;
|
||||||
|
import mage.filter.predicate.mageobject.ManaValuePredicate;
|
||||||
|
import mage.target.common.TargetCardInYourGraveyard;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BereavedSurvivor extends CardImpl {
|
public final class BereavedSurvivor extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
|
private static final FilterCard filter
|
||||||
|
= new FilterCreatureCard("creature card with mana value 2 or less from your graveyard");
|
||||||
|
|
||||||
|
static {
|
||||||
|
filter.add(new ManaValuePredicate(ComparisonType.FEWER_THAN, 3));
|
||||||
|
}
|
||||||
public BereavedSurvivor(UUID ownerId, CardSetInfo setInfo) {
|
public BereavedSurvivor(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}");
|
super(ownerId, setInfo,
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.HUMAN, SubType.PEASANT}, "{2}{W}",
|
||||||
|
"Dauntless Avenger",
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.HUMAN, SubType.SOLDIER}, "W");
|
||||||
|
|
||||||
this.subtype.add(SubType.HUMAN);
|
// Bereaved Survivor
|
||||||
this.subtype.add(SubType.PEASANT);
|
this.getLeftHalfCard().setPT(2, 1);
|
||||||
this.power = new MageInt(2);
|
|
||||||
this.toughness = new MageInt(1);
|
|
||||||
this.secondSideCardClazz = mage.cards.d.DauntlessAvenger.class;
|
|
||||||
|
|
||||||
// When another creature you control dies, transform Bereaved Survivor.
|
// When another creature you control dies, transform Bereaved Survivor.
|
||||||
this.addAbility(new TransformAbility());
|
this.getLeftHalfCard().addAbility(new DiesCreatureTriggeredAbility(
|
||||||
this.addAbility(new DiesCreatureTriggeredAbility(
|
|
||||||
new TransformSourceEffect(), false,
|
new TransformSourceEffect(), false,
|
||||||
StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE
|
StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE
|
||||||
).setTriggerPhrase("When another creature you control dies, "));
|
).setTriggerPhrase("When another creature you control dies, "));
|
||||||
|
|
||||||
|
// Dauntless Avenger
|
||||||
|
this.getRightHalfCard().setPT(3, 2);
|
||||||
|
|
||||||
|
// Whenever Dauntless Avenger attacks, return target creature card with mana value 2 or less from your graveyard to the battlefield tapped and attacking.
|
||||||
|
Ability ability = new AttacksTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect(true, true));
|
||||||
|
ability.addTarget(new TargetCardInYourGraveyard(filter));
|
||||||
|
this.getRightHalfCard().addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
private BereavedSurvivor(final BereavedSurvivor card) {
|
private BereavedSurvivor(final BereavedSurvivor card) {
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,20 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.AttacksTriggeredAbility;
|
import mage.abilities.common.AttacksTriggeredAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.effects.common.AttachEffect;
|
||||||
|
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
|
||||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||||
import mage.abilities.keyword.DisturbAbility;
|
import mage.abilities.keyword.DisturbAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.abilities.keyword.EnchantAbility;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Outcome;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
import mage.target.TargetPermanent;
|
||||||
|
import mage.target.common.TargetCreaturePermanent;
|
||||||
import mage.target.common.TargetOpponentsCreaturePermanent;
|
import mage.target.common.TargetOpponentsCreaturePermanent;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
@ -17,23 +22,38 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BindingGeist extends CardImpl {
|
public final class BindingGeist extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
public BindingGeist(UUID ownerId, CardSetInfo setInfo) {
|
public BindingGeist(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}");
|
super(ownerId, setInfo,
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.SPIRIT}, "{2}{U}",
|
||||||
|
"Spectral Binding",
|
||||||
|
new CardType[]{CardType.ENCHANTMENT}, new SubType[]{SubType.AURA}, "U");
|
||||||
|
|
||||||
this.subtype.add(SubType.SPIRIT);
|
// Binding Geist
|
||||||
this.power = new MageInt(3);
|
this.getLeftHalfCard().setPT(3, 1);
|
||||||
this.toughness = new MageInt(1);
|
|
||||||
this.secondSideCardClazz = mage.cards.s.SpectralBinding.class;
|
|
||||||
|
|
||||||
// Whenever Binding Geist attacks, target creature an opponent controls gets -2/-0 until end of turn.
|
// Whenever Binding Geist attacks, target creature an opponent controls gets -2/-0 until end of turn.
|
||||||
Ability ability = new AttacksTriggeredAbility(new BoostTargetEffect(-2, 0));
|
Ability ability = new AttacksTriggeredAbility(new BoostTargetEffect(-2, 0));
|
||||||
ability.addTarget(new TargetOpponentsCreaturePermanent());
|
ability.addTarget(new TargetOpponentsCreaturePermanent());
|
||||||
this.addAbility(ability);
|
this.getLeftHalfCard().addAbility(ability);
|
||||||
|
|
||||||
|
// Spectral Binding
|
||||||
|
// Enchant creature
|
||||||
|
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
||||||
|
this.getSpellAbility().addTarget(auraTarget);
|
||||||
|
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
|
||||||
|
this.getRightHalfCard().addAbility(new EnchantAbility(auraTarget));
|
||||||
|
|
||||||
// Disturb {1}{U}
|
// Disturb {1}{U}
|
||||||
this.addAbility(new DisturbAbility(this, "{1}{U}"));
|
// needs to be added after right half has spell ability target set
|
||||||
|
this.getLeftHalfCard().addAbility(new DisturbAbility(this, "{1}{U}"));
|
||||||
|
|
||||||
|
// Enchanted creature gets -2/-0.
|
||||||
|
this.getRightHalfCard().addAbility(new SimpleStaticAbility(new BoostEnchantedEffect(-2, 0)));
|
||||||
|
|
||||||
|
// If Spectral Binding would be put into a graveyard from anywhere, exile it instead.
|
||||||
|
this.getRightHalfCard().addAbility(DisturbAbility.makeBackAbility());
|
||||||
}
|
}
|
||||||
|
|
||||||
private BindingGeist(final BindingGeist card) {
|
private BindingGeist(final BindingGeist card) {
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,22 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||||
import mage.abilities.common.SacrificeSourceTriggeredAbility;
|
import mage.abilities.common.SacrificeSourceTriggeredAbility;
|
||||||
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility;
|
import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbility;
|
||||||
|
import mage.abilities.costs.common.SacrificeTargetCost;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
|
import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
|
||||||
|
import mage.abilities.effects.common.combat.CantBeBlockedSourceEffect;
|
||||||
import mage.abilities.effects.keyword.ScryEffect;
|
import mage.abilities.effects.keyword.ScryEffect;
|
||||||
import mage.abilities.keyword.DefenderAbility;
|
import mage.abilities.keyword.DefenderAbility;
|
||||||
import mage.abilities.keyword.TransformAbility;
|
import mage.abilities.keyword.TransformAbility;
|
||||||
import mage.cards.Card;
|
import mage.cards.Card;
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.*;
|
||||||
import mage.constants.SubType;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
|
|
||||||
|
|
@ -25,28 +25,39 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BiolumeEgg extends CardImpl {
|
public final class BiolumeEgg extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
|
private static final FilterControlledPermanent filter
|
||||||
|
= new FilterControlledPermanent(SubType.ISLAND, "Islands");
|
||||||
|
|
||||||
public BiolumeEgg(UUID ownerId, CardSetInfo setInfo) {
|
public BiolumeEgg(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}");
|
super(ownerId, setInfo,
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.SERPENT, SubType.EGG}, "{2}{U}",
|
||||||
|
"Biolume Serpent",
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.SERPENT}, "U");
|
||||||
|
|
||||||
this.subtype.add(SubType.SERPENT);
|
// Biolume Egg
|
||||||
this.subtype.add(SubType.EGG);
|
this.getLeftHalfCard().setPT(0, 4);
|
||||||
this.power = new MageInt(0);
|
|
||||||
this.toughness = new MageInt(4);
|
|
||||||
this.secondSideCardClazz = mage.cards.b.BiolumeSerpent.class;
|
|
||||||
|
|
||||||
// Defender
|
// Defender
|
||||||
this.addAbility(DefenderAbility.getInstance());
|
this.getLeftHalfCard().addAbility(DefenderAbility.getInstance());
|
||||||
|
|
||||||
// When Biolume Egg enters the battlefield, scry 2.
|
// When Biolume Egg enters the battlefield, scry 2.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(2)));
|
this.getLeftHalfCard().addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(2)));
|
||||||
|
|
||||||
// When you sacrifice Biolume Egg, return it to the battlefield transformed under its owner's control at the beginning of the next end step.
|
// When you sacrifice Biolume Egg, return it to the battlefield transformed under its owner's control at the beginning of the next end step.
|
||||||
this.addAbility(new TransformAbility());
|
this.getLeftHalfCard().addAbility(new SacrificeSourceTriggeredAbility(new CreateDelayedTriggeredAbilityEffect(
|
||||||
this.addAbility(new SacrificeSourceTriggeredAbility(new CreateDelayedTriggeredAbilityEffect(
|
|
||||||
new AtTheBeginOfNextEndStepDelayedTriggeredAbility(new BiolumeEggEffect()), true
|
new AtTheBeginOfNextEndStepDelayedTriggeredAbility(new BiolumeEggEffect()), true
|
||||||
).setText("return it to the battlefield transformed under its owner's control at the beginning of the next end step"), false, true));
|
).setText("return it to the battlefield transformed under its owner's control at the beginning of the next end step"), false, true));
|
||||||
|
|
||||||
|
// Biolume Serpent
|
||||||
|
this.getRightHalfCard().setPT(4, 4);
|
||||||
|
|
||||||
|
// Sacrifice two Islands: Biolume Serpent can't be blocked this turn.
|
||||||
|
this.getRightHalfCard().addAbility(new SimpleActivatedAbility(
|
||||||
|
new CantBeBlockedSourceEffect(Duration.EndOfTurn),
|
||||||
|
new SacrificeTargetCost(2, filter)
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
private BiolumeEgg(final BiolumeEgg card) {
|
private BiolumeEgg(final BiolumeEgg card) {
|
||||||
|
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
package mage.cards.b;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
|
||||||
import mage.abilities.costs.common.SacrificeTargetCost;
|
|
||||||
import mage.abilities.effects.common.combat.CantBeBlockedSourceEffect;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
|
||||||
import mage.target.common.TargetControlledPermanent;
|
|
||||||
import mage.target.common.TargetSacrifice;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author TheElk801
|
|
||||||
*/
|
|
||||||
public final class BiolumeSerpent extends CardImpl {
|
|
||||||
|
|
||||||
private static final FilterControlledPermanent filter
|
|
||||||
= new FilterControlledPermanent(SubType.ISLAND, "Islands");
|
|
||||||
|
|
||||||
public BiolumeSerpent(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.SERPENT);
|
|
||||||
this.power = new MageInt(4);
|
|
||||||
this.toughness = new MageInt(4);
|
|
||||||
this.color.setBlue(true);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Sacrifice two Islands: Biolume Serpent can't be blocked this turn.
|
|
||||||
this.addAbility(new SimpleActivatedAbility(
|
|
||||||
new CantBeBlockedSourceEffect(Duration.EndOfTurn),
|
|
||||||
new SacrificeTargetCost(2, filter)
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
private BiolumeSerpent(final BiolumeSerpent card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BiolumeSerpent copy() {
|
|
||||||
return new BiolumeSerpent(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.keyword.DayboundAbility;
|
import mage.abilities.keyword.DayboundAbility;
|
||||||
|
import mage.abilities.keyword.NightboundAbility;
|
||||||
import mage.abilities.keyword.ReachAbility;
|
import mage.abilities.keyword.ReachAbility;
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
|
@ -13,23 +13,31 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BirdAdmirer extends CardImpl {
|
public final class BirdAdmirer extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
public BirdAdmirer(UUID ownerId, CardSetInfo setInfo) {
|
public BirdAdmirer(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}");
|
super(ownerId, setInfo,
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.HUMAN, SubType.ARCHER, SubType.WEREWOLF}, "{2}{G}",
|
||||||
|
"Wing Shredder",
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.WEREWOLF}, "G");
|
||||||
|
|
||||||
this.subtype.add(SubType.HUMAN);
|
// Bird Admirer
|
||||||
this.subtype.add(SubType.ARCHER);
|
this.getLeftHalfCard().setPT(1, 4);
|
||||||
this.subtype.add(SubType.WEREWOLF);
|
|
||||||
this.power = new MageInt(1);
|
|
||||||
this.toughness = new MageInt(4);
|
|
||||||
this.secondSideCardClazz = mage.cards.w.WingShredder.class;
|
|
||||||
|
|
||||||
// Reach
|
// Reach
|
||||||
this.addAbility(ReachAbility.getInstance());
|
this.getLeftHalfCard().addAbility(ReachAbility.getInstance());
|
||||||
|
|
||||||
// Daybound
|
// Daybound
|
||||||
this.addAbility(new DayboundAbility());
|
this.getLeftHalfCard().addAbility(new DayboundAbility());
|
||||||
|
|
||||||
|
// Wing Shredder
|
||||||
|
this.getRightHalfCard().setPT(3, 5);
|
||||||
|
|
||||||
|
// Reach
|
||||||
|
this.getRightHalfCard().addAbility(ReachAbility.getInstance());
|
||||||
|
|
||||||
|
// Nightbound
|
||||||
|
this.getRightHalfCard().addAbility(new NightboundAbility());
|
||||||
}
|
}
|
||||||
|
|
||||||
private BirdAdmirer(final BirdAdmirer card) {
|
private BirdAdmirer(final BirdAdmirer card) {
|
||||||
|
|
|
||||||
|
|
@ -1,33 +1,48 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
|
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
|
||||||
|
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||||
|
import mage.abilities.common.TransformIntoSourceTriggeredAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
import mage.abilities.effects.common.TransformSourceEffect;
|
import mage.abilities.effects.common.TransformSourceEffect;
|
||||||
import mage.abilities.keyword.TransformAbility;
|
import mage.abilities.meta.OrTriggeredAbility;
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
import mage.constants.Zone;
|
||||||
|
import mage.game.permanent.token.PhyrexianSaprolingToken;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BlightreaperThallid extends CardImpl {
|
public final class BlightreaperThallid extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
public BlightreaperThallid(UUID ownerId, CardSetInfo setInfo) {
|
public BlightreaperThallid(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B}");
|
super(ownerId, setInfo,
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.FUNGUS}, "{1}{B}",
|
||||||
|
"Blightsower Thallid",
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.PHYREXIAN, SubType.FUNGUS}, "BG");
|
||||||
|
|
||||||
this.subtype.add(SubType.FUNGUS);
|
// Blightreaper Thallid
|
||||||
this.power = new MageInt(2);
|
this.getLeftHalfCard().setPT(2, 2);
|
||||||
this.toughness = new MageInt(2);
|
|
||||||
this.secondSideCardClazz = mage.cards.b.BlightsowerThallid.class;
|
|
||||||
|
|
||||||
// {3}{G/P}: Transform Blightreaper Thallid. Activate only as a sorcery.
|
// {3}{G/P}: Transform Blightreaper Thallid. Activate only as a sorcery.
|
||||||
this.addAbility(new TransformAbility());
|
this.getLeftHalfCard().addAbility(new ActivateAsSorceryActivatedAbility(new TransformSourceEffect(), new ManaCostsImpl<>("{3}{G/P}")));
|
||||||
this.addAbility(new ActivateAsSorceryActivatedAbility(new TransformSourceEffect(), new ManaCostsImpl<>("{3}{G/P}")));
|
|
||||||
|
// Blightsower Thallid
|
||||||
|
this.getRightHalfCard().setPT(3, 3);
|
||||||
|
|
||||||
|
// When this creature transforms into Blightsower Thallid or dies, create a 1/1 green Phyrexian Saproling creature token.
|
||||||
|
this.getRightHalfCard().addAbility(new OrTriggeredAbility(
|
||||||
|
Zone.BATTLEFIELD, new CreateTokenEffect(new PhyrexianSaprolingToken()), false,
|
||||||
|
"When this creature transforms into {this} or dies, ",
|
||||||
|
new TransformIntoSourceTriggeredAbility(null),
|
||||||
|
new DiesSourceTriggeredAbility(null, false)
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
private BlightreaperThallid(final BlightreaperThallid card) {
|
private BlightreaperThallid(final BlightreaperThallid card) {
|
||||||
|
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
package mage.cards.b;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
|
||||||
import mage.abilities.common.TransformIntoSourceTriggeredAbility;
|
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
|
||||||
import mage.abilities.meta.OrTriggeredAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.game.permanent.token.PhyrexianSaprolingToken;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author TheElk801
|
|
||||||
*/
|
|
||||||
public final class BlightsowerThallid extends CardImpl {
|
|
||||||
|
|
||||||
public BlightsowerThallid(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.PHYREXIAN);
|
|
||||||
this.subtype.add(SubType.FUNGUS);
|
|
||||||
this.power = new MageInt(3);
|
|
||||||
this.toughness = new MageInt(3);
|
|
||||||
this.color.setBlack(true);
|
|
||||||
this.color.setGreen(true);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// When this creature transforms into Blightsower Thallid or dies, create a 1/1 green Phyrexian Saproling creature token.
|
|
||||||
this.addAbility(new OrTriggeredAbility(
|
|
||||||
Zone.BATTLEFIELD, new CreateTokenEffect(new PhyrexianSaprolingToken()), false,
|
|
||||||
"When this creature transforms into {this} or dies, ",
|
|
||||||
new TransformIntoSourceTriggeredAbility(null),
|
|
||||||
new DiesSourceTriggeredAbility(null, false)
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
private BlightsowerThallid(final BlightsowerThallid card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BlightsowerThallid copy() {
|
|
||||||
return new BlightsowerThallid(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,83 +0,0 @@
|
||||||
package mage.cards.b;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.Ability;
|
|
||||||
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
|
|
||||||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
|
||||||
import mage.abilities.effects.OneShotEffect;
|
|
||||||
import mage.abilities.effects.common.TransformSourceEffect;
|
|
||||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
|
||||||
import mage.abilities.keyword.IndestructibleAbility;
|
|
||||||
import mage.abilities.keyword.LivingMetalAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.*;
|
|
||||||
import mage.game.Game;
|
|
||||||
import mage.util.RandomUtil;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author TheElk801
|
|
||||||
*/
|
|
||||||
public final class BlitzwingAdaptiveAssailant extends CardImpl {
|
|
||||||
|
|
||||||
public BlitzwingAdaptiveAssailant(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "");
|
|
||||||
|
|
||||||
this.supertype.add(SuperType.LEGENDARY);
|
|
||||||
this.subtype.add(SubType.VEHICLE);
|
|
||||||
this.power = new MageInt(3);
|
|
||||||
this.toughness = new MageInt(5);
|
|
||||||
this.color.setBlack(true);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Living metal
|
|
||||||
this.addAbility(new LivingMetalAbility());
|
|
||||||
|
|
||||||
// At the beginning of combat on your turn, choose flying or indestructible at random. Blitzwing gains that ability until end of turn.
|
|
||||||
this.addAbility(new BeginningOfCombatTriggeredAbility(
|
|
||||||
new BlitzwingAdaptiveAssailantEffect()
|
|
||||||
));
|
|
||||||
|
|
||||||
// Whenever Blitzwing deals combat damage to a player, convert it.
|
|
||||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
|
|
||||||
new TransformSourceEffect().setText("convert it"), false
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
private BlitzwingAdaptiveAssailant(final BlitzwingAdaptiveAssailant card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BlitzwingAdaptiveAssailant copy() {
|
|
||||||
return new BlitzwingAdaptiveAssailant(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class BlitzwingAdaptiveAssailantEffect extends OneShotEffect {
|
|
||||||
|
|
||||||
BlitzwingAdaptiveAssailantEffect() {
|
|
||||||
super(Outcome.Benefit);
|
|
||||||
staticText = "choose flying or indestructible at random. {this} gains that ability until end of turn";
|
|
||||||
}
|
|
||||||
|
|
||||||
private BlitzwingAdaptiveAssailantEffect(final BlitzwingAdaptiveAssailantEffect effect) {
|
|
||||||
super(effect);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BlitzwingAdaptiveAssailantEffect copy() {
|
|
||||||
return new BlitzwingAdaptiveAssailantEffect(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
Ability ability = RandomUtil.nextBoolean() ? FlyingAbility.getInstance() : IndestructibleAbility.getInstance();
|
|
||||||
game.informPlayers(ability.getRule() + " has been chosen");
|
|
||||||
game.addEffect(new GainAbilitySourceEffect(ability, Duration.EndOfTurn), source);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,17 +1,24 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
|
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
import mage.abilities.effects.OneShotEffect;
|
||||||
|
import mage.abilities.effects.common.TransformSourceEffect;
|
||||||
|
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||||
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
|
import mage.abilities.keyword.IndestructibleAbility;
|
||||||
|
import mage.abilities.keyword.LivingMetalAbility;
|
||||||
import mage.abilities.keyword.MoreThanMeetsTheEyeAbility;
|
import mage.abilities.keyword.MoreThanMeetsTheEyeAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.abilities.triggers.BeginningOfCombatTriggeredAbility;
|
||||||
|
import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.*;
|
import mage.constants.*;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.target.common.TargetOpponent;
|
import mage.target.common.TargetOpponent;
|
||||||
|
import mage.util.RandomUtil;
|
||||||
import mage.watchers.common.PlayerLostLifeWatcher;
|
import mage.watchers.common.PlayerLostLifeWatcher;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
@ -19,26 +26,43 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BlitzwingCruelTormentor extends CardImpl {
|
public final class BlitzwingCruelTormentor extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
public BlitzwingCruelTormentor(UUID ownerId, CardSetInfo setInfo) {
|
public BlitzwingCruelTormentor(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{5}{B}");
|
super(ownerId, setInfo,
|
||||||
|
new SuperType[]{SuperType.LEGENDARY}, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, new SubType[]{SubType.ROBOT}, "{5}{B}",
|
||||||
|
"Blitzwing Adaptive Assailant",
|
||||||
|
new SuperType[]{SuperType.LEGENDARY}, new CardType[]{CardType.ARTIFACT}, new SubType[]{SubType.VEHICLE}, "B");
|
||||||
|
|
||||||
this.supertype.add(SuperType.LEGENDARY);
|
|
||||||
this.subtype.add(SubType.ROBOT);
|
// Blitzwing, Cruel Tormentor
|
||||||
this.power = new MageInt(6);
|
this.getLeftHalfCard().setPT(6, 5);
|
||||||
this.toughness = new MageInt(5);
|
|
||||||
this.secondSideCardClazz = mage.cards.b.BlitzwingAdaptiveAssailant.class;
|
|
||||||
|
|
||||||
// More Than Meets the Eye {3}{B}
|
// More Than Meets the Eye {3}{B}
|
||||||
this.addAbility(new MoreThanMeetsTheEyeAbility(this, "{3}{B}"));
|
this.getLeftHalfCard().addAbility(new MoreThanMeetsTheEyeAbility(this, "{3}{B}"));
|
||||||
|
|
||||||
// At the beginning of your end step, target opponent loses life equal to the life that player lost this turn. If no life is lost this way, convert Blitzwing.
|
// At the beginning of your end step, target opponent loses life equal to the life that player lost this turn. If no life is lost this way, convert Blitzwing.
|
||||||
Ability ability = new BeginningOfEndStepTriggeredAbility(
|
Ability ability = new BeginningOfEndStepTriggeredAbility(
|
||||||
new BlitzwingCruelTormentorEffect()
|
new BlitzwingCruelTormentorEffect()
|
||||||
);
|
);
|
||||||
ability.addTarget(new TargetOpponent());
|
ability.addTarget(new TargetOpponent());
|
||||||
this.addAbility(ability);
|
this.getLeftHalfCard().addAbility(ability);
|
||||||
|
|
||||||
|
// Blitzwing Adaptive Assailant
|
||||||
|
this.getRightHalfCard().setPT(3, 5);
|
||||||
|
|
||||||
|
// Living metal
|
||||||
|
this.getRightHalfCard().addAbility(new LivingMetalAbility());
|
||||||
|
|
||||||
|
// At the beginning of combat on your turn, choose flying or indestructible at random. Blitzwing gains that ability until end of turn.
|
||||||
|
this.getRightHalfCard().addAbility(new BeginningOfCombatTriggeredAbility(
|
||||||
|
new BlitzwingAdaptiveAssailantEffect()
|
||||||
|
));
|
||||||
|
|
||||||
|
// Whenever Blitzwing deals combat damage to a player, convert it.
|
||||||
|
this.getRightHalfCard().addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
|
||||||
|
new TransformSourceEffect().setText("convert it"), false
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
private BlitzwingCruelTormentor(final BlitzwingCruelTormentor card) {
|
private BlitzwingCruelTormentor(final BlitzwingCruelTormentor card) {
|
||||||
|
|
@ -81,3 +105,28 @@ class BlitzwingCruelTormentorEffect extends OneShotEffect {
|
||||||
return permanent != null && permanent.transform(source, game);
|
return permanent != null && permanent.transform(source, game);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class BlitzwingAdaptiveAssailantEffect extends OneShotEffect {
|
||||||
|
|
||||||
|
BlitzwingAdaptiveAssailantEffect() {
|
||||||
|
super(Outcome.Benefit);
|
||||||
|
staticText = "choose flying or indestructible at random. {this} gains that ability until end of turn";
|
||||||
|
}
|
||||||
|
|
||||||
|
private BlitzwingAdaptiveAssailantEffect(final BlitzwingAdaptiveAssailantEffect effect) {
|
||||||
|
super(effect);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlitzwingAdaptiveAssailantEffect copy() {
|
||||||
|
return new BlitzwingAdaptiveAssailantEffect(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean apply(Game game, Ability source) {
|
||||||
|
Ability ability = RandomUtil.nextBoolean() ? FlyingAbility.getInstance() : IndestructibleAbility.getInstance();
|
||||||
|
game.informPlayers(ability.getRule() + " has been chosen");
|
||||||
|
game.addEffect(new GainAbilitySourceEffect(ability, Duration.EndOfTurn), source);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
|
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
import mage.abilities.common.ActivateIfConditionActivatedAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.condition.Condition;
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
|
|
@ -11,17 +10,19 @@ import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
import mage.abilities.effects.common.TransformSourceEffect;
|
import mage.abilities.effects.common.TransformSourceEffect;
|
||||||
|
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||||
import mage.abilities.hint.Hint;
|
import mage.abilities.hint.Hint;
|
||||||
import mage.abilities.hint.ValueHint;
|
import mage.abilities.hint.ValueHint;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.abilities.keyword.TransformAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.ComparisonType;
|
import mage.constants.ComparisonType;
|
||||||
|
import mage.constants.Duration;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.filter.FilterPermanent;
|
import mage.filter.FilterPermanent;
|
||||||
import mage.filter.common.FilterControlledPermanent;
|
import mage.filter.common.FilterControlledPermanent;
|
||||||
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
import mage.game.permanent.token.VampireToken;
|
import mage.game.permanent.token.VampireToken;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
@ -29,33 +30,46 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author Loki
|
* @author Loki
|
||||||
*/
|
*/
|
||||||
public final class BloodlineKeeper extends CardImpl {
|
public final class BloodlineKeeper extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
private static final FilterPermanent filter
|
private static final FilterPermanent filter
|
||||||
= new FilterControlledPermanent(SubType.VAMPIRE, "you control five or more Vampires");
|
= new FilterControlledPermanent(SubType.VAMPIRE, "you control five or more Vampires");
|
||||||
private static final Condition condition
|
private static final Condition condition
|
||||||
= new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 4);
|
= new PermanentsOnTheBattlefieldCondition(filter, ComparisonType.MORE_THAN, 4);
|
||||||
private static final Hint hint = new ValueHint("Vampires you control", new PermanentsOnBattlefieldCount(filter));
|
private static final Hint hint = new ValueHint("Vampires you control", new PermanentsOnBattlefieldCount(filter));
|
||||||
|
private static final FilterCreaturePermanent lordOfLineageFilter = new FilterCreaturePermanent(SubType.VAMPIRE, "Vampire creatures");
|
||||||
|
|
||||||
public BloodlineKeeper(UUID ownerId, CardSetInfo setInfo) {
|
public BloodlineKeeper(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}{B}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, new SubType[]{SubType.VAMPIRE}, "{2}{B}{B}",
|
||||||
this.subtype.add(SubType.VAMPIRE);
|
"Lord of Lineage",
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.VAMPIRE}, "B");
|
||||||
|
|
||||||
this.power = new MageInt(3);
|
// Bloodline Keeper
|
||||||
this.toughness = new MageInt(3);
|
this.getLeftHalfCard().setPT(3, 3);
|
||||||
|
|
||||||
this.secondSideCardClazz = mage.cards.l.LordOfLineage.class;
|
// Flying
|
||||||
|
this.getLeftHalfCard().addAbility(FlyingAbility.getInstance());
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
|
||||||
|
|
||||||
// {T}: Create a 2/2 black Vampire creature token with flying.
|
// {T}: Create a 2/2 black Vampire creature token with flying.
|
||||||
this.addAbility(new SimpleActivatedAbility(new CreateTokenEffect(new VampireToken()), new TapSourceCost()));
|
this.getLeftHalfCard().addAbility(new SimpleActivatedAbility(new CreateTokenEffect(new VampireToken()), new TapSourceCost()));
|
||||||
|
|
||||||
// {B}: Transform Bloodline Keeper. Activate this ability only if you control five or more Vampires.
|
// {B}: Transform Bloodline Keeper. Activate this ability only if you control five or more Vampires.
|
||||||
this.addAbility(new TransformAbility());
|
this.getLeftHalfCard().addAbility(new ActivateIfConditionActivatedAbility(
|
||||||
this.addAbility(new ActivateIfConditionActivatedAbility(
|
|
||||||
new TransformSourceEffect(), new ManaCostsImpl<>("{B}"), condition
|
new TransformSourceEffect(), new ManaCostsImpl<>("{B}"), condition
|
||||||
).addHint(hint));
|
).addHint(hint));
|
||||||
|
|
||||||
|
// Lord of Lineage
|
||||||
|
this.getRightHalfCard().setPT(5, 5);
|
||||||
|
|
||||||
|
// Flying
|
||||||
|
this.getRightHalfCard().addAbility(FlyingAbility.getInstance());
|
||||||
|
|
||||||
|
// Other Vampire creatures you control get +2/+2.
|
||||||
|
this.getRightHalfCard().addAbility(new SimpleStaticAbility(new BoostControlledEffect(2, 2, Duration.WhileOnBattlefield, lordOfLineageFilter, true)));
|
||||||
|
|
||||||
|
// {T}: Create a 2/2 black Vampire creature token with flying.
|
||||||
|
this.getRightHalfCard().addAbility(new SimpleActivatedAbility(new CreateTokenEffect(new VampireToken()), new TapSourceCost()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private BloodlineKeeper(final BloodlineKeeper card) {
|
private BloodlineKeeper(final BloodlineKeeper card) {
|
||||||
|
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
||||||
package mage.cards.b;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.Ability;
|
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
|
||||||
import mage.abilities.costs.common.DiscardCardCost;
|
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
|
||||||
import mage.abilities.dynamicvalue.DynamicValue;
|
|
||||||
import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount;
|
|
||||||
import mage.abilities.effects.common.TapSourceEffect;
|
|
||||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
|
||||||
import mage.abilities.effects.common.continuous.SetBasePowerToughnessSourceEffect;
|
|
||||||
import mage.abilities.keyword.IndestructibleAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.StaticFilters;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author weirddan455
|
|
||||||
*/
|
|
||||||
public final class BloodswornKnight extends CardImpl {
|
|
||||||
|
|
||||||
private static final DynamicValue xValue = new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURES);
|
|
||||||
|
|
||||||
public BloodswornKnight(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.VAMPIRE);
|
|
||||||
this.subtype.add(SubType.KNIGHT);
|
|
||||||
this.power = new MageInt(0);
|
|
||||||
this.toughness = new MageInt(0);
|
|
||||||
this.color.setBlack(true);
|
|
||||||
|
|
||||||
// Back half of Bloodsworn Squire
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Bloodsworn Knight's power and toughness are each equal to the number of creature cards in your graveyard.
|
|
||||||
this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(xValue)));
|
|
||||||
|
|
||||||
// {1}{B}, Discard a card: Bloodsworn Knight gains indestructible until end of turn. Tap it.
|
|
||||||
Ability ability = new SimpleActivatedAbility(
|
|
||||||
new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn),
|
|
||||||
new ManaCostsImpl<>("{1}{B}")
|
|
||||||
);
|
|
||||||
ability.addCost(new DiscardCardCost());
|
|
||||||
ability.addEffect(new TapSourceEffect().setText("tap it"));
|
|
||||||
this.addAbility(ability);
|
|
||||||
}
|
|
||||||
|
|
||||||
private BloodswornKnight(final BloodswornKnight card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BloodswornKnight copy() {
|
|
||||||
return new BloodswornKnight(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,41 +1,45 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
import mage.abilities.condition.common.CardsInControllerGraveyardCondition;
|
||||||
import mage.abilities.costs.common.DiscardCardCost;
|
import mage.abilities.costs.common.DiscardCardCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||||
|
import mage.abilities.dynamicvalue.DynamicValue;
|
||||||
|
import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount;
|
||||||
import mage.abilities.effects.common.TapSourceEffect;
|
import mage.abilities.effects.common.TapSourceEffect;
|
||||||
import mage.abilities.effects.common.TransformSourceEffect;
|
import mage.abilities.effects.common.TransformSourceEffect;
|
||||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||||
|
import mage.abilities.effects.common.continuous.SetBasePowerToughnessSourceEffect;
|
||||||
import mage.abilities.keyword.IndestructibleAbility;
|
import mage.abilities.keyword.IndestructibleAbility;
|
||||||
import mage.abilities.keyword.TransformAbility;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
|
import mage.constants.CardType;
|
||||||
import mage.constants.Duration;
|
import mage.constants.Duration;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.cards.CardImpl;
|
import mage.constants.Zone;
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author weirddan455
|
* @author weirddan455
|
||||||
*/
|
*/
|
||||||
public final class BloodswornSquire extends CardImpl {
|
public final class BloodswornSquire extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
|
private static final DynamicValue xValue = new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURES);
|
||||||
|
|
||||||
public BloodswornSquire(UUID ownerId, CardSetInfo setInfo) {
|
public BloodswornSquire(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
|
super(ownerId, setInfo,
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.VAMPIRE, SubType.SOLDIER}, "{3}{B}",
|
||||||
|
"Bloodsworn Knight",
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.VAMPIRE, SubType.KNIGHT}, "B");
|
||||||
|
|
||||||
this.subtype.add(SubType.VAMPIRE);
|
// Bloodsworn Squire
|
||||||
this.subtype.add(SubType.SOLDIER);
|
this.getLeftHalfCard().setPT(3, 3);
|
||||||
this.power = new MageInt(3);
|
|
||||||
this.toughness = new MageInt(3);
|
|
||||||
this.secondSideCardClazz = mage.cards.b.BloodswornKnight.class;
|
|
||||||
|
|
||||||
this.addAbility(new TransformAbility());
|
|
||||||
|
|
||||||
// {1}{B}, Discard a card: Bloodsworn Squire gains indestructible until end of turn. Tap it. Then if there are four or more creature cards in your graveyard, transform Bloodsworn Squire.
|
// {1}{B}, Discard a card: Bloodsworn Squire gains indestructible until end of turn. Tap it. Then if there are four or more creature cards in your graveyard, transform Bloodsworn Squire.
|
||||||
Ability ability = new SimpleActivatedAbility(
|
Ability ability = new SimpleActivatedAbility(
|
||||||
|
|
@ -49,7 +53,22 @@ public final class BloodswornSquire extends CardImpl {
|
||||||
new CardsInControllerGraveyardCondition(4, StaticFilters.FILTER_CARD_CREATURES),
|
new CardsInControllerGraveyardCondition(4, StaticFilters.FILTER_CARD_CREATURES),
|
||||||
"Then if there are four or more creature cards in your graveyard, transform {this}"
|
"Then if there are four or more creature cards in your graveyard, transform {this}"
|
||||||
));
|
));
|
||||||
this.addAbility(ability);
|
this.getLeftHalfCard().addAbility(ability);
|
||||||
|
|
||||||
|
// Bloodsworn Knight
|
||||||
|
this.getRightHalfCard().setPT(0, 0);
|
||||||
|
|
||||||
|
// Bloodsworn Knight's power and toughness are each equal to the number of creature cards in your graveyard.
|
||||||
|
this.getRightHalfCard().addAbility(new SimpleStaticAbility(Zone.ALL, new SetBasePowerToughnessSourceEffect(xValue)));
|
||||||
|
|
||||||
|
// {1}{B}, Discard a card: Bloodsworn Knight gains indestructible until end of turn. Tap it.
|
||||||
|
ability = new SimpleActivatedAbility(
|
||||||
|
new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn),
|
||||||
|
new ManaCostsImpl<>("{1}{B}")
|
||||||
|
);
|
||||||
|
ability.addCost(new DiscardCardCost());
|
||||||
|
ability.addEffect(new TapSourceEffect().setText("tap it"));
|
||||||
|
this.getRightHalfCard().addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
private BloodswornSquire(final BloodswornSquire card) {
|
private BloodswornSquire(final BloodswornSquire card) {
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
|
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.TransformSourceEffect;
|
import mage.abilities.effects.common.TransformSourceEffect;
|
||||||
import mage.abilities.keyword.TransformAbility;
|
import mage.abilities.keyword.MenaceAbility;
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
|
@ -15,19 +14,25 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BondedHerdbeast extends CardImpl {
|
public final class BondedHerdbeast extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
public BondedHerdbeast(UUID ownerId, CardSetInfo setInfo) {
|
public BondedHerdbeast(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{G}");
|
super(ownerId, setInfo,
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.BEAST}, "{4}{G}",
|
||||||
|
"Plated Kilnbeast",
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.PHYREXIAN, SubType.BEAST}, "RG");
|
||||||
|
|
||||||
this.subtype.add(SubType.BEAST);
|
// Bonded Herdbeast
|
||||||
this.power = new MageInt(4);
|
this.getLeftHalfCard().setPT(4, 5);
|
||||||
this.toughness = new MageInt(5);
|
|
||||||
this.secondSideCardClazz = mage.cards.p.PlatedKilnbeast.class;
|
|
||||||
|
|
||||||
// {4}{R/P}: Transform Bonded Herdbeast. Activate only as a sorcery.
|
// {4}{R/P}: Transform Bonded Herdbeast. Activate only as a sorcery.
|
||||||
this.addAbility(new TransformAbility());
|
this.getLeftHalfCard().addAbility(new ActivateAsSorceryActivatedAbility(new TransformSourceEffect(), new ManaCostsImpl<>("{4}{R/P}")));
|
||||||
this.addAbility(new ActivateAsSorceryActivatedAbility(new TransformSourceEffect(), new ManaCostsImpl<>("{4}{R/P}")));
|
|
||||||
|
// Plated Kilnbeast
|
||||||
|
this.getRightHalfCard().setPT(7, 5);
|
||||||
|
|
||||||
|
// Menace
|
||||||
|
this.getRightHalfCard().addAbility(new MenaceAbility());
|
||||||
}
|
}
|
||||||
|
|
||||||
private BondedHerdbeast(final BondedHerdbeast card) {
|
private BondedHerdbeast(final BondedHerdbeast card) {
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,17 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.abilities.common.SagaAbility;
|
import mage.abilities.common.SagaAbility;
|
||||||
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.dynamicvalue.common.LandsYouControlCount;
|
||||||
import mage.abilities.effects.common.ExileSagaAndReturnTransformedEffect;
|
import mage.abilities.effects.common.ExileSagaAndReturnTransformedEffect;
|
||||||
import mage.abilities.effects.common.PutOnLibraryTargetEffect;
|
import mage.abilities.effects.common.PutOnLibraryTargetEffect;
|
||||||
|
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||||
import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect;
|
import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect;
|
||||||
import mage.abilities.keyword.TransformAbility;
|
import mage.abilities.keyword.ReachAbility;
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Duration;
|
||||||
import mage.constants.SagaChapter;
|
import mage.constants.SagaChapter;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.filter.FilterCard;
|
import mage.filter.FilterCard;
|
||||||
|
|
@ -21,22 +25,23 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BoseijuReachesSkyward extends CardImpl {
|
public final class BoseijuReachesSkyward extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
private static final FilterCard filter = new FilterBasicCard(SubType.FOREST, "basic Forest cards");
|
private static final FilterCard filter = new FilterBasicCard(SubType.FOREST, "basic Forest cards");
|
||||||
|
|
||||||
public BoseijuReachesSkyward(UUID ownerId, CardSetInfo setInfo) {
|
public BoseijuReachesSkyward(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{G}");
|
super(ownerId, setInfo,
|
||||||
|
new CardType[]{CardType.ENCHANTMENT}, new SubType[]{SubType.SAGA}, "{3}{G}",
|
||||||
this.subtype.add(SubType.SAGA);
|
"Branch of Boseiju",
|
||||||
this.secondSideCardClazz = mage.cards.b.BranchOfBoseiju.class;
|
new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, new SubType[]{SubType.PLANT}, "G");
|
||||||
|
|
||||||
|
// Boseiju Reaches Skyward
|
||||||
// (As this Saga enters and after your draw step, add a lore counter.)
|
// (As this Saga enters and after your draw step, add a lore counter.)
|
||||||
SagaAbility sagaAbility = new SagaAbility(this);
|
SagaAbility sagaAbility = new SagaAbility(getLeftHalfCard());
|
||||||
|
|
||||||
// I — Search your library for up to two basic Forest cards, reveal them, put them into your hand, then shuffle.
|
// I — Search your library for up to two basic Forest cards, reveal them, put them into your hand, then shuffle.
|
||||||
sagaAbility.addChapterEffect(
|
sagaAbility.addChapterEffect(
|
||||||
this, SagaChapter.CHAPTER_I,
|
getLeftHalfCard(), SagaChapter.CHAPTER_I,
|
||||||
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(
|
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(
|
||||||
0, 2, filter
|
0, 2, filter
|
||||||
), true)
|
), true)
|
||||||
|
|
@ -44,16 +49,25 @@ public final class BoseijuReachesSkyward extends CardImpl {
|
||||||
|
|
||||||
// II — Put up to one target land card from your graveyard on top of your library.
|
// II — Put up to one target land card from your graveyard on top of your library.
|
||||||
sagaAbility.addChapterEffect(
|
sagaAbility.addChapterEffect(
|
||||||
this, SagaChapter.CHAPTER_II, SagaChapter.CHAPTER_II,
|
getLeftHalfCard(), SagaChapter.CHAPTER_II, SagaChapter.CHAPTER_II,
|
||||||
new PutOnLibraryTargetEffect(true),
|
new PutOnLibraryTargetEffect(true),
|
||||||
new TargetCardInYourGraveyard(0, 1, StaticFilters.FILTER_CARD_LAND_FROM_YOUR_GRAVEYARD)
|
new TargetCardInYourGraveyard(0, 1, StaticFilters.FILTER_CARD_LAND_FROM_YOUR_GRAVEYARD)
|
||||||
);
|
);
|
||||||
|
|
||||||
// III — Exile this Saga, then return it to the battlefield transformed under your control.
|
// III — Exile this Saga, then return it to the battlefield transformed under your control.
|
||||||
this.addAbility(new TransformAbility());
|
sagaAbility.addChapterEffect(getLeftHalfCard(), SagaChapter.CHAPTER_III, new ExileSagaAndReturnTransformedEffect());
|
||||||
sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_III, new ExileSagaAndReturnTransformedEffect());
|
this.getLeftHalfCard().addAbility(sagaAbility);
|
||||||
|
|
||||||
this.addAbility(sagaAbility);
|
// Branch of Boseiju
|
||||||
|
this.getRightHalfCard().setPT(0, 0);
|
||||||
|
|
||||||
|
// Reach
|
||||||
|
this.getRightHalfCard().addAbility(ReachAbility.getInstance());
|
||||||
|
|
||||||
|
// Branch of Boseiju gets +1/+1 for each land you control.
|
||||||
|
this.getRightHalfCard().addAbility(new SimpleStaticAbility(new BoostSourceEffect(
|
||||||
|
LandsYouControlCount.instance, LandsYouControlCount.instance, Duration.WhileOnBattlefield
|
||||||
|
).setText("{this} gets +1/+1 for each land you control")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private BoseijuReachesSkyward(final BoseijuReachesSkyward card) {
|
private BoseijuReachesSkyward(final BoseijuReachesSkyward card) {
|
||||||
|
|
|
||||||
|
|
@ -5,20 +5,28 @@ import mage.abilities.common.EntersBattlefieldAbility;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.common.RemoveCountersSourceCost;
|
import mage.abilities.costs.common.RemoveCountersSourceCost;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
|
import mage.abilities.dynamicvalue.common.ArtifactYouControlCount;
|
||||||
|
import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.abilities.effects.RestrictionEffect;
|
import mage.abilities.effects.RestrictionEffect;
|
||||||
|
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
||||||
import mage.abilities.effects.common.TapTargetEffect;
|
import mage.abilities.effects.common.TapTargetEffect;
|
||||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||||
|
import mage.abilities.hint.common.ArtifactYouControlHint;
|
||||||
import mage.abilities.keyword.CraftAbility;
|
import mage.abilities.keyword.CraftAbility;
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Duration;
|
import mage.constants.Duration;
|
||||||
|
import mage.constants.Outcome;
|
||||||
|
import mage.constants.SubType;
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
import mage.filter.FilterPermanent;
|
import mage.filter.FilterPermanent;
|
||||||
import mage.filter.common.FilterNonlandPermanent;
|
import mage.filter.common.FilterNonlandPermanent;
|
||||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
|
import mage.players.Player;
|
||||||
import mage.target.TargetPermanent;
|
import mage.target.TargetPermanent;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
@ -26,7 +34,7 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BraidedNet extends CardImpl {
|
public final class BraidedNet extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
private static final FilterPermanent filter = new FilterNonlandPermanent("another target nonland permanent");
|
private static final FilterPermanent filter = new FilterNonlandPermanent("another target nonland permanent");
|
||||||
|
|
||||||
|
|
@ -35,11 +43,14 @@ public final class BraidedNet extends CardImpl {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BraidedNet(UUID ownerId, CardSetInfo setInfo) {
|
public BraidedNet(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}{U}");
|
super(ownerId, setInfo,
|
||||||
this.secondSideCardClazz = mage.cards.b.BraidedQuipu.class;
|
new CardType[]{CardType.ARTIFACT}, new SubType[]{}, "{2}{U}",
|
||||||
|
"Braided Quipu",
|
||||||
|
new CardType[]{CardType.ARTIFACT}, new SubType[]{}, "U");
|
||||||
|
|
||||||
|
// Braided Net
|
||||||
// Braided Net enters the battlefield with three net counters on it.
|
// Braided Net enters the battlefield with three net counters on it.
|
||||||
this.addAbility(new EntersBattlefieldAbility(
|
this.getLeftHalfCard().addAbility(new EntersBattlefieldAbility(
|
||||||
new AddCountersSourceEffect(CounterType.NET.createInstance(3)),
|
new AddCountersSourceEffect(CounterType.NET.createInstance(3)),
|
||||||
"with three net counters on it"
|
"with three net counters on it"
|
||||||
));
|
));
|
||||||
|
|
@ -49,10 +60,20 @@ public final class BraidedNet extends CardImpl {
|
||||||
ability.addCost(new RemoveCountersSourceCost(CounterType.NET.createInstance()));
|
ability.addCost(new RemoveCountersSourceCost(CounterType.NET.createInstance()));
|
||||||
ability.addEffect(new BraidedNetEffect());
|
ability.addEffect(new BraidedNetEffect());
|
||||||
ability.addTarget(new TargetPermanent(filter));
|
ability.addTarget(new TargetPermanent(filter));
|
||||||
this.addAbility(ability);
|
this.getLeftHalfCard().addAbility(ability);
|
||||||
|
|
||||||
// Craft with artifact {1}{U}
|
// Craft with artifact {1}{U}
|
||||||
this.addAbility(new CraftAbility("{1}{U}"));
|
this.getLeftHalfCard().addAbility(new CraftAbility("{1}{U}"));
|
||||||
|
|
||||||
|
// Braided Quipu
|
||||||
|
// {3}{U}, {T}: Draw a card for each artifact you control, then put Braided Quipu into its owner's library third from the top.
|
||||||
|
ability = new SimpleActivatedAbility(
|
||||||
|
new DrawCardSourceControllerEffect(ArtifactYouControlCount.instance), new ManaCostsImpl<>("{3}{U}")
|
||||||
|
);
|
||||||
|
ability.addCost(new TapSourceCost());
|
||||||
|
ability.addEffect(new BraidedQuipuEffect());
|
||||||
|
this.getRightHalfCard().addAbility(ability.addHint(ArtifactYouControlHint.instance));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private BraidedNet(final BraidedNet card) {
|
private BraidedNet(final BraidedNet card) {
|
||||||
|
|
@ -100,3 +121,29 @@ class BraidedNetEffect extends RestrictionEffect {
|
||||||
return permanent == null || !permanent.isTapped();
|
return permanent == null || !permanent.isTapped();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class BraidedQuipuEffect extends OneShotEffect {
|
||||||
|
|
||||||
|
BraidedQuipuEffect() {
|
||||||
|
super(Outcome.Benefit);
|
||||||
|
staticText = ", then put {this} into its owner's library third from the top";
|
||||||
|
}
|
||||||
|
|
||||||
|
private BraidedQuipuEffect(final BraidedQuipuEffect effect) {
|
||||||
|
super(effect);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BraidedQuipuEffect copy() {
|
||||||
|
return new BraidedQuipuEffect(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean apply(Game game, Ability source) {
|
||||||
|
Player player = game.getPlayer(source.getControllerId());
|
||||||
|
Permanent permanent = source.getSourcePermanentIfItStillExists(game);
|
||||||
|
return player != null
|
||||||
|
&& permanent != null
|
||||||
|
&& player.putCardOnTopXOfLibrary(permanent, game, source, 3, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,74 +0,0 @@
|
||||||
package mage.cards.b;
|
|
||||||
|
|
||||||
import mage.abilities.Ability;
|
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
|
||||||
import mage.abilities.dynamicvalue.common.ArtifactYouControlCount;
|
|
||||||
import mage.abilities.effects.OneShotEffect;
|
|
||||||
import mage.abilities.effects.common.DrawCardSourceControllerEffect;
|
|
||||||
import mage.abilities.hint.common.ArtifactYouControlHint;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.game.Game;
|
|
||||||
import mage.game.permanent.Permanent;
|
|
||||||
import mage.players.Player;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author TheElk801
|
|
||||||
*/
|
|
||||||
public final class BraidedQuipu extends CardImpl {
|
|
||||||
|
|
||||||
public BraidedQuipu(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "");
|
|
||||||
this.nightCard = true;
|
|
||||||
this.color.setBlue(true);
|
|
||||||
|
|
||||||
// {3}{U}, {T}: Draw a card for each artifact you control, then put Braided Quipu into its owner's library third from the top.
|
|
||||||
Ability ability = new SimpleActivatedAbility(
|
|
||||||
new DrawCardSourceControllerEffect(ArtifactYouControlCount.instance), new ManaCostsImpl<>("{3}{U}")
|
|
||||||
);
|
|
||||||
ability.addCost(new TapSourceCost());
|
|
||||||
ability.addEffect(new BraidedQuipuEffect());
|
|
||||||
this.addAbility(ability.addHint(ArtifactYouControlHint.instance));
|
|
||||||
}
|
|
||||||
|
|
||||||
private BraidedQuipu(final BraidedQuipu card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BraidedQuipu copy() {
|
|
||||||
return new BraidedQuipu(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class BraidedQuipuEffect extends OneShotEffect {
|
|
||||||
|
|
||||||
BraidedQuipuEffect() {
|
|
||||||
super(Outcome.Benefit);
|
|
||||||
staticText = ", then put {this} into its owner's library third from the top";
|
|
||||||
}
|
|
||||||
|
|
||||||
private BraidedQuipuEffect(final BraidedQuipuEffect effect) {
|
|
||||||
super(effect);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BraidedQuipuEffect copy() {
|
|
||||||
return new BraidedQuipuEffect(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
Player player = game.getPlayer(source.getControllerId());
|
|
||||||
Permanent permanent = source.getSourcePermanentIfItStillExists(game);
|
|
||||||
return player != null
|
|
||||||
&& permanent != null
|
|
||||||
&& player.putCardOnTopXOfLibrary(permanent, game, source, 3, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
package mage.cards.b;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
|
||||||
import mage.abilities.dynamicvalue.common.LandsYouControlCount;
|
|
||||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
|
||||||
import mage.abilities.keyword.ReachAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author TheElk801
|
|
||||||
*/
|
|
||||||
public final class BranchOfBoseiju extends CardImpl {
|
|
||||||
|
|
||||||
public BranchOfBoseiju(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.PLANT);
|
|
||||||
this.power = new MageInt(0);
|
|
||||||
this.toughness = new MageInt(0);
|
|
||||||
this.color.setGreen(true);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Reach
|
|
||||||
this.addAbility(ReachAbility.getInstance());
|
|
||||||
|
|
||||||
// Branch of Boseiju gets +1/+1 for each land you control.
|
|
||||||
this.addAbility(new SimpleStaticAbility(new BoostSourceEffect(
|
|
||||||
LandsYouControlCount.instance, LandsYouControlCount.instance, Duration.WhileOnBattlefield
|
|
||||||
).setText("{this} gets +1/+1 for each land you control")));
|
|
||||||
}
|
|
||||||
|
|
||||||
private BranchOfBoseiju(final BranchOfBoseiju card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BranchOfBoseiju copy() {
|
|
||||||
return new BranchOfBoseiju(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.common.CastSpellPaidBySourceTriggeredAbility;
|
||||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||||
import mage.abilities.condition.Condition;
|
import mage.abilities.condition.Condition;
|
||||||
import mage.abilities.condition.common.DescendedThisTurnCondition;
|
import mage.abilities.condition.common.DescendedThisTurnCondition;
|
||||||
|
|
@ -11,16 +12,17 @@ import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.abilities.effects.common.RemoveAllCountersSourceEffect;
|
import mage.abilities.effects.common.RemoveAllCountersSourceEffect;
|
||||||
import mage.abilities.effects.common.TransformSourceEffect;
|
import mage.abilities.effects.common.TransformSourceEffect;
|
||||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||||
import mage.abilities.keyword.TransformAbility;
|
import mage.abilities.effects.keyword.DiscoverEffect;
|
||||||
|
import mage.abilities.mana.RedManaAbility;
|
||||||
import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
|
import mage.abilities.triggers.BeginningOfEndStepTriggeredAbility;
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.*;
|
||||||
import mage.constants.SuperType;
|
|
||||||
import mage.constants.TargetController;
|
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
|
import mage.filter.FilterSpell;
|
||||||
|
import mage.filter.predicate.mageobject.PermanentPredicate;
|
||||||
import mage.game.Game;
|
import mage.game.Game;
|
||||||
|
import mage.game.stack.Spell;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.watchers.common.DescendedWatcher;
|
import mage.watchers.common.DescendedWatcher;
|
||||||
|
|
||||||
|
|
@ -29,21 +31,27 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author Susucr
|
* @author Susucr
|
||||||
*/
|
*/
|
||||||
public final class BrasssTunnelGrinder extends CardImpl {
|
public final class BrasssTunnelGrinder extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
private static final Condition condition = new SourceHasCounterCondition(CounterType.BORE, 3);
|
private static final Condition condition = new SourceHasCounterCondition(CounterType.BORE, 3);
|
||||||
|
|
||||||
|
private static final FilterSpell filter = new FilterSpell("a permanent spell");
|
||||||
|
|
||||||
|
static {
|
||||||
|
filter.add(PermanentPredicate.instance);
|
||||||
|
}
|
||||||
|
|
||||||
public BrasssTunnelGrinder(UUID ownerId, CardSetInfo setInfo) {
|
public BrasssTunnelGrinder(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}{R}");
|
super(ownerId, setInfo,
|
||||||
this.secondSideCardClazz = mage.cards.t.TecutlanTheSearingRift.class;
|
new SuperType[]{SuperType.LEGENDARY}, new CardType[]{CardType.ARTIFACT}, new SubType[]{}, "{2}{R}",
|
||||||
|
"Tecutlan, the Searing Rift",
|
||||||
this.supertype.add(SuperType.LEGENDARY);
|
new SuperType[]{SuperType.LEGENDARY}, new CardType[]{CardType.LAND}, new SubType[]{SubType.CAVE}, "");
|
||||||
|
|
||||||
|
// Brass's Tunnel-Grinder
|
||||||
// When Brass's Tunnel-Grinder enters the battlefield, discard any number of cards, then draw that many cards plus one.
|
// When Brass's Tunnel-Grinder enters the battlefield, discard any number of cards, then draw that many cards plus one.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new BrasssTunnelGrinderEffect()));
|
this.getLeftHalfCard().addAbility(new EntersBattlefieldTriggeredAbility(new BrasssTunnelGrinderEffect()));
|
||||||
|
|
||||||
// At the beginning of your end step, if you descended this turn, put a bore counter on Brass's Tunnel-Grinder. Then if there are three or more bore counters on it, remove those counters and transform it.
|
// At the beginning of your end step, if you descended this turn, put a bore counter on Brass's Tunnel-Grinder. Then if there are three or more bore counters on it, remove those counters and transform it.
|
||||||
this.addAbility(new TransformAbility());
|
|
||||||
Ability ability = new BeginningOfEndStepTriggeredAbility(
|
Ability ability = new BeginningOfEndStepTriggeredAbility(
|
||||||
TargetController.YOU, new AddCountersSourceEffect(CounterType.BORE.createInstance()),
|
TargetController.YOU, new AddCountersSourceEffect(CounterType.BORE.createInstance()),
|
||||||
false, DescendedThisTurnCondition.instance
|
false, DescendedThisTurnCondition.instance
|
||||||
|
|
@ -53,7 +61,18 @@ public final class BrasssTunnelGrinder extends CardImpl {
|
||||||
"Then if there are three or more bore counters on it, remove those counters and transform it"
|
"Then if there are three or more bore counters on it, remove those counters and transform it"
|
||||||
).addEffect(new TransformSourceEffect()));
|
).addEffect(new TransformSourceEffect()));
|
||||||
ability.addHint(DescendedThisTurnCount.getHint());
|
ability.addHint(DescendedThisTurnCount.getHint());
|
||||||
this.addAbility(ability, new DescendedWatcher());
|
ability.addWatcher(new DescendedWatcher());
|
||||||
|
this.getLeftHalfCard().addAbility(ability);
|
||||||
|
|
||||||
|
// Tecutlan, the Searing Rift
|
||||||
|
// {T}: Add {R}.
|
||||||
|
this.getRightHalfCard().addAbility(new RedManaAbility());
|
||||||
|
|
||||||
|
// Whenever you cast a permanent spell using mana produced by Tecutlan, the Searing Rift, discover X, where X is that spell's mana value.
|
||||||
|
this.getRightHalfCard().addAbility(new CastSpellPaidBySourceTriggeredAbility(
|
||||||
|
new TecutlanTheSearingRiftEffect(),
|
||||||
|
filter, true
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
private BrasssTunnelGrinder(final BrasssTunnelGrinder card) {
|
private BrasssTunnelGrinder(final BrasssTunnelGrinder card) {
|
||||||
|
|
@ -94,3 +113,35 @@ class BrasssTunnelGrinderEffect extends OneShotEffect {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class TecutlanTheSearingRiftEffect extends OneShotEffect {
|
||||||
|
|
||||||
|
TecutlanTheSearingRiftEffect() {
|
||||||
|
super(Outcome.Benefit);
|
||||||
|
staticText = "discover X, where X is that spell's mana value";
|
||||||
|
}
|
||||||
|
|
||||||
|
private TecutlanTheSearingRiftEffect(final TecutlanTheSearingRiftEffect effect) {
|
||||||
|
super(effect);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TecutlanTheSearingRiftEffect copy() {
|
||||||
|
return new TecutlanTheSearingRiftEffect(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean apply(Game game, Ability source) {
|
||||||
|
Player controller = game.getPlayer(source.getControllerId());
|
||||||
|
if (controller == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Spell spell = game.getSpellOrLKIStack(getTargetPointer().getFirst(game, source));
|
||||||
|
int mv = spell == null ? 0 : Math.max(0, spell.getManaValue());
|
||||||
|
|
||||||
|
DiscoverEffect.doDiscover(controller, mv, game, source);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,31 +1,54 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.abilities.Ability;
|
||||||
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
|
import mage.abilities.common.WerewolfBackTriggeredAbility;
|
||||||
import mage.abilities.common.WerewolfFrontTriggeredAbility;
|
import mage.abilities.common.WerewolfFrontTriggeredAbility;
|
||||||
import mage.abilities.keyword.TransformAbility;
|
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||||
|
import mage.abilities.keyword.TrampleAbility;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
|
import mage.constants.Duration;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
import mage.filter.StaticFilters;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author fireshoes
|
* @author fireshoes
|
||||||
*/
|
*/
|
||||||
public final class BreakneckRider extends CardImpl {
|
public final class BreakneckRider extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
public BreakneckRider(UUID ownerId, CardSetInfo setInfo) {
|
public BreakneckRider(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}{R}");
|
super(ownerId, setInfo,
|
||||||
this.subtype.add(SubType.HUMAN, SubType.SCOUT, SubType.WEREWOLF);
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.HUMAN, SubType.SCOUT, SubType.WEREWOLF}, "{1}{R}{R}",
|
||||||
this.power = new MageInt(3);
|
"Neck Breaker",
|
||||||
this.toughness = new MageInt(3);
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.WEREWOLF}, "R");
|
||||||
|
|
||||||
this.secondSideCardClazz = mage.cards.n.NeckBreaker.class;
|
// Breakneck Rider
|
||||||
|
this.getLeftHalfCard().setPT(3, 3);
|
||||||
|
|
||||||
// At the beginning of each upkeep, if no spells were cast last turn, transform Breakneck Rider.
|
// At the beginning of each upkeep, if no spells were cast last turn, transform Breakneck Rider.
|
||||||
this.addAbility(new TransformAbility());
|
this.getLeftHalfCard().addAbility(new WerewolfFrontTriggeredAbility());
|
||||||
this.addAbility(new WerewolfFrontTriggeredAbility());
|
|
||||||
|
// Neck Breaker
|
||||||
|
this.getRightHalfCard().setPT(4, 3);
|
||||||
|
|
||||||
|
// Attacking creatures you control get +1/+0 and have trample.
|
||||||
|
Ability ability = new SimpleStaticAbility(new BoostControlledEffect(
|
||||||
|
1, 0, Duration.WhileOnBattlefield,
|
||||||
|
StaticFilters.FILTER_ATTACKING_CREATURES
|
||||||
|
));
|
||||||
|
ability.addEffect(new GainAbilityControlledEffect(
|
||||||
|
TrampleAbility.getInstance(), Duration.WhileOnBattlefield,
|
||||||
|
StaticFilters.FILTER_ATTACKING_CREATURES
|
||||||
|
).setText("and have trample"));
|
||||||
|
this.getRightHalfCard().addAbility(ability);
|
||||||
|
|
||||||
|
// At the beginning of each upkeep, if a player cast two or more spells last turn, transform Neck Breaker.
|
||||||
|
this.getRightHalfCard().addAbility(new WerewolfBackTriggeredAbility());
|
||||||
}
|
}
|
||||||
|
|
||||||
private BreakneckRider(final BreakneckRider card) {
|
private BreakneckRider(final BreakneckRider card) {
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,28 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.abilities.common.BecomesTargetAttachedTriggeredAbility;
|
||||||
import mage.abilities.common.BecomesTargetSourceTriggeredAbility;
|
import mage.abilities.common.BecomesTargetSourceTriggeredAbility;
|
||||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||||
|
import mage.abilities.effects.common.AttachEffect;
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
import mage.abilities.keyword.DisturbAbility;
|
import mage.abilities.keyword.DisturbAbility;
|
||||||
|
import mage.abilities.keyword.EnchantAbility;
|
||||||
import mage.abilities.meta.OrTriggeredAbility;
|
import mage.abilities.meta.OrTriggeredAbility;
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.SubType;
|
import mage.constants.*;
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.FilterSpell;
|
import mage.filter.FilterSpell;
|
||||||
import mage.filter.predicate.other.AuraSpellPredicate;
|
import mage.filter.predicate.other.AuraSpellPredicate;
|
||||||
import mage.game.permanent.token.SpiritWhiteToken;
|
import mage.game.permanent.token.SpiritWhiteToken;
|
||||||
|
import mage.target.TargetPermanent;
|
||||||
|
import mage.target.common.TargetCreaturePermanent;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BrineComber extends CardImpl {
|
public final class BrineComber extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
private static final FilterSpell filter = new FilterSpell("an Aura spell");
|
private static final FilterSpell filter = new FilterSpell("an Aura spell");
|
||||||
|
|
||||||
|
|
@ -29,21 +31,40 @@ public final class BrineComber extends CardImpl {
|
||||||
}
|
}
|
||||||
|
|
||||||
public BrineComber(UUID ownerId, CardSetInfo setInfo) {
|
public BrineComber(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{U}");
|
super(ownerId, setInfo,
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.SPIRIT}, "{1}{W}{U}",
|
||||||
|
"Brinebound Gift",
|
||||||
|
new CardType[]{CardType.ENCHANTMENT}, new SubType[]{SubType.AURA}, "WU");
|
||||||
|
|
||||||
this.subtype.add(SubType.SPIRIT);
|
// Brine Comber
|
||||||
this.power = new MageInt(1);
|
this.getLeftHalfCard().setPT(1, 1);
|
||||||
this.toughness = new MageInt(1);
|
|
||||||
this.secondSideCardClazz = mage.cards.b.BrineboundGift.class;
|
|
||||||
|
|
||||||
// Whenever Brine Comber enters the battlefield or becomes the target of an Aura spell, create a 1/1 white Spirit creature token with flying.
|
// Whenever Brine Comber enters the battlefield or becomes the target of an Aura spell, create a 1/1 white Spirit creature token with flying.
|
||||||
this.addAbility(new OrTriggeredAbility(Zone.ALL, new CreateTokenEffect(new SpiritWhiteToken()), false,
|
this.getLeftHalfCard().addAbility(new OrTriggeredAbility(Zone.ALL, new CreateTokenEffect(new SpiritWhiteToken()), false,
|
||||||
"Whenever {this} enters or becomes the target of an Aura spell, ",
|
"Whenever {this} enters or becomes the target of an Aura spell, ",
|
||||||
new EntersBattlefieldTriggeredAbility(null),
|
new EntersBattlefieldTriggeredAbility(null),
|
||||||
new BecomesTargetSourceTriggeredAbility(null, filter)));
|
new BecomesTargetSourceTriggeredAbility(null, filter)));
|
||||||
|
|
||||||
|
|
||||||
|
// Brinebound Gift
|
||||||
|
// Enchant creature
|
||||||
|
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
||||||
|
this.getRightHalfCard().getSpellAbility().addTarget(auraTarget);
|
||||||
|
this.getRightHalfCard().getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
|
||||||
|
this.getRightHalfCard().addAbility(new EnchantAbility(auraTarget));
|
||||||
|
|
||||||
// Disturb {W}{U}
|
// Disturb {W}{U}
|
||||||
this.addAbility(new DisturbAbility(this, "{W}{U}"));
|
// needs to be added after enchant ability is set for target
|
||||||
|
this.getLeftHalfCard().addAbility(new DisturbAbility(this, "{W}{U}"));
|
||||||
|
|
||||||
|
// Whenever Brinebound Gift enters the battlefield or enchanted creature becomes the target of an Aura spell, create a 1/1 white Spirit creature token with flying.
|
||||||
|
this.getRightHalfCard().addAbility(new OrTriggeredAbility(Zone.ALL, new CreateTokenEffect(new SpiritWhiteToken()), false,
|
||||||
|
"Whenever {this} enters or enchanted creature becomes the target of an Aura spell, ",
|
||||||
|
new EntersBattlefieldTriggeredAbility(null),
|
||||||
|
new BecomesTargetAttachedTriggeredAbility(null, filter, SetTargetPointer.NONE, false)));
|
||||||
|
|
||||||
|
// If Brinebound Gift would be put into a graveyard from anywhere, exile it instead.
|
||||||
|
this.getRightHalfCard().addAbility(DisturbAbility.makeBackAbility());
|
||||||
}
|
}
|
||||||
|
|
||||||
private BrineComber(final BrineComber card) {
|
private BrineComber(final BrineComber card) {
|
||||||
|
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
package mage.cards.b;
|
|
||||||
|
|
||||||
import mage.abilities.common.BecomesTargetAttachedTriggeredAbility;
|
|
||||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
|
||||||
import mage.abilities.effects.common.AttachEffect;
|
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
|
||||||
import mage.abilities.keyword.DisturbAbility;
|
|
||||||
import mage.abilities.keyword.EnchantAbility;
|
|
||||||
import mage.abilities.meta.OrTriggeredAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.*;
|
|
||||||
import mage.filter.FilterSpell;
|
|
||||||
import mage.filter.predicate.other.AuraSpellPredicate;
|
|
||||||
import mage.game.permanent.token.SpiritWhiteToken;
|
|
||||||
import mage.target.TargetPermanent;
|
|
||||||
import mage.target.common.TargetCreaturePermanent;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author TheElk801
|
|
||||||
*/
|
|
||||||
public final class BrineboundGift extends CardImpl {
|
|
||||||
|
|
||||||
private static final FilterSpell filter = new FilterSpell("an Aura spell");
|
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(AuraSpellPredicate.instance);
|
|
||||||
}
|
|
||||||
|
|
||||||
public BrineboundGift(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.AURA);
|
|
||||||
this.color.setWhite(true);
|
|
||||||
this.color.setBlue(true);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Enchant creature
|
|
||||||
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
|
||||||
this.getSpellAbility().addTarget(auraTarget);
|
|
||||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
|
|
||||||
this.addAbility(new EnchantAbility(auraTarget));
|
|
||||||
|
|
||||||
// Whenever Brinebound Gift enters the battlefield or enchanted creature becomes the target of an Aura spell, create a 1/1 white Spirit creature token with flying.
|
|
||||||
this.addAbility(new OrTriggeredAbility(Zone.ALL, new CreateTokenEffect(new SpiritWhiteToken()), false,
|
|
||||||
"Whenever {this} enters or enchanted creature becomes the target of an Aura spell, ",
|
|
||||||
new EntersBattlefieldTriggeredAbility(null),
|
|
||||||
new BecomesTargetAttachedTriggeredAbility(null, filter, SetTargetPointer.NONE, false)));
|
|
||||||
|
|
||||||
// If Brinebound Gift would be put into a graveyard from anywhere, exile it instead.
|
|
||||||
this.addAbility(DisturbAbility.makeBackAbility());
|
|
||||||
}
|
|
||||||
|
|
||||||
private BrineboundGift(final BrineboundGift card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public BrineboundGift copy() {
|
|
||||||
return new BrineboundGift(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +1,15 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.TransformsOrEntersTriggeredAbility;
|
import mage.abilities.common.TransformsOrEntersTriggeredAbility;
|
||||||
|
import mage.abilities.costs.common.PayLifeCost;
|
||||||
import mage.abilities.effects.common.ExileUntilSourceLeavesEffect;
|
import mage.abilities.effects.common.ExileUntilSourceLeavesEffect;
|
||||||
import mage.abilities.keyword.DayboundAbility;
|
import mage.abilities.keyword.DayboundAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.abilities.keyword.FirstStrikeAbility;
|
||||||
|
import mage.abilities.keyword.NightboundAbility;
|
||||||
|
import mage.abilities.keyword.WardAbility;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.target.common.TargetOpponentsCreaturePermanent;
|
import mage.target.common.TargetOpponentsCreaturePermanent;
|
||||||
|
|
@ -16,17 +19,18 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BrutalCathar extends CardImpl {
|
public final class BrutalCathar extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
public BrutalCathar(UUID ownerId, CardSetInfo setInfo) {
|
public BrutalCathar(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}");
|
super(ownerId, setInfo,
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.HUMAN, SubType.SOLDIER, SubType.WEREWOLF}, "{2}{W}",
|
||||||
|
"Moonrage Brute",
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.WEREWOLF}, "R");
|
||||||
|
|
||||||
|
|
||||||
|
// Brutal Cathar
|
||||||
|
this.getLeftHalfCard().setPT(2, 2);
|
||||||
|
|
||||||
this.subtype.add(SubType.HUMAN);
|
|
||||||
this.subtype.add(SubType.SOLDIER);
|
|
||||||
this.subtype.add(SubType.WEREWOLF);
|
|
||||||
this.power = new MageInt(2);
|
|
||||||
this.toughness = new MageInt(2);
|
|
||||||
this.secondSideCardClazz = mage.cards.m.MoonrageBrute.class;
|
|
||||||
|
|
||||||
// When this creature enters the battlefield or transforms into Brutal Cathar, exile target creature an opponent controls until this creature leaves the battlefield.
|
// When this creature enters the battlefield or transforms into Brutal Cathar, exile target creature an opponent controls until this creature leaves the battlefield.
|
||||||
Ability ability = new TransformsOrEntersTriggeredAbility(
|
Ability ability = new TransformsOrEntersTriggeredAbility(
|
||||||
|
|
@ -34,10 +38,22 @@ public final class BrutalCathar extends CardImpl {
|
||||||
.setText("exile target creature an opponent controls until this creature leaves the battlefield"), false
|
.setText("exile target creature an opponent controls until this creature leaves the battlefield"), false
|
||||||
).setTriggerPhrase("When this creature enters or transforms into {this}, ");
|
).setTriggerPhrase("When this creature enters or transforms into {this}, ");
|
||||||
ability.addTarget(new TargetOpponentsCreaturePermanent());
|
ability.addTarget(new TargetOpponentsCreaturePermanent());
|
||||||
this.addAbility(ability);
|
this.getLeftHalfCard().addAbility(ability);
|
||||||
|
|
||||||
// Daybound
|
// Daybound
|
||||||
this.addAbility(new DayboundAbility());
|
this.getLeftHalfCard().addAbility(new DayboundAbility());
|
||||||
|
|
||||||
|
// Moonrage Brute
|
||||||
|
this.getRightHalfCard().setPT(3, 3);
|
||||||
|
|
||||||
|
// First strike
|
||||||
|
this.getRightHalfCard().addAbility(FirstStrikeAbility.getInstance());
|
||||||
|
|
||||||
|
// Ward—Pay 3 life.
|
||||||
|
this.getRightHalfCard().addAbility(new WardAbility(new PayLifeCost(3), false));
|
||||||
|
|
||||||
|
// Nightbound
|
||||||
|
this.getRightHalfCard().addAbility(new NightboundAbility());
|
||||||
}
|
}
|
||||||
|
|
||||||
private BrutalCathar(final BrutalCathar card) {
|
private BrutalCathar(final BrutalCathar card) {
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.keyword.DayboundAbility;
|
import mage.abilities.keyword.DayboundAbility;
|
||||||
|
import mage.abilities.keyword.NightboundAbility;
|
||||||
import mage.abilities.keyword.WardAbility;
|
import mage.abilities.keyword.WardAbility;
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
|
import mage.cards.TransformingDoubleFacedCard;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
|
||||||
|
|
@ -14,22 +14,31 @@ import java.util.UUID;
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BurlyBreaker extends CardImpl {
|
public final class BurlyBreaker extends TransformingDoubleFacedCard {
|
||||||
|
|
||||||
public BurlyBreaker(UUID ownerId, CardSetInfo setInfo) {
|
public BurlyBreaker(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}");
|
super(ownerId, setInfo,
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.HUMAN, SubType.WEREWOLF}, "{3}{G}{G}",
|
||||||
|
"Dire-Strain Demolisher",
|
||||||
|
new CardType[]{CardType.CREATURE}, new SubType[]{SubType.WEREWOLF}, "G");
|
||||||
|
|
||||||
this.subtype.add(SubType.HUMAN);
|
// Burly Breaker
|
||||||
this.subtype.add(SubType.WEREWOLF);
|
this.getLeftHalfCard().setPT(6, 5);
|
||||||
this.power = new MageInt(6);
|
|
||||||
this.toughness = new MageInt(5);
|
|
||||||
this.secondSideCardClazz = mage.cards.d.DireStrainDemolisher.class;
|
|
||||||
|
|
||||||
// Ward {1}
|
// Ward {1}
|
||||||
this.addAbility(new WardAbility(new ManaCostsImpl<>("{1}")));
|
this.getLeftHalfCard().addAbility(new WardAbility(new ManaCostsImpl<>("{1}")));
|
||||||
|
|
||||||
// Daybound
|
// Daybound
|
||||||
this.addAbility(new DayboundAbility());
|
this.getLeftHalfCard().addAbility(new DayboundAbility());
|
||||||
|
|
||||||
|
// Dire-Strain Demolisher
|
||||||
|
this.getRightHalfCard().setPT(8, 7);
|
||||||
|
|
||||||
|
// Ward {3}
|
||||||
|
this.getRightHalfCard().addAbility(new WardAbility(new ManaCostsImpl<>("{3}")));
|
||||||
|
|
||||||
|
// Nightbound
|
||||||
|
this.getRightHalfCard().addAbility(new NightboundAbility());
|
||||||
}
|
}
|
||||||
|
|
||||||
private BurlyBreaker(final BurlyBreaker card) {
|
private BurlyBreaker(final BurlyBreaker card) {
|
||||||
|
|
|
||||||
|
|
@ -1,55 +0,0 @@
|
||||||
package mage.cards.d;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.Ability;
|
|
||||||
import mage.abilities.common.AttacksTriggeredAbility;
|
|
||||||
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.ComparisonType;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.filter.FilterCard;
|
|
||||||
import mage.filter.common.FilterCreatureCard;
|
|
||||||
import mage.filter.predicate.mageobject.ManaValuePredicate;
|
|
||||||
import mage.target.common.TargetCardInYourGraveyard;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author TheElk801
|
|
||||||
*/
|
|
||||||
public final class DauntlessAvenger extends CardImpl {
|
|
||||||
|
|
||||||
private static final FilterCard filter
|
|
||||||
= new FilterCreatureCard("creature card with mana value 2 or less from your graveyard");
|
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(new ManaValuePredicate(ComparisonType.FEWER_THAN, 3));
|
|
||||||
}
|
|
||||||
|
|
||||||
public DauntlessAvenger(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.HUMAN);
|
|
||||||
this.subtype.add(SubType.SOLDIER);
|
|
||||||
this.power = new MageInt(3);
|
|
||||||
this.toughness = new MageInt(2);
|
|
||||||
this.color.setWhite(true);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Whenever Dauntless Avenger attacks, return target creature card with mana value 2 or less from your graveyard to the battlefield tapped and attacking.
|
|
||||||
Ability ability = new AttacksTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect(true, true));
|
|
||||||
ability.addTarget(new TargetCardInYourGraveyard(filter));
|
|
||||||
this.addAbility(ability);
|
|
||||||
}
|
|
||||||
|
|
||||||
private DauntlessAvenger(final DauntlessAvenger card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DauntlessAvenger copy() {
|
|
||||||
return new DauntlessAvenger(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
package mage.cards.d;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
|
||||||
import mage.abilities.keyword.NightboundAbility;
|
|
||||||
import mage.abilities.keyword.WardAbility;
|
|
||||||
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 DireStrainDemolisher extends CardImpl {
|
|
||||||
|
|
||||||
public DireStrainDemolisher(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.WEREWOLF);
|
|
||||||
this.power = new MageInt(8);
|
|
||||||
this.toughness = new MageInt(7);
|
|
||||||
this.color.setGreen(true);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Ward {3}
|
|
||||||
this.addAbility(new WardAbility(new ManaCostsImpl<>("{3}")));
|
|
||||||
|
|
||||||
// Nightbound
|
|
||||||
this.addAbility(new NightboundAbility());
|
|
||||||
}
|
|
||||||
|
|
||||||
private DireStrainDemolisher(final DireStrainDemolisher card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DireStrainDemolisher copy() {
|
|
||||||
return new DireStrainDemolisher(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
package mage.cards.g;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.keyword.DisturbAbility;
|
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
|
||||||
import mage.abilities.keyword.VigilanceAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public final class GenerousSoul extends CardImpl {
|
|
||||||
|
|
||||||
public GenerousSoul(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.SPIRIT);
|
|
||||||
this.power = new MageInt(4);
|
|
||||||
this.toughness = new MageInt(4);
|
|
||||||
this.color.setWhite(true);
|
|
||||||
|
|
||||||
// This is the back half of Beloved Beggar
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
|
||||||
this.addAbility(VigilanceAbility.getInstance());
|
|
||||||
|
|
||||||
// If Generous Soul would be put into a graveyard from anywhere, exile it instead.
|
|
||||||
this.addAbility(DisturbAbility.makeBackAbility());
|
|
||||||
}
|
|
||||||
|
|
||||||
private GenerousSoul(final GenerousSoul card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public GenerousSoul copy() {
|
|
||||||
return new GenerousSoul(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
package mage.cards.i;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
|
||||||
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 ImperialMoth extends CardImpl {
|
|
||||||
|
|
||||||
public ImperialMoth(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.INSECT);
|
|
||||||
this.power = new MageInt(2);
|
|
||||||
this.toughness = new MageInt(4);
|
|
||||||
this.color.setWhite(true);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Flying
|
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
|
||||||
}
|
|
||||||
|
|
||||||
private ImperialMoth(final ImperialMoth card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ImperialMoth copy() {
|
|
||||||
return new ImperialMoth(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
package mage.cards.l;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
|
||||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.Zone;
|
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
|
||||||
import mage.game.permanent.token.VampireToken;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Loki
|
|
||||||
*/
|
|
||||||
public final class LordOfLineage extends CardImpl {
|
|
||||||
|
|
||||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(SubType.VAMPIRE, "Vampire creatures");
|
|
||||||
|
|
||||||
public LordOfLineage(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
|
||||||
this.subtype.add(SubType.VAMPIRE);
|
|
||||||
|
|
||||||
this.color.setBlack(true);
|
|
||||||
this.power = new MageInt(5);
|
|
||||||
this.toughness = new MageInt(5);
|
|
||||||
|
|
||||||
// this card is the second face of double-faced card Bloodline Keeper
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Flying
|
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
|
||||||
|
|
||||||
// Other Vampire creatures you control get +2/+2.
|
|
||||||
this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(2, 2, Duration.WhileOnBattlefield, filter, true)));
|
|
||||||
|
|
||||||
// {T}: Create a 2/2 black Vampire creature token with flying.
|
|
||||||
this.addAbility(new SimpleActivatedAbility(new CreateTokenEffect(new VampireToken()), new TapSourceCost()));
|
|
||||||
}
|
|
||||||
|
|
||||||
private LordOfLineage(final LordOfLineage card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public LordOfLineage copy() {
|
|
||||||
return new LordOfLineage(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
||||||
package mage.cards.m;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.costs.common.PayLifeCost;
|
|
||||||
import mage.abilities.keyword.FirstStrikeAbility;
|
|
||||||
import mage.abilities.keyword.NightboundAbility;
|
|
||||||
import mage.abilities.keyword.WardAbility;
|
|
||||||
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 MoonrageBrute extends CardImpl {
|
|
||||||
|
|
||||||
public MoonrageBrute(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.WEREWOLF);
|
|
||||||
this.power = new MageInt(3);
|
|
||||||
this.toughness = new MageInt(3);
|
|
||||||
this.color.setRed(true);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// First strike
|
|
||||||
this.addAbility(FirstStrikeAbility.getInstance());
|
|
||||||
|
|
||||||
// Ward—Pay 3 life.
|
|
||||||
this.addAbility(new WardAbility(new PayLifeCost(3), false));
|
|
||||||
|
|
||||||
// Nightbound
|
|
||||||
this.addAbility(new NightboundAbility());
|
|
||||||
}
|
|
||||||
|
|
||||||
private MoonrageBrute(final MoonrageBrute card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public MoonrageBrute copy() {
|
|
||||||
return new MoonrageBrute(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
package mage.cards.n;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.Ability;
|
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
|
||||||
import mage.abilities.common.WerewolfBackTriggeredAbility;
|
|
||||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
|
||||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
|
||||||
import mage.abilities.keyword.TrampleAbility;
|
|
||||||
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 fireshoes
|
|
||||||
*/
|
|
||||||
public final class NeckBreaker extends CardImpl {
|
|
||||||
|
|
||||||
public NeckBreaker(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
|
||||||
this.subtype.add(SubType.WEREWOLF);
|
|
||||||
this.power = new MageInt(4);
|
|
||||||
this.toughness = new MageInt(3);
|
|
||||||
this.color.setRed(true);
|
|
||||||
|
|
||||||
// this card is the second face of double-faced card
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Attacking creatures you control get +1/+0 and have trample.
|
|
||||||
Ability ability = new SimpleStaticAbility(new BoostControlledEffect(
|
|
||||||
1, 0, Duration.WhileOnBattlefield,
|
|
||||||
StaticFilters.FILTER_ATTACKING_CREATURES
|
|
||||||
));
|
|
||||||
ability.addEffect(new GainAbilityControlledEffect(
|
|
||||||
TrampleAbility.getInstance(), Duration.WhileOnBattlefield,
|
|
||||||
StaticFilters.FILTER_ATTACKING_CREATURES
|
|
||||||
).setText("and have trample"));
|
|
||||||
this.addAbility(ability);
|
|
||||||
|
|
||||||
// At the beginning of each upkeep, if a player cast two or more spells last turn, transform Neck Breaker.
|
|
||||||
this.addAbility(new WerewolfBackTriggeredAbility());
|
|
||||||
}
|
|
||||||
|
|
||||||
private NeckBreaker(final NeckBreaker card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public NeckBreaker copy() {
|
|
||||||
return new NeckBreaker(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
package mage.cards.p;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.keyword.MenaceAbility;
|
|
||||||
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 PlatedKilnbeast extends CardImpl {
|
|
||||||
|
|
||||||
public PlatedKilnbeast(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.PHYREXIAN);
|
|
||||||
this.subtype.add(SubType.BEAST);
|
|
||||||
this.power = new MageInt(7);
|
|
||||||
this.toughness = new MageInt(5);
|
|
||||||
this.color.setRed(true);
|
|
||||||
this.color.setGreen(true);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Menace
|
|
||||||
this.addAbility(new MenaceAbility());
|
|
||||||
}
|
|
||||||
|
|
||||||
private PlatedKilnbeast(final PlatedKilnbeast card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PlatedKilnbeast copy() {
|
|
||||||
return new PlatedKilnbeast(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
||||||
package mage.cards.s;
|
|
||||||
|
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
|
||||||
import mage.abilities.effects.common.AttachEffect;
|
|
||||||
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
|
|
||||||
import mage.abilities.keyword.DisturbAbility;
|
|
||||||
import mage.abilities.keyword.EnchantAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.target.TargetPermanent;
|
|
||||||
import mage.target.common.TargetCreaturePermanent;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author TheElk801
|
|
||||||
*/
|
|
||||||
public final class SpectralBinding extends CardImpl {
|
|
||||||
|
|
||||||
public SpectralBinding(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.AURA);
|
|
||||||
this.color.setBlue(true);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Enchant creature
|
|
||||||
TargetPermanent auraTarget = new TargetCreaturePermanent();
|
|
||||||
this.getSpellAbility().addTarget(auraTarget);
|
|
||||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
|
|
||||||
this.addAbility(new EnchantAbility(auraTarget));
|
|
||||||
|
|
||||||
// Enchanted creature gets -2/-0.
|
|
||||||
this.addAbility(new SimpleStaticAbility(new BoostEnchantedEffect(-2, 0)));
|
|
||||||
|
|
||||||
// If Spectral Binding would be put into a graveyard from anywhere, exile it instead.
|
|
||||||
this.addAbility(DisturbAbility.makeBackAbility());
|
|
||||||
}
|
|
||||||
|
|
||||||
private SpectralBinding(final SpectralBinding card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public SpectralBinding copy() {
|
|
||||||
return new SpectralBinding(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,92 +0,0 @@
|
||||||
package mage.cards.t;
|
|
||||||
|
|
||||||
import mage.abilities.Ability;
|
|
||||||
import mage.abilities.common.CastSpellPaidBySourceTriggeredAbility;
|
|
||||||
import mage.abilities.effects.OneShotEffect;
|
|
||||||
import mage.abilities.effects.keyword.DiscoverEffect;
|
|
||||||
import mage.abilities.mana.RedManaAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.Outcome;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
import mage.constants.SuperType;
|
|
||||||
import mage.filter.FilterSpell;
|
|
||||||
import mage.filter.predicate.mageobject.PermanentPredicate;
|
|
||||||
import mage.game.Game;
|
|
||||||
import mage.game.stack.Spell;
|
|
||||||
import mage.players.Player;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Susucr
|
|
||||||
*/
|
|
||||||
public final class TecutlanTheSearingRift extends CardImpl {
|
|
||||||
|
|
||||||
private static final FilterSpell filter = new FilterSpell("a permanent spell");
|
|
||||||
|
|
||||||
static {
|
|
||||||
filter.add(PermanentPredicate.instance);
|
|
||||||
}
|
|
||||||
|
|
||||||
public TecutlanTheSearingRift(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
|
||||||
|
|
||||||
this.supertype.add(SuperType.LEGENDARY);
|
|
||||||
this.subtype.add(SubType.CAVE);
|
|
||||||
|
|
||||||
// (Transforms from Brass's Tunnel-Grinder.)
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// {T}: Add {R}.
|
|
||||||
this.addAbility(new RedManaAbility());
|
|
||||||
|
|
||||||
// Whenever you cast a permanent spell using mana produced by Tecutlan, the Searing Rift, discover X, where X is that spell's mana value.
|
|
||||||
this.addAbility(new CastSpellPaidBySourceTriggeredAbility(
|
|
||||||
new TecutlanTheSearingRiftEffect(),
|
|
||||||
filter, true
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
private TecutlanTheSearingRift(final TecutlanTheSearingRift card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TecutlanTheSearingRift copy() {
|
|
||||||
return new TecutlanTheSearingRift(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class TecutlanTheSearingRiftEffect extends OneShotEffect {
|
|
||||||
|
|
||||||
TecutlanTheSearingRiftEffect() {
|
|
||||||
super(Outcome.Benefit);
|
|
||||||
staticText = "discover X, where X is that spell's mana value";
|
|
||||||
}
|
|
||||||
|
|
||||||
private TecutlanTheSearingRiftEffect(final TecutlanTheSearingRiftEffect effect) {
|
|
||||||
super(effect);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TecutlanTheSearingRiftEffect copy() {
|
|
||||||
return new TecutlanTheSearingRiftEffect(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean apply(Game game, Ability source) {
|
|
||||||
Player controller = game.getPlayer(source.getControllerId());
|
|
||||||
if (controller == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
Spell spell = game.getSpellOrLKIStack(getTargetPointer().getFirst(game, source));
|
|
||||||
int mv = spell == null ? 0 : Math.max(0, spell.getManaValue());
|
|
||||||
|
|
||||||
DiscoverEffect.doDiscover(controller, mv, game, source);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
package mage.cards.v;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
|
||||||
import mage.abilities.dynamicvalue.common.CardsInControllerHandCount;
|
|
||||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
|
||||||
import mage.abilities.keyword.TrampleAbility;
|
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.constants.CardType;
|
|
||||||
import mage.constants.Duration;
|
|
||||||
import mage.constants.SubType;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author TheElk801
|
|
||||||
*/
|
|
||||||
public final class VisionOfTheUnspeakable extends CardImpl {
|
|
||||||
|
|
||||||
public VisionOfTheUnspeakable(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.SPIRIT);
|
|
||||||
this.power = new MageInt(0);
|
|
||||||
this.toughness = new MageInt(0);
|
|
||||||
this.color.setBlue(true);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Flying
|
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
|
||||||
|
|
||||||
// Trample
|
|
||||||
this.addAbility(TrampleAbility.getInstance());
|
|
||||||
|
|
||||||
// Vision of the Unspeakable gets +1/+1 for each card in your hand.
|
|
||||||
this.addAbility(new SimpleStaticAbility(new BoostSourceEffect(
|
|
||||||
CardsInControllerHandCount.ANY_SINGULAR,
|
|
||||||
CardsInControllerHandCount.ANY_SINGULAR,
|
|
||||||
Duration.WhileOnBattlefield
|
|
||||||
)));
|
|
||||||
}
|
|
||||||
|
|
||||||
private VisionOfTheUnspeakable(final VisionOfTheUnspeakable card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public VisionOfTheUnspeakable copy() {
|
|
||||||
return new VisionOfTheUnspeakable(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
package mage.cards.w;
|
|
||||||
|
|
||||||
import mage.MageInt;
|
|
||||||
import mage.abilities.keyword.NightboundAbility;
|
|
||||||
import mage.abilities.keyword.ReachAbility;
|
|
||||||
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 WingShredder extends CardImpl {
|
|
||||||
|
|
||||||
public WingShredder(UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "");
|
|
||||||
|
|
||||||
this.subtype.add(SubType.WEREWOLF);
|
|
||||||
this.power = new MageInt(3);
|
|
||||||
this.toughness = new MageInt(5);
|
|
||||||
this.color.setGreen(true);
|
|
||||||
this.nightCard = true;
|
|
||||||
|
|
||||||
// Reach
|
|
||||||
this.addAbility(ReachAbility.getInstance());
|
|
||||||
|
|
||||||
// Nightbound
|
|
||||||
this.addAbility(new NightboundAbility());
|
|
||||||
}
|
|
||||||
|
|
||||||
private WingShredder(final WingShredder card) {
|
|
||||||
super(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public WingShredder copy() {
|
|
||||||
return new WingShredder(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -60,8 +60,6 @@ public final class FinalFantasy extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Bahamut, Warden of Light", 376, Rarity.RARE, mage.cards.b.BahamutWardenOfLight.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bahamut, Warden of Light", 376, Rarity.RARE, mage.cards.b.BahamutWardenOfLight.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Bahamut, Warden of Light", 428, Rarity.RARE, mage.cards.b.BahamutWardenOfLight.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bahamut, Warden of Light", 428, Rarity.RARE, mage.cards.b.BahamutWardenOfLight.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Bahamut, Warden of Light", 521, Rarity.RARE, mage.cards.b.BahamutWardenOfLight.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bahamut, Warden of Light", 521, Rarity.RARE, mage.cards.b.BahamutWardenOfLight.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Balamb Garden, Airborne", 272, Rarity.RARE, mage.cards.b.BalambGardenAirborne.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Balamb Garden, Airborne", 354, Rarity.RARE, mage.cards.b.BalambGardenAirborne.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Balamb Garden, SeeD Academy", 272, Rarity.RARE, mage.cards.b.BalambGardenSeeDAcademy.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Balamb Garden, SeeD Academy", 272, Rarity.RARE, mage.cards.b.BalambGardenSeeDAcademy.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Balamb Garden, SeeD Academy", 354, Rarity.RARE, mage.cards.b.BalambGardenSeeDAcademy.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Balamb Garden, SeeD Academy", 354, Rarity.RARE, mage.cards.b.BalambGardenSeeDAcademy.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Balamb T-Rexaur", 173, Rarity.COMMON, mage.cards.b.BalambTRexaur.class));
|
cards.add(new SetCardInfo("Balamb T-Rexaur", 173, Rarity.COMMON, mage.cards.b.BalambTRexaur.class));
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,6 @@ public final class FromTheVaultTransform extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Arguel's Blood Fast", 2, Rarity.MYTHIC, mage.cards.a.ArguelsBloodFast.class));
|
cards.add(new SetCardInfo("Arguel's Blood Fast", 2, Rarity.MYTHIC, mage.cards.a.ArguelsBloodFast.class));
|
||||||
cards.add(new SetCardInfo("Arlinn Kord", 3, Rarity.MYTHIC, mage.cards.a.ArlinnKord.class));
|
cards.add(new SetCardInfo("Arlinn Kord", 3, Rarity.MYTHIC, mage.cards.a.ArlinnKord.class));
|
||||||
cards.add(new SetCardInfo("Bloodline Keeper", 4, Rarity.MYTHIC, mage.cards.b.BloodlineKeeper.class));
|
cards.add(new SetCardInfo("Bloodline Keeper", 4, Rarity.MYTHIC, mage.cards.b.BloodlineKeeper.class));
|
||||||
cards.add(new SetCardInfo("Lord of Lineage", 4, Rarity.MYTHIC, mage.cards.l.LordOfLineage.class));
|
|
||||||
cards.add(new SetCardInfo("Bruna, the Fading Light", 5, Rarity.MYTHIC, mage.cards.b.BrunaTheFadingLight.class));
|
cards.add(new SetCardInfo("Bruna, the Fading Light", 5, Rarity.MYTHIC, mage.cards.b.BrunaTheFadingLight.class));
|
||||||
cards.add(new SetCardInfo("Brisela, Voice of Nightmares", "5b", Rarity.MYTHIC, mage.cards.b.BriselaVoiceOfNightmares.class));
|
cards.add(new SetCardInfo("Brisela, Voice of Nightmares", "5b", Rarity.MYTHIC, mage.cards.b.BriselaVoiceOfNightmares.class));
|
||||||
cards.add(new SetCardInfo("Chandra, Fire of Kaladesh", 6, Rarity.MYTHIC, mage.cards.c.ChandraFireOfKaladesh.class));
|
cards.add(new SetCardInfo("Chandra, Fire of Kaladesh", 6, Rarity.MYTHIC, mage.cards.c.ChandraFireOfKaladesh.class));
|
||||||
|
|
|
||||||
|
|
@ -178,7 +178,6 @@ public final class Innistrad extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Laboratory Maniac", 61, Rarity.RARE, mage.cards.l.LaboratoryManiac.class));
|
cards.add(new SetCardInfo("Laboratory Maniac", 61, Rarity.RARE, mage.cards.l.LaboratoryManiac.class));
|
||||||
cards.add(new SetCardInfo("Lantern Spirit", 62, Rarity.UNCOMMON, mage.cards.l.LanternSpirit.class));
|
cards.add(new SetCardInfo("Lantern Spirit", 62, Rarity.UNCOMMON, mage.cards.l.LanternSpirit.class));
|
||||||
cards.add(new SetCardInfo("Liliana of the Veil", 105, Rarity.MYTHIC, mage.cards.l.LilianaOfTheVeil.class));
|
cards.add(new SetCardInfo("Liliana of the Veil", 105, Rarity.MYTHIC, mage.cards.l.LilianaOfTheVeil.class));
|
||||||
cards.add(new SetCardInfo("Lord of Lineage", 90, Rarity.RARE, mage.cards.l.LordOfLineage.class));
|
|
||||||
cards.add(new SetCardInfo("Lost in the Mist", 63, Rarity.COMMON, mage.cards.l.LostInTheMist.class));
|
cards.add(new SetCardInfo("Lost in the Mist", 63, Rarity.COMMON, mage.cards.l.LostInTheMist.class));
|
||||||
cards.add(new SetCardInfo("Ludevic's Abomination", 64, Rarity.RARE, mage.cards.l.LudevicsAbomination.class));
|
cards.add(new SetCardInfo("Ludevic's Abomination", 64, Rarity.RARE, mage.cards.l.LudevicsAbomination.class));
|
||||||
cards.add(new SetCardInfo("Ludevic's Test Subject", 64, Rarity.RARE, mage.cards.l.LudevicsTestSubject.class));
|
cards.add(new SetCardInfo("Ludevic's Test Subject", 64, Rarity.RARE, mage.cards.l.LudevicsTestSubject.class));
|
||||||
|
|
|
||||||
|
|
@ -60,12 +60,10 @@ public final class InnistradCrimsonVow extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Avabruck Caretaker", 187, Rarity.MYTHIC, mage.cards.a.AvabruckCaretaker.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Avabruck Caretaker", 187, Rarity.MYTHIC, mage.cards.a.AvabruckCaretaker.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Avabruck Caretaker", 384, Rarity.MYTHIC, mage.cards.a.AvabruckCaretaker.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Avabruck Caretaker", 384, Rarity.MYTHIC, mage.cards.a.AvabruckCaretaker.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Ballista Watcher", 143, Rarity.UNCOMMON, mage.cards.b.BallistaWatcher.class));
|
cards.add(new SetCardInfo("Ballista Watcher", 143, Rarity.UNCOMMON, mage.cards.b.BallistaWatcher.class));
|
||||||
cards.add(new SetCardInfo("Ballista Wielder", 143, Rarity.UNCOMMON, mage.cards.b.BallistaWielder.class));
|
|
||||||
cards.add(new SetCardInfo("Belligerent Guest", 144, Rarity.COMMON, mage.cards.b.BelligerentGuest.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Belligerent Guest", 144, Rarity.COMMON, mage.cards.b.BelligerentGuest.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Belligerent Guest", 301, Rarity.COMMON, mage.cards.b.BelligerentGuest.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Belligerent Guest", 301, Rarity.COMMON, mage.cards.b.BelligerentGuest.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Binding Geist", 48, Rarity.COMMON, mage.cards.b.BindingGeist.class));
|
cards.add(new SetCardInfo("Binding Geist", 48, Rarity.COMMON, mage.cards.b.BindingGeist.class));
|
||||||
cards.add(new SetCardInfo("Biolume Egg", 49, Rarity.UNCOMMON, mage.cards.b.BiolumeEgg.class));
|
cards.add(new SetCardInfo("Biolume Egg", 49, Rarity.UNCOMMON, mage.cards.b.BiolumeEgg.class));
|
||||||
cards.add(new SetCardInfo("Biolume Serpent", 49, Rarity.UNCOMMON, mage.cards.b.BiolumeSerpent.class));
|
|
||||||
cards.add(new SetCardInfo("Bleed Dry", 94, Rarity.COMMON, mage.cards.b.BleedDry.class));
|
cards.add(new SetCardInfo("Bleed Dry", 94, Rarity.COMMON, mage.cards.b.BleedDry.class));
|
||||||
cards.add(new SetCardInfo("Blood Fountain", 95, Rarity.COMMON, mage.cards.b.BloodFountain.class));
|
cards.add(new SetCardInfo("Blood Fountain", 95, Rarity.COMMON, mage.cards.b.BloodFountain.class));
|
||||||
cards.add(new SetCardInfo("Blood Hypnotist", 145, Rarity.UNCOMMON, mage.cards.b.BloodHypnotist.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Blood Hypnotist", 145, Rarity.UNCOMMON, mage.cards.b.BloodHypnotist.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
@ -80,8 +78,6 @@ public final class InnistradCrimsonVow extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Bloodcrazed Socialite", 96, Rarity.COMMON, mage.cards.b.BloodcrazedSocialite.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bloodcrazed Socialite", 96, Rarity.COMMON, mage.cards.b.BloodcrazedSocialite.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Bloodsoaked Reveler", 128, Rarity.UNCOMMON, mage.cards.b.BloodsoakedReveler.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bloodsoaked Reveler", 128, Rarity.UNCOMMON, mage.cards.b.BloodsoakedReveler.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Bloodsoaked Reveler", 295, Rarity.UNCOMMON, mage.cards.b.BloodsoakedReveler.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bloodsoaked Reveler", 295, Rarity.UNCOMMON, mage.cards.b.BloodsoakedReveler.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Bloodsworn Knight", 289, Rarity.UNCOMMON, mage.cards.b.BloodswornKnight.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Bloodsworn Knight", 97, Rarity.UNCOMMON, mage.cards.b.BloodswornKnight.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Bloodsworn Squire", 289, Rarity.UNCOMMON, mage.cards.b.BloodswornSquire.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bloodsworn Squire", 289, Rarity.UNCOMMON, mage.cards.b.BloodswornSquire.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Bloodsworn Squire", 97, Rarity.UNCOMMON, mage.cards.b.BloodswornSquire.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bloodsworn Squire", 97, Rarity.UNCOMMON, mage.cards.b.BloodswornSquire.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Bloodtithe Harvester", 232, Rarity.UNCOMMON, mage.cards.b.BloodtitheHarvester.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bloodtithe Harvester", 232, Rarity.UNCOMMON, mage.cards.b.BloodtitheHarvester.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
@ -95,7 +91,6 @@ public final class InnistradCrimsonVow extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Bramble Wurm", 189, Rarity.UNCOMMON, mage.cards.b.BrambleWurm.class));
|
cards.add(new SetCardInfo("Bramble Wurm", 189, Rarity.UNCOMMON, mage.cards.b.BrambleWurm.class));
|
||||||
cards.add(new SetCardInfo("Bride's Gown", 4, Rarity.UNCOMMON, mage.cards.b.BridesGown.class));
|
cards.add(new SetCardInfo("Bride's Gown", 4, Rarity.UNCOMMON, mage.cards.b.BridesGown.class));
|
||||||
cards.add(new SetCardInfo("Brine Comber", 233, Rarity.UNCOMMON, mage.cards.b.BrineComber.class));
|
cards.add(new SetCardInfo("Brine Comber", 233, Rarity.UNCOMMON, mage.cards.b.BrineComber.class));
|
||||||
cards.add(new SetCardInfo("Brinebound Gift", 233, Rarity.UNCOMMON, mage.cards.b.BrineboundGift.class));
|
|
||||||
cards.add(new SetCardInfo("By Invitation Only", 346, Rarity.RARE, mage.cards.b.ByInvitationOnly.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("By Invitation Only", 346, Rarity.RARE, mage.cards.b.ByInvitationOnly.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("By Invitation Only", 5, Rarity.RARE, mage.cards.b.ByInvitationOnly.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("By Invitation Only", 5, Rarity.RARE, mage.cards.b.ByInvitationOnly.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Cackling Culprit", 28, Rarity.UNCOMMON, mage.cards.c.CacklingCulprit.class));
|
cards.add(new SetCardInfo("Cackling Culprit", 28, Rarity.UNCOMMON, mage.cards.c.CacklingCulprit.class));
|
||||||
|
|
@ -427,7 +422,6 @@ public final class InnistradCrimsonVow extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Sorin the Mirthless", 297, Rarity.MYTHIC, mage.cards.s.SorinTheMirthless.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Sorin the Mirthless", 297, Rarity.MYTHIC, mage.cards.s.SorinTheMirthless.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Sorin the Mirthless", 337, Rarity.MYTHIC, mage.cards.s.SorinTheMirthless.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Sorin the Mirthless", 337, Rarity.MYTHIC, mage.cards.s.SorinTheMirthless.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Soulcipher Board", 79, Rarity.UNCOMMON, mage.cards.s.SoulcipherBoard.class));
|
cards.add(new SetCardInfo("Soulcipher Board", 79, Rarity.UNCOMMON, mage.cards.s.SoulcipherBoard.class));
|
||||||
cards.add(new SetCardInfo("Spectral Binding", 48, Rarity.COMMON, mage.cards.s.SpectralBinding.class));
|
|
||||||
cards.add(new SetCardInfo("Spiked Ripsaw", 220, Rarity.UNCOMMON, mage.cards.s.SpikedRipsaw.class));
|
cards.add(new SetCardInfo("Spiked Ripsaw", 220, Rarity.UNCOMMON, mage.cards.s.SpikedRipsaw.class));
|
||||||
cards.add(new SetCardInfo("Splendid Reclamation", 221, Rarity.RARE, mage.cards.s.SplendidReclamation.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Splendid Reclamation", 221, Rarity.RARE, mage.cards.s.SplendidReclamation.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Splendid Reclamation", 393, Rarity.RARE, mage.cards.s.SplendidReclamation.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Splendid Reclamation", 393, Rarity.RARE, mage.cards.s.SplendidReclamation.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
|
||||||
|
|
@ -56,9 +56,7 @@ public final class InnistradDoubleFeature extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Awoken Demon", 100, Rarity.COMMON, mage.cards.a.AwokenDemon.class));
|
cards.add(new SetCardInfo("Awoken Demon", 100, Rarity.COMMON, mage.cards.a.AwokenDemon.class));
|
||||||
cards.add(new SetCardInfo("Baithook Angler", 42, Rarity.COMMON, mage.cards.b.BaithookAngler.class));
|
cards.add(new SetCardInfo("Baithook Angler", 42, Rarity.COMMON, mage.cards.b.BaithookAngler.class));
|
||||||
cards.add(new SetCardInfo("Ballista Watcher", 410, Rarity.UNCOMMON, mage.cards.b.BallistaWatcher.class));
|
cards.add(new SetCardInfo("Ballista Watcher", 410, Rarity.UNCOMMON, mage.cards.b.BallistaWatcher.class));
|
||||||
cards.add(new SetCardInfo("Ballista Wielder", 410, Rarity.UNCOMMON, mage.cards.b.BallistaWielder.class));
|
|
||||||
cards.add(new SetCardInfo("Baneblade Scoundrel", 85, Rarity.UNCOMMON, mage.cards.b.BanebladeScoundrel.class));
|
cards.add(new SetCardInfo("Baneblade Scoundrel", 85, Rarity.UNCOMMON, mage.cards.b.BanebladeScoundrel.class));
|
||||||
cards.add(new SetCardInfo("Baneclaw Marauder", 85, Rarity.UNCOMMON, mage.cards.b.BaneclawMarauder.class));
|
|
||||||
cards.add(new SetCardInfo("Bat Whisperer", 86, Rarity.COMMON, mage.cards.b.BatWhisperer.class));
|
cards.add(new SetCardInfo("Bat Whisperer", 86, Rarity.COMMON, mage.cards.b.BatWhisperer.class));
|
||||||
cards.add(new SetCardInfo("Belligerent Guest", 411, Rarity.COMMON, mage.cards.b.BelligerentGuest.class));
|
cards.add(new SetCardInfo("Belligerent Guest", 411, Rarity.COMMON, mage.cards.b.BelligerentGuest.class));
|
||||||
cards.add(new SetCardInfo("Beloved Beggar", 3, Rarity.UNCOMMON, mage.cards.b.BelovedBeggar.class));
|
cards.add(new SetCardInfo("Beloved Beggar", 3, Rarity.UNCOMMON, mage.cards.b.BelovedBeggar.class));
|
||||||
|
|
@ -66,7 +64,6 @@ public final class InnistradDoubleFeature extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Bereaved Survivor", 4, Rarity.UNCOMMON, mage.cards.b.BereavedSurvivor.class));
|
cards.add(new SetCardInfo("Bereaved Survivor", 4, Rarity.UNCOMMON, mage.cards.b.BereavedSurvivor.class));
|
||||||
cards.add(new SetCardInfo("Binding Geist", 315, Rarity.COMMON, mage.cards.b.BindingGeist.class));
|
cards.add(new SetCardInfo("Binding Geist", 315, Rarity.COMMON, mage.cards.b.BindingGeist.class));
|
||||||
cards.add(new SetCardInfo("Biolume Egg", 316, Rarity.UNCOMMON, mage.cards.b.BiolumeEgg.class));
|
cards.add(new SetCardInfo("Biolume Egg", 316, Rarity.UNCOMMON, mage.cards.b.BiolumeEgg.class));
|
||||||
cards.add(new SetCardInfo("Biolume Serpent", 316, Rarity.UNCOMMON, mage.cards.b.BiolumeSerpent.class));
|
|
||||||
cards.add(new SetCardInfo("Bird Admirer", 169, Rarity.COMMON, mage.cards.b.BirdAdmirer.class));
|
cards.add(new SetCardInfo("Bird Admirer", 169, Rarity.COMMON, mage.cards.b.BirdAdmirer.class));
|
||||||
cards.add(new SetCardInfo("Bladebrand", 87, Rarity.COMMON, mage.cards.b.Bladebrand.class));
|
cards.add(new SetCardInfo("Bladebrand", 87, Rarity.COMMON, mage.cards.b.Bladebrand.class));
|
||||||
cards.add(new SetCardInfo("Bladestitched Skaab", 212, Rarity.UNCOMMON, mage.cards.b.BladestitchedSkaab.class));
|
cards.add(new SetCardInfo("Bladestitched Skaab", 212, Rarity.UNCOMMON, mage.cards.b.BladestitchedSkaab.class));
|
||||||
|
|
@ -81,7 +78,6 @@ public final class InnistradDoubleFeature extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Bloodcrazed Socialite", 363, Rarity.COMMON, mage.cards.b.BloodcrazedSocialite.class));
|
cards.add(new SetCardInfo("Bloodcrazed Socialite", 363, Rarity.COMMON, mage.cards.b.BloodcrazedSocialite.class));
|
||||||
cards.add(new SetCardInfo("Bloodline Culling", 89, Rarity.RARE, mage.cards.b.BloodlineCulling.class));
|
cards.add(new SetCardInfo("Bloodline Culling", 89, Rarity.RARE, mage.cards.b.BloodlineCulling.class));
|
||||||
cards.add(new SetCardInfo("Bloodsoaked Reveler", 395, Rarity.UNCOMMON, mage.cards.b.BloodsoakedReveler.class));
|
cards.add(new SetCardInfo("Bloodsoaked Reveler", 395, Rarity.UNCOMMON, mage.cards.b.BloodsoakedReveler.class));
|
||||||
cards.add(new SetCardInfo("Bloodsworn Knight", 364, Rarity.UNCOMMON, mage.cards.b.BloodswornKnight.class));
|
|
||||||
cards.add(new SetCardInfo("Bloodsworn Squire", 364, Rarity.UNCOMMON, mage.cards.b.BloodswornSquire.class));
|
cards.add(new SetCardInfo("Bloodsworn Squire", 364, Rarity.UNCOMMON, mage.cards.b.BloodswornSquire.class));
|
||||||
cards.add(new SetCardInfo("Bloodthirsty Adversary", 129, Rarity.MYTHIC, mage.cards.b.BloodthirstyAdversary.class));
|
cards.add(new SetCardInfo("Bloodthirsty Adversary", 129, Rarity.MYTHIC, mage.cards.b.BloodthirstyAdversary.class));
|
||||||
cards.add(new SetCardInfo("Bloodtithe Collector", 90, Rarity.UNCOMMON, mage.cards.b.BloodtitheCollector.class));
|
cards.add(new SetCardInfo("Bloodtithe Collector", 90, Rarity.UNCOMMON, mage.cards.b.BloodtitheCollector.class));
|
||||||
|
|
@ -99,7 +95,6 @@ public final class InnistradDoubleFeature extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Bride's Gown", 271, Rarity.UNCOMMON, mage.cards.b.BridesGown.class));
|
cards.add(new SetCardInfo("Bride's Gown", 271, Rarity.UNCOMMON, mage.cards.b.BridesGown.class));
|
||||||
cards.add(new SetCardInfo("Brimstone Vandal", 130, Rarity.COMMON, mage.cards.b.BrimstoneVandal.class));
|
cards.add(new SetCardInfo("Brimstone Vandal", 130, Rarity.COMMON, mage.cards.b.BrimstoneVandal.class));
|
||||||
cards.add(new SetCardInfo("Brine Comber", 500, Rarity.UNCOMMON, mage.cards.b.BrineComber.class));
|
cards.add(new SetCardInfo("Brine Comber", 500, Rarity.UNCOMMON, mage.cards.b.BrineComber.class));
|
||||||
cards.add(new SetCardInfo("Brinebound Gift", 500, Rarity.UNCOMMON, mage.cards.b.BrineboundGift.class));
|
|
||||||
cards.add(new SetCardInfo("Brood Weaver", 173, Rarity.UNCOMMON, mage.cards.b.BroodWeaver.class));
|
cards.add(new SetCardInfo("Brood Weaver", 173, Rarity.UNCOMMON, mage.cards.b.BroodWeaver.class));
|
||||||
cards.add(new SetCardInfo("Brutal Cathar", 7, Rarity.RARE, mage.cards.b.BrutalCathar.class));
|
cards.add(new SetCardInfo("Brutal Cathar", 7, Rarity.RARE, mage.cards.b.BrutalCathar.class));
|
||||||
cards.add(new SetCardInfo("Burly Breaker", 174, Rarity.UNCOMMON, mage.cards.b.BurlyBreaker.class));
|
cards.add(new SetCardInfo("Burly Breaker", 174, Rarity.UNCOMMON, mage.cards.b.BurlyBreaker.class));
|
||||||
|
|
@ -166,7 +161,6 @@ public final class InnistradDoubleFeature extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Curse of Shaken Faith", 134, Rarity.RARE, mage.cards.c.CurseOfShakenFaith.class));
|
cards.add(new SetCardInfo("Curse of Shaken Faith", 134, Rarity.RARE, mage.cards.c.CurseOfShakenFaith.class));
|
||||||
cards.add(new SetCardInfo("Curse of Silence", 15, Rarity.RARE, mage.cards.c.CurseOfSilence.class));
|
cards.add(new SetCardInfo("Curse of Silence", 15, Rarity.RARE, mage.cards.c.CurseOfSilence.class));
|
||||||
cards.add(new SetCardInfo("Curse of Surveillance", 46, Rarity.RARE, mage.cards.c.CurseOfSurveillance.class));
|
cards.add(new SetCardInfo("Curse of Surveillance", 46, Rarity.RARE, mage.cards.c.CurseOfSurveillance.class));
|
||||||
cards.add(new SetCardInfo("Dauntless Avenger", 4, Rarity.UNCOMMON, mage.cards.d.DauntlessAvenger.class));
|
|
||||||
cards.add(new SetCardInfo("Dawnhart Disciple", 463, Rarity.COMMON, mage.cards.d.DawnhartDisciple.class));
|
cards.add(new SetCardInfo("Dawnhart Disciple", 463, Rarity.COMMON, mage.cards.d.DawnhartDisciple.class));
|
||||||
cards.add(new SetCardInfo("Dawnhart Geist", 275, Rarity.UNCOMMON, mage.cards.d.DawnhartGeist.class));
|
cards.add(new SetCardInfo("Dawnhart Geist", 275, Rarity.UNCOMMON, mage.cards.d.DawnhartGeist.class));
|
||||||
cards.add(new SetCardInfo("Dawnhart Mentor", 179, Rarity.UNCOMMON, mage.cards.d.DawnhartMentor.class));
|
cards.add(new SetCardInfo("Dawnhart Mentor", 179, Rarity.UNCOMMON, mage.cards.d.DawnhartMentor.class));
|
||||||
|
|
@ -191,7 +185,6 @@ public final class InnistradDoubleFeature extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Dig Up", 464, Rarity.RARE, mage.cards.d.DigUp.class));
|
cards.add(new SetCardInfo("Dig Up", 464, Rarity.RARE, mage.cards.d.DigUp.class));
|
||||||
cards.add(new SetCardInfo("Dire-Strain Anarchist", 448, Rarity.MYTHIC, mage.cards.d.DireStrainAnarchist.class));
|
cards.add(new SetCardInfo("Dire-Strain Anarchist", 448, Rarity.MYTHIC, mage.cards.d.DireStrainAnarchist.class));
|
||||||
cards.add(new SetCardInfo("Dire-Strain Brawler", 203, Rarity.COMMON, mage.cards.d.DireStrainBrawler.class));
|
cards.add(new SetCardInfo("Dire-Strain Brawler", 203, Rarity.COMMON, mage.cards.d.DireStrainBrawler.class));
|
||||||
cards.add(new SetCardInfo("Dire-Strain Demolisher", 174, Rarity.UNCOMMON, mage.cards.d.DireStrainDemolisher.class));
|
|
||||||
cards.add(new SetCardInfo("Dire-Strain Rampage", 219, Rarity.RARE, mage.cards.d.DireStrainRampage.class));
|
cards.add(new SetCardInfo("Dire-Strain Rampage", 219, Rarity.RARE, mage.cards.d.DireStrainRampage.class));
|
||||||
cards.add(new SetCardInfo("Diregraf Horde", 96, Rarity.COMMON, mage.cards.d.DiregrafHorde.class));
|
cards.add(new SetCardInfo("Diregraf Horde", 96, Rarity.COMMON, mage.cards.d.DiregrafHorde.class));
|
||||||
cards.add(new SetCardInfo("Diregraf Rebirth", 220, Rarity.UNCOMMON, mage.cards.d.DiregrafRebirth.class));
|
cards.add(new SetCardInfo("Diregraf Rebirth", 220, Rarity.UNCOMMON, mage.cards.d.DiregrafRebirth.class));
|
||||||
|
|
@ -275,7 +268,6 @@ public final class InnistradDoubleFeature extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Geistflame Reservoir", 142, Rarity.RARE, mage.cards.g.GeistflameReservoir.class));
|
cards.add(new SetCardInfo("Geistflame Reservoir", 142, Rarity.RARE, mage.cards.g.GeistflameReservoir.class));
|
||||||
cards.add(new SetCardInfo("Geistlight Snare", 327, Rarity.UNCOMMON, mage.cards.g.GeistlightSnare.class));
|
cards.add(new SetCardInfo("Geistlight Snare", 327, Rarity.UNCOMMON, mage.cards.g.GeistlightSnare.class));
|
||||||
cards.add(new SetCardInfo("Geistwave", 56, Rarity.COMMON, mage.cards.g.Geistwave.class));
|
cards.add(new SetCardInfo("Geistwave", 56, Rarity.COMMON, mage.cards.g.Geistwave.class));
|
||||||
cards.add(new SetCardInfo("Generous Soul", 3, Rarity.UNCOMMON, mage.cards.g.GenerousSoul.class));
|
|
||||||
cards.add(new SetCardInfo("Geralf, Visionary Stitcher", 328, Rarity.RARE, mage.cards.g.GeralfVisionaryStitcher.class));
|
cards.add(new SetCardInfo("Geralf, Visionary Stitcher", 328, Rarity.RARE, mage.cards.g.GeralfVisionaryStitcher.class));
|
||||||
cards.add(new SetCardInfo("Ghastly Mimicry", 335, Rarity.RARE, mage.cards.g.GhastlyMimicry.class));
|
cards.add(new SetCardInfo("Ghastly Mimicry", 335, Rarity.RARE, mage.cards.g.GhastlyMimicry.class));
|
||||||
cards.add(new SetCardInfo("Ghostly Castigator", 45, Rarity.UNCOMMON, mage.cards.g.GhostlyCastigator.class));
|
cards.add(new SetCardInfo("Ghostly Castigator", 45, Rarity.UNCOMMON, mage.cards.g.GhostlyCastigator.class));
|
||||||
|
|
@ -398,7 +390,6 @@ public final class InnistradDoubleFeature extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Mischievous Catgeist", 336, Rarity.UNCOMMON, mage.cards.m.MischievousCatgeist.class));
|
cards.add(new SetCardInfo("Mischievous Catgeist", 336, Rarity.UNCOMMON, mage.cards.m.MischievousCatgeist.class));
|
||||||
cards.add(new SetCardInfo("Moldgraf Millipede", 476, Rarity.COMMON, mage.cards.m.MoldgrafMillipede.class));
|
cards.add(new SetCardInfo("Moldgraf Millipede", 476, Rarity.COMMON, mage.cards.m.MoldgrafMillipede.class));
|
||||||
cards.add(new SetCardInfo("Moonlit Ambusher", 479, Rarity.UNCOMMON, mage.cards.m.MoonlitAmbusher.class));
|
cards.add(new SetCardInfo("Moonlit Ambusher", 479, Rarity.UNCOMMON, mage.cards.m.MoonlitAmbusher.class));
|
||||||
cards.add(new SetCardInfo("Moonrage Brute", 7, Rarity.RARE, mage.cards.m.MoonrageBrute.class));
|
|
||||||
cards.add(new SetCardInfo("Moonrager's Slash", 148, Rarity.COMMON, mage.cards.m.MoonragersSlash.class));
|
cards.add(new SetCardInfo("Moonrager's Slash", 148, Rarity.COMMON, mage.cards.m.MoonragersSlash.class));
|
||||||
cards.add(new SetCardInfo("Moonsilver Key", 255, Rarity.UNCOMMON, mage.cards.m.MoonsilverKey.class));
|
cards.add(new SetCardInfo("Moonsilver Key", 255, Rarity.UNCOMMON, mage.cards.m.MoonsilverKey.class));
|
||||||
cards.add(new SetCardInfo("Moonveil Regent", 149, Rarity.MYTHIC, mage.cards.m.MoonveilRegent.class));
|
cards.add(new SetCardInfo("Moonveil Regent", 149, Rarity.MYTHIC, mage.cards.m.MoonveilRegent.class));
|
||||||
|
|
@ -535,7 +526,6 @@ public final class InnistradDoubleFeature extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Soul-Guide Gryff", 35, Rarity.COMMON, mage.cards.s.SoulGuideGryff.class));
|
cards.add(new SetCardInfo("Soul-Guide Gryff", 35, Rarity.COMMON, mage.cards.s.SoulGuideGryff.class));
|
||||||
cards.add(new SetCardInfo("Soulcipher Board", 346, Rarity.UNCOMMON, mage.cards.s.SoulcipherBoard.class));
|
cards.add(new SetCardInfo("Soulcipher Board", 346, Rarity.UNCOMMON, mage.cards.s.SoulcipherBoard.class));
|
||||||
cards.add(new SetCardInfo("Spectral Adversary", 77, Rarity.MYTHIC, mage.cards.s.SpectralAdversary.class));
|
cards.add(new SetCardInfo("Spectral Adversary", 77, Rarity.MYTHIC, mage.cards.s.SpectralAdversary.class));
|
||||||
cards.add(new SetCardInfo("Spectral Binding", 315, Rarity.COMMON, mage.cards.s.SpectralBinding.class));
|
|
||||||
cards.add(new SetCardInfo("Spellrune Howler", 160, Rarity.UNCOMMON, mage.cards.s.SpellruneHowler.class));
|
cards.add(new SetCardInfo("Spellrune Howler", 160, Rarity.UNCOMMON, mage.cards.s.SpellruneHowler.class));
|
||||||
cards.add(new SetCardInfo("Spellrune Painter", 160, Rarity.UNCOMMON, mage.cards.s.SpellrunePainter.class));
|
cards.add(new SetCardInfo("Spellrune Painter", 160, Rarity.UNCOMMON, mage.cards.s.SpellrunePainter.class));
|
||||||
cards.add(new SetCardInfo("Spiked Ripsaw", 487, Rarity.UNCOMMON, mage.cards.s.SpikedRipsaw.class));
|
cards.add(new SetCardInfo("Spiked Ripsaw", 487, Rarity.UNCOMMON, mage.cards.s.SpikedRipsaw.class));
|
||||||
|
|
@ -641,7 +631,6 @@ public final class InnistradDoubleFeature extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Whispering Wizard", 355, Rarity.UNCOMMON, mage.cards.w.WhisperingWizard.class));
|
cards.add(new SetCardInfo("Whispering Wizard", 355, Rarity.UNCOMMON, mage.cards.w.WhisperingWizard.class));
|
||||||
cards.add(new SetCardInfo("Wildsong Howler", 472, Rarity.RARE, mage.cards.w.WildsongHowler.class));
|
cards.add(new SetCardInfo("Wildsong Howler", 472, Rarity.RARE, mage.cards.w.WildsongHowler.class));
|
||||||
cards.add(new SetCardInfo("Willow Geist", 207, Rarity.RARE, mage.cards.w.WillowGeist.class));
|
cards.add(new SetCardInfo("Willow Geist", 207, Rarity.RARE, mage.cards.w.WillowGeist.class));
|
||||||
cards.add(new SetCardInfo("Wing Shredder", 169, Rarity.COMMON, mage.cards.w.WingShredder.class));
|
|
||||||
cards.add(new SetCardInfo("Winged Portent", 356, Rarity.RARE, mage.cards.w.WingedPortent.class));
|
cards.add(new SetCardInfo("Winged Portent", 356, Rarity.RARE, mage.cards.w.WingedPortent.class));
|
||||||
cards.add(new SetCardInfo("Winterthorn Blessing", 251, Rarity.UNCOMMON, mage.cards.w.WinterthornBlessing.class));
|
cards.add(new SetCardInfo("Winterthorn Blessing", 251, Rarity.UNCOMMON, mage.cards.w.WinterthornBlessing.class));
|
||||||
cards.add(new SetCardInfo("Witch's Web", 494, Rarity.COMMON, mage.cards.w.WitchsWeb.class));
|
cards.add(new SetCardInfo("Witch's Web", 494, Rarity.COMMON, mage.cards.w.WitchsWeb.class));
|
||||||
|
|
|
||||||
|
|
@ -61,8 +61,6 @@ public final class InnistradMidnightHunt extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Baithook Angler", 42, Rarity.COMMON, mage.cards.b.BaithookAngler.class));
|
cards.add(new SetCardInfo("Baithook Angler", 42, Rarity.COMMON, mage.cards.b.BaithookAngler.class));
|
||||||
cards.add(new SetCardInfo("Baneblade Scoundrel", 289, Rarity.UNCOMMON, mage.cards.b.BanebladeScoundrel.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Baneblade Scoundrel", 289, Rarity.UNCOMMON, mage.cards.b.BanebladeScoundrel.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Baneblade Scoundrel", 85, Rarity.UNCOMMON, mage.cards.b.BanebladeScoundrel.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Baneblade Scoundrel", 85, Rarity.UNCOMMON, mage.cards.b.BanebladeScoundrel.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Baneclaw Marauder", 289, Rarity.UNCOMMON, mage.cards.b.BaneclawMarauder.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Baneclaw Marauder", 85, Rarity.UNCOMMON, mage.cards.b.BaneclawMarauder.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Bat Whisperer", 86, Rarity.COMMON, mage.cards.b.BatWhisperer.class));
|
cards.add(new SetCardInfo("Bat Whisperer", 86, Rarity.COMMON, mage.cards.b.BatWhisperer.class));
|
||||||
cards.add(new SetCardInfo("Beloved Beggar", 3, Rarity.UNCOMMON, mage.cards.b.BelovedBeggar.class));
|
cards.add(new SetCardInfo("Beloved Beggar", 3, Rarity.UNCOMMON, mage.cards.b.BelovedBeggar.class));
|
||||||
cards.add(new SetCardInfo("Benevolent Geist", 336, Rarity.RARE, mage.cards.b.BenevolentGeist.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Benevolent Geist", 336, Rarity.RARE, mage.cards.b.BenevolentGeist.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
@ -135,7 +133,6 @@ public final class InnistradMidnightHunt extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Curse of Silence", 326, Rarity.RARE, mage.cards.c.CurseOfSilence.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Curse of Silence", 326, Rarity.RARE, mage.cards.c.CurseOfSilence.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Curse of Surveillance", 334, Rarity.RARE, mage.cards.c.CurseOfSurveillance.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Curse of Surveillance", 334, Rarity.RARE, mage.cards.c.CurseOfSurveillance.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Curse of Surveillance", 46, Rarity.RARE, mage.cards.c.CurseOfSurveillance.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Curse of Surveillance", 46, Rarity.RARE, mage.cards.c.CurseOfSurveillance.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Dauntless Avenger", 4, Rarity.UNCOMMON, mage.cards.d.DauntlessAvenger.class));
|
|
||||||
cards.add(new SetCardInfo("Dawnhart Mentor", 179, Rarity.UNCOMMON, mage.cards.d.DawnhartMentor.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Dawnhart Mentor", 179, Rarity.UNCOMMON, mage.cards.d.DawnhartMentor.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Dawnhart Mentor", 300, Rarity.UNCOMMON, mage.cards.d.DawnhartMentor.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Dawnhart Mentor", 300, Rarity.UNCOMMON, mage.cards.d.DawnhartMentor.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Dawnhart Rejuvenator", 180, Rarity.COMMON, mage.cards.d.DawnhartRejuvenator.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Dawnhart Rejuvenator", 180, Rarity.COMMON, mage.cards.d.DawnhartRejuvenator.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
@ -158,8 +155,6 @@ public final class InnistradMidnightHunt extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Devoted Grafkeeper", 218, Rarity.UNCOMMON, mage.cards.d.DevotedGrafkeeper.class));
|
cards.add(new SetCardInfo("Devoted Grafkeeper", 218, Rarity.UNCOMMON, mage.cards.d.DevotedGrafkeeper.class));
|
||||||
cards.add(new SetCardInfo("Dire-Strain Brawler", 203, Rarity.COMMON, mage.cards.d.DireStrainBrawler.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Dire-Strain Brawler", 203, Rarity.COMMON, mage.cards.d.DireStrainBrawler.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Dire-Strain Brawler", 305, Rarity.COMMON, mage.cards.d.DireStrainBrawler.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Dire-Strain Brawler", 305, Rarity.COMMON, mage.cards.d.DireStrainBrawler.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Dire-Strain Demolisher", 174, Rarity.UNCOMMON, mage.cards.d.DireStrainDemolisher.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Dire-Strain Demolisher", 299, Rarity.UNCOMMON, mage.cards.d.DireStrainDemolisher.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Dire-Strain Rampage", 219, Rarity.RARE, mage.cards.d.DireStrainRampage.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Dire-Strain Rampage", 219, Rarity.RARE, mage.cards.d.DireStrainRampage.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Dire-Strain Rampage", 370, Rarity.RARE, mage.cards.d.DireStrainRampage.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Dire-Strain Rampage", 370, Rarity.RARE, mage.cards.d.DireStrainRampage.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Diregraf Horde", 96, Rarity.COMMON, mage.cards.d.DiregrafHorde.class));
|
cards.add(new SetCardInfo("Diregraf Horde", 96, Rarity.COMMON, mage.cards.d.DiregrafHorde.class));
|
||||||
|
|
@ -217,7 +212,6 @@ public final class InnistradMidnightHunt extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Geistflame Reservoir", 142, Rarity.RARE, mage.cards.g.GeistflameReservoir.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Geistflame Reservoir", 142, Rarity.RARE, mage.cards.g.GeistflameReservoir.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Geistflame Reservoir", 355, Rarity.RARE, mage.cards.g.GeistflameReservoir.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Geistflame Reservoir", 355, Rarity.RARE, mage.cards.g.GeistflameReservoir.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Geistwave", 56, Rarity.COMMON, mage.cards.g.Geistwave.class));
|
cards.add(new SetCardInfo("Geistwave", 56, Rarity.COMMON, mage.cards.g.Geistwave.class));
|
||||||
cards.add(new SetCardInfo("Generous Soul", 3, Rarity.UNCOMMON, mage.cards.g.GenerousSoul.class));
|
|
||||||
cards.add(new SetCardInfo("Ghostly Castigator", 45, Rarity.UNCOMMON, mage.cards.g.GhostlyCastigator.class));
|
cards.add(new SetCardInfo("Ghostly Castigator", 45, Rarity.UNCOMMON, mage.cards.g.GhostlyCastigator.class));
|
||||||
cards.add(new SetCardInfo("Ghoulcaller's Harvest", 225, Rarity.RARE, mage.cards.g.GhoulcallersHarvest.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Ghoulcaller's Harvest", 225, Rarity.RARE, mage.cards.g.GhoulcallersHarvest.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Ghoulcaller's Harvest", 372, Rarity.RARE, mage.cards.g.GhoulcallersHarvest.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Ghoulcaller's Harvest", 372, Rarity.RARE, mage.cards.g.GhoulcallersHarvest.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
@ -299,8 +293,6 @@ public final class InnistradMidnightHunt extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Memory Deluge", 337, Rarity.RARE, mage.cards.m.MemoryDeluge.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Memory Deluge", 337, Rarity.RARE, mage.cards.m.MemoryDeluge.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Memory Deluge", 62, Rarity.RARE, mage.cards.m.MemoryDeluge.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Memory Deluge", 62, Rarity.RARE, mage.cards.m.MemoryDeluge.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Might of the Old Ways", 189, Rarity.COMMON, mage.cards.m.MightOfTheOldWays.class));
|
cards.add(new SetCardInfo("Might of the Old Ways", 189, Rarity.COMMON, mage.cards.m.MightOfTheOldWays.class));
|
||||||
cards.add(new SetCardInfo("Moonrage Brute", 286, Rarity.RARE, mage.cards.m.MoonrageBrute.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Moonrage Brute", 7, Rarity.RARE, mage.cards.m.MoonrageBrute.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Moonrager's Slash", 148, Rarity.COMMON, mage.cards.m.MoonragersSlash.class));
|
cards.add(new SetCardInfo("Moonrager's Slash", 148, Rarity.COMMON, mage.cards.m.MoonragersSlash.class));
|
||||||
cards.add(new SetCardInfo("Moonsilver Key", 255, Rarity.UNCOMMON, mage.cards.m.MoonsilverKey.class));
|
cards.add(new SetCardInfo("Moonsilver Key", 255, Rarity.UNCOMMON, mage.cards.m.MoonsilverKey.class));
|
||||||
cards.add(new SetCardInfo("Moonveil Regent", 149, Rarity.MYTHIC, mage.cards.m.MoonveilRegent.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Moonveil Regent", 149, Rarity.MYTHIC, mage.cards.m.MoonveilRegent.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
@ -497,8 +489,6 @@ public final class InnistradMidnightHunt extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Wake to Slaughter", 376, Rarity.RARE, mage.cards.w.WakeToSlaughter.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Wake to Slaughter", 376, Rarity.RARE, mage.cards.w.WakeToSlaughter.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Willow Geist", 207, Rarity.RARE, mage.cards.w.WillowGeist.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Willow Geist", 207, Rarity.RARE, mage.cards.w.WillowGeist.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Willow Geist", 366, Rarity.RARE, mage.cards.w.WillowGeist.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Willow Geist", 366, Rarity.RARE, mage.cards.w.WillowGeist.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Wing Shredder", 169, Rarity.COMMON, mage.cards.w.WingShredder.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Wing Shredder", 298, Rarity.COMMON, mage.cards.w.WingShredder.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Winterthorn Blessing", 251, Rarity.UNCOMMON, mage.cards.w.WinterthornBlessing.class));
|
cards.add(new SetCardInfo("Winterthorn Blessing", 251, Rarity.UNCOMMON, mage.cards.w.WinterthornBlessing.class));
|
||||||
cards.add(new SetCardInfo("Wrenn and Seven", 208, Rarity.MYTHIC, mage.cards.w.WrennAndSeven.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Wrenn and Seven", 208, Rarity.MYTHIC, mage.cards.w.WrennAndSeven.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Wrenn and Seven", 278, Rarity.MYTHIC, mage.cards.w.WrennAndSeven.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Wrenn and Seven", 278, Rarity.MYTHIC, mage.cards.w.WrennAndSeven.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
|
||||||
|
|
@ -71,8 +71,6 @@ public class InnistradRemastered extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Bedlam Reveler", 312, Rarity.RARE, mage.cards.b.BedlamReveler.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bedlam Reveler", 312, Rarity.RARE, mage.cards.b.BedlamReveler.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Biolume Egg", 455, Rarity.UNCOMMON, mage.cards.b.BiolumeEgg.class, RETRO_ART_USE_VARIOUS));
|
cards.add(new SetCardInfo("Biolume Egg", 455, Rarity.UNCOMMON, mage.cards.b.BiolumeEgg.class, RETRO_ART_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Biolume Egg", 54, Rarity.UNCOMMON, mage.cards.b.BiolumeEgg.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Biolume Egg", 54, Rarity.UNCOMMON, mage.cards.b.BiolumeEgg.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Biolume Serpent", 455, Rarity.UNCOMMON, mage.cards.b.BiolumeSerpent.class, RETRO_ART_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Biolume Serpent", 54, Rarity.UNCOMMON, mage.cards.b.BiolumeSerpent.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Bladestitched Skaab", 231, Rarity.UNCOMMON, mage.cards.b.BladestitchedSkaab.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bladestitched Skaab", 231, Rarity.UNCOMMON, mage.cards.b.BladestitchedSkaab.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Bladestitched Skaab", 426, Rarity.UNCOMMON, mage.cards.b.BladestitchedSkaab.class, RETRO_ART_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bladestitched Skaab", 426, Rarity.UNCOMMON, mage.cards.b.BladestitchedSkaab.class, RETRO_ART_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Blazing Torch", 254, Rarity.COMMON, mage.cards.b.BlazingTorch.class));
|
cards.add(new SetCardInfo("Blazing Torch", 254, Rarity.COMMON, mage.cards.b.BlazingTorch.class));
|
||||||
|
|
@ -336,9 +334,6 @@ public class InnistradRemastered extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Lightning Mauler", 399, Rarity.UNCOMMON, mage.cards.l.LightningMauler.class,RETRO_ART_USE_VARIOUS));
|
cards.add(new SetCardInfo("Lightning Mauler", 399, Rarity.UNCOMMON, mage.cards.l.LightningMauler.class,RETRO_ART_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Liliana of the Veil", 475, Rarity.MYTHIC, mage.cards.l.LilianaOfTheVeil.class, RETRO_ART));
|
cards.add(new SetCardInfo("Liliana of the Veil", 475, Rarity.MYTHIC, mage.cards.l.LilianaOfTheVeil.class, RETRO_ART));
|
||||||
cards.add(new SetCardInfo("Lingering Souls", 30, Rarity.UNCOMMON, mage.cards.l.LingeringSouls.class));
|
cards.add(new SetCardInfo("Lingering Souls", 30, Rarity.UNCOMMON, mage.cards.l.LingeringSouls.class));
|
||||||
cards.add(new SetCardInfo("Lord of Lineage", 327, Rarity.MYTHIC, mage.cards.l.LordOfLineage.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Lord of Lineage", 461, Rarity.MYTHIC, mage.cards.l.LordOfLineage.class, RETRO_ART_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Lord of Lineage", 98, Rarity.MYTHIC, mage.cards.l.LordOfLineage.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Lumberknot", 206, Rarity.UNCOMMON, mage.cards.l.Lumberknot.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Lumberknot", 206, Rarity.UNCOMMON, mage.cards.l.Lumberknot.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Lumberknot", 414, Rarity.UNCOMMON, mage.cards.l.Lumberknot.class, RETRO_ART_USE_VARIOUS));
|
cards.add(new SetCardInfo("Lumberknot", 414, Rarity.UNCOMMON, mage.cards.l.Lumberknot.class, RETRO_ART_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Luminous Phantom", 32, Rarity.COMMON, mage.cards.l.LuminousPhantom.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Luminous Phantom", 32, Rarity.COMMON, mage.cards.l.LuminousPhantom.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,6 @@ public final class KamigawaNeonDynasty extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Boseiju, Who Endures", 266, Rarity.RARE, mage.cards.b.BoseijuWhoEndures.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Boseiju, Who Endures", 266, Rarity.RARE, mage.cards.b.BoseijuWhoEndures.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Boseiju, Who Endures", 412, Rarity.RARE, mage.cards.b.BoseijuWhoEndures.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Boseiju, Who Endures", 412, Rarity.RARE, mage.cards.b.BoseijuWhoEndures.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Boseiju, Who Endures", 501, Rarity.RARE, mage.cards.b.BoseijuWhoEndures.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Boseiju, Who Endures", 501, Rarity.RARE, mage.cards.b.BoseijuWhoEndures.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Branch of Boseiju", 177, Rarity.UNCOMMON, mage.cards.b.BranchOfBoseiju.class));
|
|
||||||
cards.add(new SetCardInfo("Brilliant Restoration", 363, Rarity.RARE, mage.cards.b.BrilliantRestoration.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Brilliant Restoration", 363, Rarity.RARE, mage.cards.b.BrilliantRestoration.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Brilliant Restoration", 434, Rarity.RARE, mage.cards.b.BrilliantRestoration.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Brilliant Restoration", 434, Rarity.RARE, mage.cards.b.BrilliantRestoration.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Brilliant Restoration", 7, Rarity.RARE, mage.cards.b.BrilliantRestoration.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Brilliant Restoration", 7, Rarity.RARE, mage.cards.b.BrilliantRestoration.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
@ -215,7 +214,6 @@ public final class KamigawaNeonDynasty extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Hinata, Dawn-Crowned", 487, Rarity.RARE, mage.cards.h.HinataDawnCrowned.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Hinata, Dawn-Crowned", 487, Rarity.RARE, mage.cards.h.HinataDawnCrowned.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Historian's Wisdom", 192, Rarity.UNCOMMON, mage.cards.h.HistoriansWisdom.class));
|
cards.add(new SetCardInfo("Historian's Wisdom", 192, Rarity.UNCOMMON, mage.cards.h.HistoriansWisdom.class));
|
||||||
cards.add(new SetCardInfo("Hotshot Mechanic", 16, Rarity.UNCOMMON, mage.cards.h.HotshotMechanic.class));
|
cards.add(new SetCardInfo("Hotshot Mechanic", 16, Rarity.UNCOMMON, mage.cards.h.HotshotMechanic.class));
|
||||||
cards.add(new SetCardInfo("Imperial Moth", 4, Rarity.COMMON, mage.cards.i.ImperialMoth.class));
|
|
||||||
cards.add(new SetCardInfo("Imperial Oath", 17, Rarity.COMMON, mage.cards.i.ImperialOath.class));
|
cards.add(new SetCardInfo("Imperial Oath", 17, Rarity.COMMON, mage.cards.i.ImperialOath.class));
|
||||||
cards.add(new SetCardInfo("Imperial Recovery Unit", 18, Rarity.UNCOMMON, mage.cards.i.ImperialRecoveryUnit.class));
|
cards.add(new SetCardInfo("Imperial Recovery Unit", 18, Rarity.UNCOMMON, mage.cards.i.ImperialRecoveryUnit.class));
|
||||||
cards.add(new SetCardInfo("Imperial Subduer", 19, Rarity.COMMON, mage.cards.i.ImperialSubduer.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Imperial Subduer", 19, Rarity.COMMON, mage.cards.i.ImperialSubduer.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
@ -581,7 +579,6 @@ public final class KamigawaNeonDynasty extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Vessel of the All-Consuming", 361, Rarity.MYTHIC, mage.cards.v.VesselOfTheAllConsuming.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Vessel of the All-Consuming", 361, Rarity.MYTHIC, mage.cards.v.VesselOfTheAllConsuming.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Vessel of the All-Consuming", 486, Rarity.MYTHIC, mage.cards.v.VesselOfTheAllConsuming.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Vessel of the All-Consuming", 486, Rarity.MYTHIC, mage.cards.v.VesselOfTheAllConsuming.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Virus Beetle", 128, Rarity.COMMON, mage.cards.v.VirusBeetle.class));
|
cards.add(new SetCardInfo("Virus Beetle", 128, Rarity.COMMON, mage.cards.v.VirusBeetle.class));
|
||||||
cards.add(new SetCardInfo("Vision of the Unspeakable", 48, Rarity.UNCOMMON, mage.cards.v.VisionOfTheUnspeakable.class));
|
|
||||||
cards.add(new SetCardInfo("Voltage Surge", 171, Rarity.COMMON, mage.cards.v.VoltageSurge.class));
|
cards.add(new SetCardInfo("Voltage Surge", 171, Rarity.COMMON, mage.cards.v.VoltageSurge.class));
|
||||||
cards.add(new SetCardInfo("Walking Skyscraper", 263, Rarity.UNCOMMON, mage.cards.w.WalkingSkyscraper.class));
|
cards.add(new SetCardInfo("Walking Skyscraper", 263, Rarity.UNCOMMON, mage.cards.w.WalkingSkyscraper.class));
|
||||||
cards.add(new SetCardInfo("Wanderer's Intervention", 41, Rarity.COMMON, mage.cards.w.WanderersIntervention.class));
|
cards.add(new SetCardInfo("Wanderer's Intervention", 41, Rarity.COMMON, mage.cards.w.WanderersIntervention.class));
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,6 @@ public final class MarchOfTheMachine extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Bladed Battle-Fan", 91, Rarity.COMMON, mage.cards.b.BladedBattleFan.class));
|
cards.add(new SetCardInfo("Bladed Battle-Fan", 91, Rarity.COMMON, mage.cards.b.BladedBattleFan.class));
|
||||||
cards.add(new SetCardInfo("Blighted Burgeoning", 177, Rarity.COMMON, mage.cards.b.BlightedBurgeoning.class));
|
cards.add(new SetCardInfo("Blighted Burgeoning", 177, Rarity.COMMON, mage.cards.b.BlightedBurgeoning.class));
|
||||||
cards.add(new SetCardInfo("Blightreaper Thallid", 92, Rarity.UNCOMMON, mage.cards.b.BlightreaperThallid.class));
|
cards.add(new SetCardInfo("Blightreaper Thallid", 92, Rarity.UNCOMMON, mage.cards.b.BlightreaperThallid.class));
|
||||||
cards.add(new SetCardInfo("Blightsower Thallid", 92, Rarity.UNCOMMON, mage.cards.b.BlightsowerThallid.class));
|
|
||||||
cards.add(new SetCardInfo("Bloated Processor", 357, Rarity.RARE, mage.cards.b.BloatedProcessor.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bloated Processor", 357, Rarity.RARE, mage.cards.b.BloatedProcessor.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Bloated Processor", 93, Rarity.RARE, mage.cards.b.BloatedProcessor.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bloated Processor", 93, Rarity.RARE, mage.cards.b.BloatedProcessor.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Bloodfeather Phoenix", 132, Rarity.RARE, mage.cards.b.BloodfeatherPhoenix.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bloodfeather Phoenix", 132, Rarity.RARE, mage.cards.b.BloodfeatherPhoenix.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
@ -335,7 +334,6 @@ public final class MarchOfTheMachine extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Plains", 277, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Plains", 277, Rarity.LAND, mage.cards.basiclands.Plains.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Plains", 282, Rarity.LAND, mage.cards.basiclands.Plains.class, FULL_ART_BFZ_VARIOUS));
|
cards.add(new SetCardInfo("Plains", 282, Rarity.LAND, mage.cards.basiclands.Plains.class, FULL_ART_BFZ_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Plains", 283, Rarity.LAND, mage.cards.basiclands.Plains.class, FULL_ART_BFZ_VARIOUS));
|
cards.add(new SetCardInfo("Plains", 283, Rarity.LAND, mage.cards.basiclands.Plains.class, FULL_ART_BFZ_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Plated Kilnbeast", 178, Rarity.COMMON, mage.cards.p.PlatedKilnbeast.class));
|
|
||||||
cards.add(new SetCardInfo("Polukranos Reborn", 200, Rarity.RARE, mage.cards.p.PolukranosReborn.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Polukranos Reborn", 200, Rarity.RARE, mage.cards.p.PolukranosReborn.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Polukranos Reborn", 300, Rarity.RARE, mage.cards.p.PolukranosReborn.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Polukranos Reborn", 300, Rarity.RARE, mage.cards.p.PolukranosReborn.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Polukranos, Engine of Ruin", 200, Rarity.RARE, mage.cards.p.PolukranosEngineOfRuin.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Polukranos, Engine of Ruin", 200, Rarity.RARE, mage.cards.p.PolukranosEngineOfRuin.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
|
||||||
|
|
@ -1062,7 +1062,6 @@ public class SecretLairDrop extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Esika, God of the Tree", 1155, Rarity.MYTHIC, mage.cards.e.EsikaGodOfTheTree.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Esika, God of the Tree", 1155, Rarity.MYTHIC, mage.cards.e.EsikaGodOfTheTree.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Archangel Avacyn", 1156, Rarity.MYTHIC, mage.cards.a.ArchangelAvacyn.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Archangel Avacyn", 1156, Rarity.MYTHIC, mage.cards.a.ArchangelAvacyn.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Bloodline Keeper", 1157, Rarity.RARE, mage.cards.b.BloodlineKeeper.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bloodline Keeper", 1157, Rarity.RARE, mage.cards.b.BloodlineKeeper.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Lord of Lineage", 1157, Rarity.RARE, mage.cards.l.LordOfLineage.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Nicol Bolas, the Ravager", 1158, Rarity.MYTHIC, mage.cards.n.NicolBolasTheRavager.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Nicol Bolas, the Ravager", 1158, Rarity.MYTHIC, mage.cards.n.NicolBolasTheRavager.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Nicol Bolas, the Arisen", 1158, Rarity.MYTHIC, mage.cards.n.NicolBolasTheArisen.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Nicol Bolas, the Arisen", 1158, Rarity.MYTHIC, mage.cards.n.NicolBolasTheArisen.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Westvale Abbey", 1159, Rarity.RARE, mage.cards.w.WestvaleAbbey.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Westvale Abbey", 1159, Rarity.RARE, mage.cards.w.WestvaleAbbey.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
@ -1118,7 +1117,6 @@ public class SecretLairDrop extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Esika, God of the Tree", 1208, Rarity.MYTHIC, mage.cards.e.EsikaGodOfTheTree.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Esika, God of the Tree", 1208, Rarity.MYTHIC, mage.cards.e.EsikaGodOfTheTree.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Archangel Avacyn", 1209, Rarity.MYTHIC, mage.cards.a.ArchangelAvacyn.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Archangel Avacyn", 1209, Rarity.MYTHIC, mage.cards.a.ArchangelAvacyn.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Bloodline Keeper", 1210, Rarity.RARE, mage.cards.b.BloodlineKeeper.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Bloodline Keeper", 1210, Rarity.RARE, mage.cards.b.BloodlineKeeper.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Lord of Lineage", 1210, Rarity.RARE, mage.cards.l.LordOfLineage.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Nicol Bolas, the Ravager", 1211, Rarity.MYTHIC, mage.cards.n.NicolBolasTheRavager.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Nicol Bolas, the Ravager", 1211, Rarity.MYTHIC, mage.cards.n.NicolBolasTheRavager.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Nicol Bolas, the Arisen", 1211, Rarity.MYTHIC, mage.cards.n.NicolBolasTheArisen.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Nicol Bolas, the Arisen", 1211, Rarity.MYTHIC, mage.cards.n.NicolBolasTheArisen.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Westvale Abbey", 1212, Rarity.RARE, mage.cards.w.WestvaleAbbey.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Westvale Abbey", 1212, Rarity.RARE, mage.cards.w.WestvaleAbbey.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,6 @@ public class ShadowsOfThePast extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Invisible Stalker", 17, Rarity.UNCOMMON, mage.cards.i.InvisibleStalker.class));
|
cards.add(new SetCardInfo("Invisible Stalker", 17, Rarity.UNCOMMON, mage.cards.i.InvisibleStalker.class));
|
||||||
cards.add(new SetCardInfo("Kruin Outlaw", 42, Rarity.RARE, mage.cards.k.KruinOutlaw.class));
|
cards.add(new SetCardInfo("Kruin Outlaw", 42, Rarity.RARE, mage.cards.k.KruinOutlaw.class));
|
||||||
cards.add(new SetCardInfo("Lingering Souls", 9, Rarity.UNCOMMON, mage.cards.l.LingeringSouls.class));
|
cards.add(new SetCardInfo("Lingering Souls", 9, Rarity.UNCOMMON, mage.cards.l.LingeringSouls.class));
|
||||||
cards.add(new SetCardInfo("Lord of Lineage", 27, Rarity.MYTHIC, mage.cards.l.LordOfLineage.class));
|
|
||||||
cards.add(new SetCardInfo("Mayor of Avabruck", 53, Rarity.RARE, mage.cards.m.MayorOfAvabruck.class));
|
cards.add(new SetCardInfo("Mayor of Avabruck", 53, Rarity.RARE, mage.cards.m.MayorOfAvabruck.class));
|
||||||
cards.add(new SetCardInfo("Mist Raven", 18, Rarity.COMMON, mage.cards.m.MistRaven.class));
|
cards.add(new SetCardInfo("Mist Raven", 18, Rarity.COMMON, mage.cards.m.MistRaven.class));
|
||||||
cards.add(new SetCardInfo("Moonmist", 54, Rarity.COMMON, mage.cards.m.Moonmist.class));
|
cards.add(new SetCardInfo("Moonmist", 54, Rarity.COMMON, mage.cards.m.Moonmist.class));
|
||||||
|
|
|
||||||
|
|
@ -222,7 +222,6 @@ public final class ShadowsOverInnistrad extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Nahiri's Machinations", 28, Rarity.UNCOMMON, mage.cards.n.NahirisMachinations.class));
|
cards.add(new SetCardInfo("Nahiri's Machinations", 28, Rarity.UNCOMMON, mage.cards.n.NahirisMachinations.class));
|
||||||
cards.add(new SetCardInfo("Nahiri, the Harbinger", 247, Rarity.MYTHIC, mage.cards.n.NahiriTheHarbinger.class));
|
cards.add(new SetCardInfo("Nahiri, the Harbinger", 247, Rarity.MYTHIC, mage.cards.n.NahiriTheHarbinger.class));
|
||||||
cards.add(new SetCardInfo("Nearheath Chaplain", 29, Rarity.UNCOMMON, mage.cards.n.NearheathChaplain.class));
|
cards.add(new SetCardInfo("Nearheath Chaplain", 29, Rarity.UNCOMMON, mage.cards.n.NearheathChaplain.class));
|
||||||
cards.add(new SetCardInfo("Neck Breaker", 147, Rarity.UNCOMMON, mage.cards.n.NeckBreaker.class));
|
|
||||||
cards.add(new SetCardInfo("Neglected Heirloom", 260, Rarity.UNCOMMON, mage.cards.n.NeglectedHeirloom.class));
|
cards.add(new SetCardInfo("Neglected Heirloom", 260, Rarity.UNCOMMON, mage.cards.n.NeglectedHeirloom.class));
|
||||||
cards.add(new SetCardInfo("Nephalia Moondrakes", 75, Rarity.RARE, mage.cards.n.NephaliaMoondrakes.class));
|
cards.add(new SetCardInfo("Nephalia Moondrakes", 75, Rarity.RARE, mage.cards.n.NephaliaMoondrakes.class));
|
||||||
cards.add(new SetCardInfo("Niblis of Dusk", 76, Rarity.COMMON, mage.cards.n.NiblisOfDusk.class));
|
cards.add(new SetCardInfo("Niblis of Dusk", 76, Rarity.COMMON, mage.cards.n.NiblisOfDusk.class));
|
||||||
|
|
|
||||||
|
|
@ -82,8 +82,6 @@ public final class TheLostCavernsOfIxalan extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Brackish Blunder", 46, Rarity.COMMON, mage.cards.b.BrackishBlunder.class));
|
cards.add(new SetCardInfo("Brackish Blunder", 46, Rarity.COMMON, mage.cards.b.BrackishBlunder.class));
|
||||||
cards.add(new SetCardInfo("Braided Net", 360, Rarity.RARE, mage.cards.b.BraidedNet.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Braided Net", 360, Rarity.RARE, mage.cards.b.BraidedNet.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Braided Net", 47, Rarity.RARE, mage.cards.b.BraidedNet.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Braided Net", 47, Rarity.RARE, mage.cards.b.BraidedNet.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Braided Quipu", 360, Rarity.RARE, mage.cards.b.BraidedQuipu.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Braided Quipu", 47, Rarity.RARE, mage.cards.b.BraidedQuipu.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Brass's Tunnel-Grinder", 135, Rarity.RARE, mage.cards.b.BrasssTunnelGrinder.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Brass's Tunnel-Grinder", 135, Rarity.RARE, mage.cards.b.BrasssTunnelGrinder.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Brass's Tunnel-Grinder", 373, Rarity.RARE, mage.cards.b.BrasssTunnelGrinder.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Brass's Tunnel-Grinder", 373, Rarity.RARE, mage.cards.b.BrasssTunnelGrinder.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Brazen Blademaster", 136, Rarity.COMMON, mage.cards.b.BrazenBlademaster.class));
|
cards.add(new SetCardInfo("Brazen Blademaster", 136, Rarity.COMMON, mage.cards.b.BrazenBlademaster.class));
|
||||||
|
|
@ -422,8 +420,6 @@ public final class TheLostCavernsOfIxalan extends ExpansionSet {
|
||||||
cards.add(new SetCardInfo("Tarrian's Soulcleaver", 264, Rarity.RARE, mage.cards.t.TarriansSoulcleaver.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Tarrian's Soulcleaver", 264, Rarity.RARE, mage.cards.t.TarriansSoulcleaver.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Tarrian's Soulcleaver", 389, Rarity.RARE, mage.cards.t.TarriansSoulcleaver.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Tarrian's Soulcleaver", 389, Rarity.RARE, mage.cards.t.TarriansSoulcleaver.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Tectonic Hazard", 169, Rarity.COMMON, mage.cards.t.TectonicHazard.class));
|
cards.add(new SetCardInfo("Tectonic Hazard", 169, Rarity.COMMON, mage.cards.t.TectonicHazard.class));
|
||||||
cards.add(new SetCardInfo("Tecutlan, the Searing Rift", 135, Rarity.RARE, mage.cards.t.TecutlanTheSearingRift.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Tecutlan, the Searing Rift", 373, Rarity.RARE, mage.cards.t.TecutlanTheSearingRift.class, NON_FULL_USE_VARIOUS));
|
|
||||||
cards.add(new SetCardInfo("Temple of Civilization", 26, Rarity.MYTHIC, mage.cards.t.TempleOfCivilization.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Temple of Civilization", 26, Rarity.MYTHIC, mage.cards.t.TempleOfCivilization.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Temple of Civilization", 314, Rarity.MYTHIC, mage.cards.t.TempleOfCivilization.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Temple of Civilization", 314, Rarity.MYTHIC, mage.cards.t.TempleOfCivilization.class, NON_FULL_USE_VARIOUS));
|
||||||
cards.add(new SetCardInfo("Temple of Cultivation", 204, Rarity.MYTHIC, mage.cards.t.TempleOfCultivation.class, NON_FULL_USE_VARIOUS));
|
cards.add(new SetCardInfo("Temple of Cultivation", 204, Rarity.MYTHIC, mage.cards.t.TempleOfCultivation.class, NON_FULL_USE_VARIOUS));
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ public final class Transformers extends ExpansionSet {
|
||||||
this.hasBasicLands = false;
|
this.hasBasicLands = false;
|
||||||
|
|
||||||
cards.add(new SetCardInfo("Arcee, Sharpshooter", 7, Rarity.MYTHIC, mage.cards.a.ArceeSharpshooter.class));
|
cards.add(new SetCardInfo("Arcee, Sharpshooter", 7, Rarity.MYTHIC, mage.cards.a.ArceeSharpshooter.class));
|
||||||
cards.add(new SetCardInfo("Blitzwing, Adaptive Assailant", 4, Rarity.MYTHIC, mage.cards.b.BlitzwingAdaptiveAssailant.class));
|
|
||||||
cards.add(new SetCardInfo("Blitzwing, Cruel Tormentor", 4, Rarity.MYTHIC, mage.cards.b.BlitzwingCruelTormentor.class));
|
cards.add(new SetCardInfo("Blitzwing, Cruel Tormentor", 4, Rarity.MYTHIC, mage.cards.b.BlitzwingCruelTormentor.class));
|
||||||
cards.add(new SetCardInfo("Cyclonus, Cybertronian Fighter", 9, Rarity.MYTHIC, mage.cards.c.CyclonusCybertronianFighter.class));
|
cards.add(new SetCardInfo("Cyclonus, Cybertronian Fighter", 9, Rarity.MYTHIC, mage.cards.c.CyclonusCybertronianFighter.class));
|
||||||
cards.add(new SetCardInfo("Cyclonus, the Saboteur", 9, Rarity.MYTHIC, mage.cards.c.CyclonusTheSaboteur.class));
|
cards.add(new SetCardInfo("Cyclonus, the Saboteur", 9, Rarity.MYTHIC, mage.cards.c.CyclonusTheSaboteur.class));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue