diff --git a/Mage.Sets/src/mage/cards/a/AshmouthBlade.java b/Mage.Sets/src/mage/cards/a/AshmouthBlade.java deleted file mode 100644 index 4fe8866988e..00000000000 --- a/Mage.Sets/src/mage/cards/a/AshmouthBlade.java +++ /dev/null @@ -1,48 +0,0 @@ -package mage.cards.a; - -import mage.abilities.Ability; -import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.common.continuous.BoostEquippedEffect; -import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; -import mage.abilities.keyword.EquipAbility; -import mage.abilities.keyword.FirstStrikeAbility; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.constants.AttachmentType; -import mage.constants.CardType; -import mage.constants.SubType; - -import java.util.UUID; - -/** - * @author fireshoes - */ -public final class AshmouthBlade extends CardImpl { - - public AshmouthBlade(UUID ownerId, CardSetInfo setInfo) { - super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, ""); - this.subtype.add(SubType.EQUIPMENT); - - // this card is the second face of double-faced card - this.nightCard = true; - - // Equipped creature gets +3/+3 and has first strike. - Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(3, 3)); - ability.addEffect(new GainAbilityAttachedEffect( - FirstStrikeAbility.getInstance(), AttachmentType.EQUIPMENT - ).setText("and has first strike")); - this.addAbility(ability); - - // Equip {3} - this.addAbility(new EquipAbility(3, false)); - } - - private AshmouthBlade(final AshmouthBlade card) { - super(card); - } - - @Override - public AshmouthBlade copy() { - return new AshmouthBlade(this); - } -} diff --git a/Mage.Sets/src/mage/cards/h/HideousFleshwheeler.java b/Mage.Sets/src/mage/cards/h/HideousFleshwheeler.java deleted file mode 100644 index f7b1017e7d3..00000000000 --- a/Mage.Sets/src/mage/cards/h/HideousFleshwheeler.java +++ /dev/null @@ -1,60 +0,0 @@ -package mage.cards.h; - -import mage.MageInt; -import mage.abilities.Ability; -import mage.abilities.common.TransformIntoSourceTriggeredAbility; -import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; -import mage.abilities.keyword.MenaceAbility; -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.FilterPermanentCard; -import mage.filter.predicate.mageobject.ManaValuePredicate; -import mage.target.common.TargetCardInGraveyard; - -import java.util.UUID; - -/** - * @author TheElk801 - */ -public final class HideousFleshwheeler extends CardImpl { - - private static final FilterCard filter - = new FilterPermanentCard("permanent card with mana value 2 or less from a graveyard"); - - static { - filter.add(new ManaValuePredicate(ComparisonType.FEWER_THAN, 3)); - } - - public HideousFleshwheeler(UUID ownerId, CardSetInfo setInfo) { - super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, ""); - - this.subtype.add(SubType.PHYREXIAN); - this.subtype.add(SubType.RAT); - this.power = new MageInt(4); - this.toughness = new MageInt(5); - this.color.setWhite(true); - this.color.setBlack(true); - this.nightCard = true; - - // Menace - this.addAbility(new MenaceAbility()); - - // When this creature transforms into Hideous FleshwheelerHideous Fleshwheeler, put target permanent card with mana value 2 or less from a graveyard onto the battlefield under your control. - Ability ability = new TransformIntoSourceTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect()); - ability.addTarget(new TargetCardInGraveyard(filter)); - this.addAbility(ability); - } - - private HideousFleshwheeler(final HideousFleshwheeler card) { - super(card); - } - - @Override - public HideousFleshwheeler copy() { - return new HideousFleshwheeler(this); - } -} diff --git a/Mage.Sets/src/mage/cards/n/NeglectedHeirloom.java b/Mage.Sets/src/mage/cards/n/NeglectedHeirloom.java index 9fa4c5d6e11..12f0e7564f6 100644 --- a/Mage.Sets/src/mage/cards/n/NeglectedHeirloom.java +++ b/Mage.Sets/src/mage/cards/n/NeglectedHeirloom.java @@ -1,13 +1,16 @@ package mage.cards.n; +import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.effects.common.continuous.BoostEquippedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EquipAbility; -import mage.abilities.keyword.TransformAbility; -import mage.cards.CardImpl; +import mage.abilities.keyword.FirstStrikeAbility; import mage.cards.CardSetInfo; +import mage.cards.TransformingDoubleFacedCard; +import mage.constants.AttachmentType; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Zone; @@ -21,23 +24,35 @@ import java.util.UUID; /** * @author halljared */ -public final class NeglectedHeirloom extends CardImpl { +public final class NeglectedHeirloom extends TransformingDoubleFacedCard { public NeglectedHeirloom(UUID ownerId, CardSetInfo setInfo) { - super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}"); - this.subtype.add(SubType.EQUIPMENT); - - this.secondSideCardClazz = mage.cards.a.AshmouthBlade.class; + super(ownerId, setInfo, + new CardType[]{CardType.ARTIFACT}, new SubType[]{SubType.EQUIPMENT}, "{1}", + "Ashmouth Blade", + new CardType[]{CardType.ARTIFACT}, new SubType[]{SubType.EQUIPMENT}, "" + ); // Equipped creature gets +1/+1. - this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(1, 1))); + this.getLeftHalfCard().addAbility(new SimpleStaticAbility(new BoostEquippedEffect(1, 1))); // When equipped creature transforms, transform Neglected Heirloom. - this.addAbility(new TransformAbility()); - this.addAbility(new NeglectedHeirloomTriggeredAbility()); + this.getLeftHalfCard().addAbility(new NeglectedHeirloomTriggeredAbility()); // Equip {1} - this.addAbility(new EquipAbility(1, false)); + this.getLeftHalfCard().addAbility(new EquipAbility(1, false)); + + // Ashmouth Blade + + // Equipped creature gets +3/+3 and has first strike. + Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(3, 3)); + ability.addEffect(new GainAbilityAttachedEffect( + FirstStrikeAbility.getInstance(), AttachmentType.EQUIPMENT + ).setText("and has first strike")); + this.getRightHalfCard().addAbility(ability); + + // Equip {3} + this.getRightHalfCard().addAbility(new EquipAbility(3, false)); } private NeglectedHeirloom(final NeglectedHeirloom card) { diff --git a/Mage.Sets/src/mage/cards/n/NezumiFreewheeler.java b/Mage.Sets/src/mage/cards/n/NezumiFreewheeler.java index 1c1a0cd081d..3b8b4570297 100644 --- a/Mage.Sets/src/mage/cards/n/NezumiFreewheeler.java +++ b/Mage.Sets/src/mage/cards/n/NezumiFreewheeler.java @@ -1,44 +1,68 @@ package mage.cards.n; -import mage.MageInt; +import mage.abilities.Ability; import mage.abilities.common.ActivateAsSorceryActivatedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.TransformIntoSourceTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.common.MillCardsEachPlayerEffect; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.effects.common.TransformSourceEffect; import mage.abilities.keyword.MenaceAbility; -import mage.abilities.keyword.TransformAbility; -import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.TransformingDoubleFacedCard; import mage.constants.CardType; +import mage.constants.ComparisonType; import mage.constants.SubType; import mage.constants.TargetController; +import mage.filter.FilterCard; +import mage.filter.common.FilterPermanentCard; +import mage.filter.predicate.mageobject.ManaValuePredicate; +import mage.target.common.TargetCardInGraveyard; import java.util.UUID; /** * @author TheElk801 */ -public final class NezumiFreewheeler extends CardImpl { +public final class NezumiFreewheeler extends TransformingDoubleFacedCard { + + private static final FilterCard filter + = new FilterPermanentCard("permanent card with mana value 2 or less from a graveyard"); + + static { + filter.add(new ManaValuePredicate(ComparisonType.FEWER_THAN, 3)); + } public NezumiFreewheeler(UUID ownerId, CardSetInfo setInfo) { - super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); + super(ownerId, setInfo, + new CardType[]{CardType.CREATURE}, new SubType[]{SubType.RAT, SubType.SAMURAI}, "{3}{B}", + "Hideous Fleshwheeler", + new CardType[]{CardType.CREATURE}, new SubType[]{SubType.PHYREXIAN, SubType.RAT}, "WB" + ); - this.subtype.add(SubType.RAT); - this.subtype.add(SubType.SAMURAI); - this.power = new MageInt(3); - this.toughness = new MageInt(3); - this.secondSideCardClazz = mage.cards.h.HideousFleshwheeler.class; + // Nezumi Freewheeler + this.getLeftHalfCard().setPT(3, 3); // Menace - this.addAbility(new MenaceAbility(false)); + this.getLeftHalfCard().addAbility(new MenaceAbility(false)); // When Nezumi Freewheeler enters the battlefield, each player mills three cards. - this.addAbility(new EntersBattlefieldTriggeredAbility(new MillCardsEachPlayerEffect(3, TargetController.EACH_PLAYER))); + this.getLeftHalfCard().addAbility(new EntersBattlefieldTriggeredAbility(new MillCardsEachPlayerEffect(3, TargetController.EACH_PLAYER))); // {5}{W/P}: Transform Nezumi Freewheeler. Activate only as a sorcery. - this.addAbility(new TransformAbility()); - this.addAbility(new ActivateAsSorceryActivatedAbility(new TransformSourceEffect(), new ManaCostsImpl<>("{5}{W/P}"))); + this.getLeftHalfCard().addAbility(new ActivateAsSorceryActivatedAbility(new TransformSourceEffect(), new ManaCostsImpl<>("{5}{W/P}"))); + + // Hideous Fleshwheeler + this.getRightHalfCard().setPT(4, 5); + + // Menace + this.getRightHalfCard().addAbility(new MenaceAbility()); + + // When this creature transforms into Hideous Fleshwheeler, Hideous Fleshwheeler, put target permanent card with mana value 2 or less from a graveyard onto the battlefield under your control. + Ability ability = new TransformIntoSourceTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect()); + ability.addTarget(new TargetCardInGraveyard(filter)); + this.getRightHalfCard().addAbility(ability); } private NezumiFreewheeler(final NezumiFreewheeler card) { diff --git a/Mage.Sets/src/mage/cards/n/NicolBolasTheArisen.java b/Mage.Sets/src/mage/cards/n/NicolBolasTheArisen.java deleted file mode 100644 index 48b0c44bf0b..00000000000 --- a/Mage.Sets/src/mage/cards/n/NicolBolasTheArisen.java +++ /dev/null @@ -1,107 +0,0 @@ -package mage.cards.n; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.LoyaltyAbility; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.DamageTargetEffect; -import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; -import mage.constants.SubType; -import mage.constants.SuperType; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Zone; -import mage.filter.FilterCard; -import mage.filter.predicate.Predicates; -import mage.game.Game; -import mage.players.Player; -import mage.target.TargetPlayer; -import mage.target.common.TargetCardInGraveyard; -import mage.target.common.TargetCreatureOrPlaneswalker; - -/** - * - * @author TheElk801 - */ -public final class NicolBolasTheArisen extends CardImpl { - - private static final FilterCard filter = new FilterCard("creature or planeswalker card from a graveyard"); - - static { - filter.add(Predicates.or( - CardType.CREATURE.getPredicate(), - CardType.PLANESWALKER.getPredicate() - )); - } - - public NicolBolasTheArisen(UUID ownerId, CardSetInfo setInfo) { - super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, ""); - - this.supertype.add(SuperType.LEGENDARY); - this.subtype.add(SubType.BOLAS); - - this.color.setBlue(true); - this.color.setBlack(true); - this.color.setRed(true); - this.nightCard = true; - - this.setStartingLoyalty(7); - - // +2: Draw two cards. - this.addAbility(new LoyaltyAbility(new DrawCardSourceControllerEffect(2), 2)); - - // −3: Nicol Bolas, the Arisen deals 10 damage to target creature or planeswalker. - Ability ability = new LoyaltyAbility(new DamageTargetEffect(10), -3); - ability.addTarget(new TargetCreatureOrPlaneswalker()); - this.addAbility(ability); - - // −4: Put target creature or planeswalker card from a graveyard onto the battlefield under your control. - ability = new LoyaltyAbility(new ReturnFromGraveyardToBattlefieldTargetEffect(), -4); - ability.addTarget(new TargetCardInGraveyard(filter)); - this.addAbility(ability); - - // −12: Exile all but the bottom card of target player's library. - ability = new LoyaltyAbility(new NicolBolasTheArisenEffect(), -12); - ability.addTarget(new TargetPlayer()); - this.addAbility(ability); - } - - private NicolBolasTheArisen(final NicolBolasTheArisen card) { - super(card); - } - - @Override - public NicolBolasTheArisen copy() { - return new NicolBolasTheArisen(this); - } -} - -class NicolBolasTheArisenEffect extends OneShotEffect { - - NicolBolasTheArisenEffect() { - super(Outcome.Benefit); - this.staticText = "Exile all but the bottom card of target player's library."; - } - - private NicolBolasTheArisenEffect(final NicolBolasTheArisenEffect effect) { - super(effect); - } - - @Override - public NicolBolasTheArisenEffect copy() { - return new NicolBolasTheArisenEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player targetPlayer = game.getPlayer(source.getFirstTarget()); - Player controller = game.getPlayer(source.getControllerId()); - if (targetPlayer == null || controller == null) { - return false; - } - return controller.moveCards(targetPlayer.getLibrary().getTopCards(game, targetPlayer.getLibrary().size() - 1), Zone.EXILED, source, game); - } -} diff --git a/Mage.Sets/src/mage/cards/n/NicolBolasTheRavager.java b/Mage.Sets/src/mage/cards/n/NicolBolasTheRavager.java index 9d63d936ede..100a81578e7 100644 --- a/Mage.Sets/src/mage/cards/n/NicolBolasTheRavager.java +++ b/Mage.Sets/src/mage/cards/n/NicolBolasTheRavager.java @@ -1,50 +1,89 @@ package mage.cards.n; -import java.util.UUID; -import mage.MageInt; -import mage.constants.Pronoun; +import mage.abilities.Ability; +import mage.abilities.LoyaltyAbility; import mage.abilities.common.ActivateAsSorceryActivatedAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.ExileAndReturnSourceEffect; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; -import mage.constants.*; import mage.abilities.keyword.FlyingAbility; -import mage.abilities.keyword.TransformAbility; -import mage.cards.CardImpl; import mage.cards.CardSetInfo; +import mage.cards.TransformingDoubleFacedCard; +import mage.constants.*; +import mage.filter.FilterCard; +import mage.filter.predicate.Predicates; +import mage.game.Game; +import mage.players.Player; +import mage.target.TargetPlayer; +import mage.target.common.TargetCardInGraveyard; +import mage.target.common.TargetCreatureOrPlaneswalker; + +import java.util.UUID; /** * * @author TheElk801 */ -public final class NicolBolasTheRavager extends CardImpl { +public final class NicolBolasTheRavager extends TransformingDoubleFacedCard { + + private static final FilterCard filter = new FilterCard("creature or planeswalker card from a graveyard"); + + static { + filter.add(Predicates.or( + CardType.CREATURE.getPredicate(), + CardType.PLANESWALKER.getPredicate() + )); + } public NicolBolasTheRavager(UUID ownerId, CardSetInfo setInfo) { - super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{U}{B}{R}"); + super(ownerId, setInfo, + new SuperType[]{SuperType.LEGENDARY}, new CardType[]{CardType.CREATURE}, new SubType[]{SubType.ELDER, SubType.DRAGON}, "{1}{U}{B}{R}", + "Nicol Bolas, the Arisen", + new SuperType[]{SuperType.LEGENDARY}, new CardType[]{CardType.PLANESWALKER}, new SubType[]{SubType.BOLAS}, "UBR" + ); - this.supertype.add(SuperType.LEGENDARY); - this.subtype.add(SubType.ELDER); - this.subtype.add(SubType.DRAGON); - this.power = new MageInt(4); - this.toughness = new MageInt(4); - - this.secondSideCardClazz = mage.cards.n.NicolBolasTheArisen.class; + // Nicol Bolas, the Ravager + this.getLeftHalfCard().setPT(4, 4); // Flying - this.addAbility(FlyingAbility.getInstance()); + this.getLeftHalfCard().addAbility(FlyingAbility.getInstance()); // When Nicol Bolas, the Ravager enters the battlefield, each opponent discards a card. - this.addAbility(new EntersBattlefieldTriggeredAbility(new DiscardEachPlayerEffect(StaticValue.get(1), false, TargetController.OPPONENT))); + this.getLeftHalfCard().addAbility(new EntersBattlefieldTriggeredAbility(new DiscardEachPlayerEffect(StaticValue.get(1), false, TargetController.OPPONENT))); // {4}{U}{B}{R}: Exile Nicol Bolas, the Ravager, then return him to the battlefield transformed under his owner's control. Activate this ability only any time you could cast a sorcerry. - this.addAbility(new TransformAbility()); - this.addAbility(new ActivateAsSorceryActivatedAbility( + this.getLeftHalfCard().addAbility(new ActivateAsSorceryActivatedAbility( Zone.BATTLEFIELD, - new ExileAndReturnSourceEffect(PutCards.BATTLEFIELD_TRANSFORMED,Pronoun.HE), + new ExileAndReturnSourceEffect(PutCards.BATTLEFIELD_TRANSFORMED, Pronoun.HE), new ManaCostsImpl<>("{4}{U}{B}{R}") )); + + // Nicol Bolas, the Arisen + this.getRightHalfCard().setStartingLoyalty(7); + + // +2: Draw two cards. + this.getRightHalfCard().addAbility(new LoyaltyAbility(new DrawCardSourceControllerEffect(2), 2)); + + // −3: Nicol Bolas, the Arisen deals 10 damage to target creature or planeswalker. + Ability ability = new LoyaltyAbility(new DamageTargetEffect(10), -3); + ability.addTarget(new TargetCreatureOrPlaneswalker()); + this.getRightHalfCard().addAbility(ability); + + // −4: Put target creature or planeswalker card from a graveyard onto the battlefield under your control. + ability = new LoyaltyAbility(new ReturnFromGraveyardToBattlefieldTargetEffect(), -4); + ability.addTarget(new TargetCardInGraveyard(filter)); + this.getRightHalfCard().addAbility(ability); + + // −12: Exile all but the bottom card of target player's library. + ability = new LoyaltyAbility(new NicolBolasTheArisenEffect(), -12); + ability.addTarget(new TargetPlayer()); + this.getRightHalfCard().addAbility(ability); } private NicolBolasTheRavager(final NicolBolasTheRavager card) { @@ -56,3 +95,30 @@ public final class NicolBolasTheRavager extends CardImpl { return new NicolBolasTheRavager(this); } } + +class NicolBolasTheArisenEffect extends OneShotEffect { + + NicolBolasTheArisenEffect() { + super(Outcome.Benefit); + this.staticText = "Exile all but the bottom card of target player's library."; + } + + private NicolBolasTheArisenEffect(final NicolBolasTheArisenEffect effect) { + super(effect); + } + + @Override + public NicolBolasTheArisenEffect copy() { + return new NicolBolasTheArisenEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player targetPlayer = game.getPlayer(source.getFirstTarget()); + Player controller = game.getPlayer(source.getControllerId()); + if (targetPlayer == null || controller == null) { + return false; + } + return controller.moveCards(targetPlayer.getLibrary().getTopCards(game, targetPlayer.getLibrary().size() - 1), Zone.EXILED, source, game); + } +} diff --git a/Mage.Sets/src/mage/cards/n/NissaSageAnimist.java b/Mage.Sets/src/mage/cards/n/NissaSageAnimist.java deleted file mode 100644 index 4d65ecdf45c..00000000000 --- a/Mage.Sets/src/mage/cards/n/NissaSageAnimist.java +++ /dev/null @@ -1,128 +0,0 @@ -package mage.cards.n; - -import java.util.UUID; -import mage.MageObject; -import mage.abilities.Ability; -import mage.abilities.LoyaltyAbility; -import mage.abilities.effects.ContinuousEffectImpl; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.UntapTargetEffect; -import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.CardsImpl; -import mage.constants.*; -import mage.game.Game; -import mage.game.permanent.Permanent; -import mage.game.permanent.token.NissaSageAnimistToken; -import mage.game.permanent.token.custom.CreatureToken; -import mage.players.Player; -import mage.target.common.TargetLandPermanent; -import mage.target.targetpointer.FixedTarget; - -/** - * - * @author emerald000 - */ -public final class NissaSageAnimist extends CardImpl { - - public NissaSageAnimist(UUID ownerId, CardSetInfo setInfo) { - super(ownerId, setInfo, new CardType[]{CardType.PLANESWALKER}, ""); - this.supertype.add(SuperType.LEGENDARY); - this.subtype.add(SubType.NISSA); - this.color.setGreen(true); - - this.nightCard = true; - - this.setStartingLoyalty(3); - - // +1: Reveal the top card of your library. If it's a land card, put it onto the battlefield. Otherwise, put it into your hand. - this.addAbility(new LoyaltyAbility(new NissaSageAnimistPlusOneEffect(), 1)); - - // -2: Create a legendary 4/4 green Elemental creature token named Ashaya, the Awoken World. - this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new NissaSageAnimistToken()), -2)); - - // -7: Untap up to six target lands. They become 6/6 Elemental creatures. They're still lands. - Ability ability = new LoyaltyAbility(new UntapTargetEffect(), -7); - ability.addTarget(new TargetLandPermanent(0, 6)); - ability.addEffect(new NissaSageAnimistMinusAnimateEffect()); - this.addAbility(ability); - } - - private NissaSageAnimist(final NissaSageAnimist card) { - super(card); - } - - @Override - public NissaSageAnimist copy() { - return new NissaSageAnimist(this); - } -} - -class NissaSageAnimistPlusOneEffect extends OneShotEffect { - - NissaSageAnimistPlusOneEffect() { - super(Outcome.Benefit); - this.staticText = "Reveal the top card of your library. If it's a land card, put it onto the battlefield. Otherwise, put it into your hand."; - } - - private NissaSageAnimistPlusOneEffect(final NissaSageAnimistPlusOneEffect effect) { - super(effect); - } - - @Override - public NissaSageAnimistPlusOneEffect copy() { - return new NissaSageAnimistPlusOneEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - MageObject sourceObject = game.getObject(source); - if (sourceObject != null && controller != null && controller.getLibrary().hasCards()) { - Card card = controller.getLibrary().getFromTop(game); - if (card == null) { - return false; - } - controller.revealCards(sourceObject.getIdName(), new CardsImpl(card), game); - Zone targetZone = Zone.HAND; - if (card.isLand(game)) { - targetZone = Zone.BATTLEFIELD; - } - return controller.moveCards(card, targetZone, source, game); - } - return true; - } -} - -class NissaSageAnimistMinusAnimateEffect extends OneShotEffect { - - NissaSageAnimistMinusAnimateEffect() { - super(Outcome.BecomeCreature); - this.staticText = "They become 6/6 Elemental creatures. They're still lands"; - } - - private NissaSageAnimistMinusAnimateEffect(final NissaSageAnimistMinusAnimateEffect effect) { - super(effect); - } - - @Override - public NissaSageAnimistMinusAnimateEffect copy() { - return new NissaSageAnimistMinusAnimateEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - for (UUID permanentId : this.getTargetPointer().getTargets(game, source)) { - Permanent permanent = game.getPermanent(permanentId); - if (permanent != null) { - ContinuousEffectImpl effect = new BecomesCreatureTargetEffect(new CreatureToken(6, 6, "", SubType.ELEMENTAL), false, true, Duration.Custom); - effect.setTargetPointer(new FixedTarget(permanent, game)); - game.addEffect(effect, source); - } - } - return true; - } -} diff --git a/Mage.Sets/src/mage/cards/n/NissaVastwoodSeer.java b/Mage.Sets/src/mage/cards/n/NissaVastwoodSeer.java index 01b027d210d..19a00564534 100644 --- a/Mage.Sets/src/mage/cards/n/NissaVastwoodSeer.java +++ b/Mage.Sets/src/mage/cards/n/NissaVastwoodSeer.java @@ -1,27 +1,42 @@ package mage.cards.n; -import mage.MageInt; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.LoyaltyAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.common.LandfallAbility; import mage.abilities.condition.Condition; import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.CreateTokenEffect; import mage.abilities.effects.common.ExileAndReturnSourceEffect; +import mage.abilities.effects.common.UntapTargetEffect; +import mage.abilities.effects.common.continuous.BecomesCreatureTargetEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; -import mage.abilities.keyword.TransformAbility; -import mage.cards.CardImpl; +import mage.cards.Card; import mage.cards.CardSetInfo; +import mage.cards.CardsImpl; +import mage.cards.TransformingDoubleFacedCard; import mage.constants.*; import mage.filter.FilterCard; import mage.filter.common.FilterBasicCard; import mage.filter.common.FilterLandPermanent; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.game.permanent.token.NissaSageAnimistToken; +import mage.game.permanent.token.custom.CreatureToken; +import mage.players.Player; import mage.target.common.TargetCardInLibrary; +import mage.target.common.TargetLandPermanent; +import mage.target.targetpointer.FixedTarget; import java.util.UUID; /** * @author emerald000 */ -public final class NissaVastwoodSeer extends CardImpl { +public final class NissaVastwoodSeer extends TransformingDoubleFacedCard { private static final FilterCard filter = new FilterBasicCard(SubType.FOREST); @@ -31,25 +46,39 @@ public final class NissaVastwoodSeer extends CardImpl { ); public NissaVastwoodSeer(UUID ownerId, CardSetInfo setInfo) { - super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); - this.supertype.add(SuperType.LEGENDARY); - this.subtype.add(SubType.ELF); - this.subtype.add(SubType.SCOUT); - this.power = new MageInt(2); - this.toughness = new MageInt(2); + super(ownerId, setInfo, + new SuperType[]{SuperType.LEGENDARY}, new CardType[]{CardType.CREATURE}, new SubType[]{SubType.ELF, SubType.SCOUT}, "{2}{G}", + "Nissa, Sage Animist", + new SuperType[]{SuperType.LEGENDARY}, new CardType[]{CardType.PLANESWALKER}, new SubType[]{SubType.NISSA}, "G" + ); - this.secondSideCardClazz = mage.cards.n.NissaSageAnimist.class; + // Nissa, Vastwood Seer + this.getLeftHalfCard().setPT(2, 2); // When Nissa, Vastwood Seer enters the battlefield, you may search your library for a basic Forest card, reveal it, put it into your hand, then shuffle your library. - this.addAbility(new EntersBattlefieldTriggeredAbility( + this.getLeftHalfCard().addAbility(new EntersBattlefieldTriggeredAbility( new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true), true )); // Whenever a land you control enters, if you control seven or more lands, exile Nissa, then return her to the battlefield transformed under her owner's control. - this.addAbility(new TransformAbility()); - this.addAbility(new LandfallAbility(new ExileAndReturnSourceEffect( + this.getLeftHalfCard().addAbility(new LandfallAbility(new ExileAndReturnSourceEffect( PutCards.BATTLEFIELD_TRANSFORMED, Pronoun.SHE )).withInterveningIf(condition).setAbilityWord(null)); + + // Nissa, Sage Animist + this.getRightHalfCard().setStartingLoyalty(3); + + // +1: Reveal the top card of your library. If it's a land card, put it onto the battlefield. Otherwise, put it into your hand. + this.getRightHalfCard().addAbility(new LoyaltyAbility(new NissaSageAnimistPlusOneEffect(), 1)); + + // -2: Create a legendary 4/4 green Elemental creature token named Ashaya, the Awoken World. + this.getRightHalfCard().addAbility(new LoyaltyAbility(new CreateTokenEffect(new NissaSageAnimistToken()), -2)); + + // -7: Untap up to six target lands. They become 6/6 Elemental creatures. They're still lands. + Ability ability = new LoyaltyAbility(new UntapTargetEffect(), -7); + ability.addTarget(new TargetLandPermanent(0, 6)); + ability.addEffect(new NissaSageAnimistMinusAnimateEffect()); + this.getRightHalfCard().addAbility(ability); } private NissaVastwoodSeer(final NissaVastwoodSeer card) { @@ -61,3 +90,69 @@ public final class NissaVastwoodSeer extends CardImpl { return new NissaVastwoodSeer(this); } } + +class NissaSageAnimistPlusOneEffect extends OneShotEffect { + + NissaSageAnimistPlusOneEffect() { + super(Outcome.Benefit); + this.staticText = "Reveal the top card of your library. If it's a land card, put it onto the battlefield. Otherwise, put it into your hand."; + } + + private NissaSageAnimistPlusOneEffect(final NissaSageAnimistPlusOneEffect effect) { + super(effect); + } + + @Override + public NissaSageAnimistPlusOneEffect copy() { + return new NissaSageAnimistPlusOneEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + MageObject sourceObject = game.getObject(source); + if (sourceObject != null && controller != null && controller.getLibrary().hasCards()) { + Card card = controller.getLibrary().getFromTop(game); + if (card == null) { + return false; + } + controller.revealCards(sourceObject.getIdName(), new CardsImpl(card), game); + Zone targetZone = Zone.HAND; + if (card.isLand(game)) { + targetZone = Zone.BATTLEFIELD; + } + return controller.moveCards(card, targetZone, source, game); + } + return true; + } +} + +class NissaSageAnimistMinusAnimateEffect extends OneShotEffect { + + NissaSageAnimistMinusAnimateEffect() { + super(Outcome.BecomeCreature); + this.staticText = "They become 6/6 Elemental creatures. They're still lands"; + } + + private NissaSageAnimistMinusAnimateEffect(final NissaSageAnimistMinusAnimateEffect effect) { + super(effect); + } + + @Override + public NissaSageAnimistMinusAnimateEffect copy() { + return new NissaSageAnimistMinusAnimateEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + for (UUID permanentId : this.getTargetPointer().getTargets(game, source)) { + Permanent permanent = game.getPermanent(permanentId); + if (permanent != null) { + ContinuousEffectImpl effect = new BecomesCreatureTargetEffect(new CreatureToken(6, 6, "", SubType.ELEMENTAL), false, true, Duration.Custom); + effect.setTargetPointer(new FixedTarget(permanent, game)); + game.addEffect(effect, source); + } + } + return true; + } +} diff --git a/Mage.Sets/src/mage/cards/u/UrzaAcademyHeadmaster.java b/Mage.Sets/src/mage/cards/u/UrzaAcademyHeadmaster.java index 0b091865b6b..c720f977813 100644 --- a/Mage.Sets/src/mage/cards/u/UrzaAcademyHeadmaster.java +++ b/Mage.Sets/src/mage/cards/u/UrzaAcademyHeadmaster.java @@ -190,7 +190,7 @@ class UrzaAcademyHeadmasterRandomEffect extends OneShotEffect { break; case 12: // NISSA SAGE ANIMIST 1 sb.append("Reveal the top card of your library. If it's a land card, put it onto the battlefield. Otherwise, put it into your hand."); - effects.add(new mage.cards.n.NissaSageAnimist(controller.getId(), setInfo).getAbilities().get(2).getEffects().get(0)); + effects.add(new mage.cards.n.NissaVastwoodSeer(controller.getId(), setInfo).getRightHalfCard().getAbilities().get(2).getEffects().get(0)); break; case 13: // NISSA WORLDWAKER 1 sb.append("Target land you control becomes a 4/4 Elemental creature with trample. It's still a land."); diff --git a/Mage.Sets/src/mage/sets/CoreSet2019.java b/Mage.Sets/src/mage/sets/CoreSet2019.java index 09d37b5b5f0..5a814ec341e 100644 --- a/Mage.Sets/src/mage/sets/CoreSet2019.java +++ b/Mage.Sets/src/mage/sets/CoreSet2019.java @@ -220,7 +220,6 @@ public final class CoreSet2019 extends ExpansionSet { cards.add(new SetCardInfo("Mystic Archaeologist", 63, Rarity.RARE, mage.cards.m.MysticArchaeologist.class)); cards.add(new SetCardInfo("Naturalize", 190, Rarity.COMMON, mage.cards.n.Naturalize.class)); cards.add(new SetCardInfo("Nexus of Fate", 306, Rarity.MYTHIC, mage.cards.n.NexusOfFate.class)); - cards.add(new SetCardInfo("Nicol Bolas, the Arisen", 218, Rarity.MYTHIC, mage.cards.n.NicolBolasTheArisen.class)); cards.add(new SetCardInfo("Nicol Bolas, the Ravager", 218, Rarity.MYTHIC, mage.cards.n.NicolBolasTheRavager.class)); cards.add(new SetCardInfo("Nightmare's Thirst", 111, Rarity.UNCOMMON, mage.cards.n.NightmaresThirst.class)); cards.add(new SetCardInfo("Novice Knight", 30, Rarity.UNCOMMON, mage.cards.n.NoviceKnight.class)); diff --git a/Mage.Sets/src/mage/sets/CoreSet2019Promos.java b/Mage.Sets/src/mage/sets/CoreSet2019Promos.java index 9ebf7e2f241..490e6681905 100644 --- a/Mage.Sets/src/mage/sets/CoreSet2019Promos.java +++ b/Mage.Sets/src/mage/sets/CoreSet2019Promos.java @@ -77,7 +77,6 @@ public class CoreSet2019Promos extends ExpansionSet { cards.add(new SetCardInfo("Mistcaller", "62s", Rarity.RARE, mage.cards.m.Mistcaller.class)); cards.add(new SetCardInfo("Murder", 110, Rarity.UNCOMMON, mage.cards.m.Murder.class)); cards.add(new SetCardInfo("Mystic Archaeologist", "63s", Rarity.RARE, mage.cards.m.MysticArchaeologist.class)); - cards.add(new SetCardInfo("Nicol Bolas, the Arisen", "218s", Rarity.MYTHIC, mage.cards.n.NicolBolasTheArisen.class)); cards.add(new SetCardInfo("Nicol Bolas, the Ravager", "218s", Rarity.MYTHIC, mage.cards.n.NicolBolasTheRavager.class)); cards.add(new SetCardInfo("Omniscience", "65s", Rarity.MYTHIC, mage.cards.o.Omniscience.class)); cards.add(new SetCardInfo("One with the Machine", "66s", Rarity.RARE, mage.cards.o.OneWithTheMachine.class)); diff --git a/Mage.Sets/src/mage/sets/FromTheVaultTransform.java b/Mage.Sets/src/mage/sets/FromTheVaultTransform.java index 93e2a6d15bd..58d91a5f682 100644 --- a/Mage.Sets/src/mage/sets/FromTheVaultTransform.java +++ b/Mage.Sets/src/mage/sets/FromTheVaultTransform.java @@ -35,6 +35,5 @@ public final class FromTheVaultTransform extends ExpansionSet { cards.add(new SetCardInfo("Kytheon, Hero of Akros", 13, Rarity.MYTHIC, mage.cards.k.KytheonHeroOfAkros.class)); cards.add(new SetCardInfo("Liliana, Heretical Healer", 14, Rarity.MYTHIC, mage.cards.l.LilianaHereticalHealer.class)); cards.add(new SetCardInfo("Nissa, Vastwood Seer", 15, Rarity.MYTHIC, mage.cards.n.NissaVastwoodSeer.class)); - cards.add(new SetCardInfo("Nissa, Sage Animist", 15, Rarity.MYTHIC, mage.cards.n.NissaSageAnimist.class)); } } diff --git a/Mage.Sets/src/mage/sets/InnistradRemastered.java b/Mage.Sets/src/mage/sets/InnistradRemastered.java index 9bf80cdec5b..d631078caac 100644 --- a/Mage.Sets/src/mage/sets/InnistradRemastered.java +++ b/Mage.Sets/src/mage/sets/InnistradRemastered.java @@ -52,8 +52,6 @@ public class InnistradRemastered extends ExpansionSet { cards.add(new SetCardInfo("Archghoul of Thraben", 95, Rarity.UNCOMMON, mage.cards.a.ArchghoulOfThraben.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Arlinn Kord", 230, Rarity.MYTHIC, mage.cards.a.ArlinnKord.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Arlinn Kord", 324, Rarity.MYTHIC, mage.cards.a.ArlinnKord.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Ashmouth Blade", 269, Rarity.UNCOMMON, mage.cards.a.AshmouthBlade.class, NON_FULL_USE_VARIOUS)); - cards.add(new SetCardInfo("Ashmouth Blade", 473, Rarity.UNCOMMON, mage.cards.a.AshmouthBlade.class, RETRO_ART_USE_VARIOUS)); cards.add(new SetCardInfo("Asylum Visitor", 371, Rarity.UNCOMMON, mage.cards.a.AsylumVisitor.class, RETRO_ART_USE_VARIOUS)); cards.add(new SetCardInfo("Asylum Visitor", 96, Rarity.UNCOMMON, mage.cards.a.AsylumVisitor.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Avacyn, Angel of Hope", 477, Rarity.MYTHIC, mage.cards.a.AvacynAngelOfHope.class, RETRO_ART_USE_VARIOUS)); diff --git a/Mage.Sets/src/mage/sets/JudgeGiftCards2021.java b/Mage.Sets/src/mage/sets/JudgeGiftCards2021.java index efe4cd6675d..701106b1162 100644 --- a/Mage.Sets/src/mage/sets/JudgeGiftCards2021.java +++ b/Mage.Sets/src/mage/sets/JudgeGiftCards2021.java @@ -27,7 +27,6 @@ public class JudgeGiftCards2021 extends ExpansionSet { cards.add(new SetCardInfo("K'rrik, Son of Yawgmoth", 2, Rarity.RARE, mage.cards.k.KrrikSonOfYawgmoth.class)); cards.add(new SetCardInfo("Mizzix of the Izmagnus", 8, Rarity.MYTHIC, mage.cards.m.MizzixOfTheIzmagnus.class)); cards.add(new SetCardInfo("Morophon, the Boundless", 1, Rarity.MYTHIC, mage.cards.m.MorophonTheBoundless.class)); - cards.add(new SetCardInfo("Nicol Bolas, the Arisen", 9, Rarity.MYTHIC, mage.cards.n.NicolBolasTheArisen.class)); cards.add(new SetCardInfo("Nicol Bolas, the Ravager", 9, Rarity.MYTHIC, mage.cards.n.NicolBolasTheRavager.class)); cards.add(new SetCardInfo("The Gitrog Monster", 5, Rarity.MYTHIC, mage.cards.t.TheGitrogMonster.class)); cards.add(new SetCardInfo("Zacama, Primal Calamity", 10, Rarity.MYTHIC, mage.cards.z.ZacamaPrimalCalamity.class)); diff --git a/Mage.Sets/src/mage/sets/MagicOrigins.java b/Mage.Sets/src/mage/sets/MagicOrigins.java index 227cae441f4..c7aef8f2e7f 100644 --- a/Mage.Sets/src/mage/sets/MagicOrigins.java +++ b/Mage.Sets/src/mage/sets/MagicOrigins.java @@ -206,7 +206,6 @@ public final class MagicOrigins extends ExpansionSet { cards.add(new SetCardInfo("Negate", 65, Rarity.COMMON, mage.cards.n.Negate.class)); cards.add(new SetCardInfo("Nightmare", 282, Rarity.RARE, mage.cards.n.Nightmare.class)); cards.add(new SetCardInfo("Nightsnare", 111, Rarity.COMMON, mage.cards.n.Nightsnare.class)); - cards.add(new SetCardInfo("Nissa, Sage Animist", 189, Rarity.MYTHIC, mage.cards.n.NissaSageAnimist.class)); cards.add(new SetCardInfo("Nissa's Pilgrimage", 190, Rarity.COMMON, mage.cards.n.NissasPilgrimage.class)); cards.add(new SetCardInfo("Nissa's Revelation", 191, Rarity.RARE, mage.cards.n.NissasRevelation.class)); cards.add(new SetCardInfo("Nissa, Vastwood Seer", 189, Rarity.MYTHIC, mage.cards.n.NissaVastwoodSeer.class)); diff --git a/Mage.Sets/src/mage/sets/MagicOriginsPromos.java b/Mage.Sets/src/mage/sets/MagicOriginsPromos.java index afceae5a679..6966005667f 100644 --- a/Mage.Sets/src/mage/sets/MagicOriginsPromos.java +++ b/Mage.Sets/src/mage/sets/MagicOriginsPromos.java @@ -55,7 +55,6 @@ public class MagicOriginsPromos extends ExpansionSet { cards.add(new SetCardInfo("Mizzium Meddler", 64, Rarity.RARE, mage.cards.m.MizziumMeddler.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Mizzium Meddler", "64s", Rarity.RARE, mage.cards.m.MizziumMeddler.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Nissa's Revelation", "191s", Rarity.RARE, mage.cards.n.NissasRevelation.class)); - cards.add(new SetCardInfo("Nissa, Sage Animist", "189s", Rarity.MYTHIC, mage.cards.n.NissaSageAnimist.class)); cards.add(new SetCardInfo("Nissa, Vastwood Seer", "189s", Rarity.MYTHIC, mage.cards.n.NissaVastwoodSeer.class)); cards.add(new SetCardInfo("Outland Colossus", "193s", Rarity.RARE, mage.cards.o.OutlandColossus.class)); cards.add(new SetCardInfo("Pia and Kiran Nalaar", 157, Rarity.RARE, mage.cards.p.PiaAndKiranNalaar.class, NON_FULL_USE_VARIOUS)); diff --git a/Mage.Sets/src/mage/sets/MarchOfTheMachine.java b/Mage.Sets/src/mage/sets/MarchOfTheMachine.java index b2445239b64..0ce9e9f50c4 100644 --- a/Mage.Sets/src/mage/sets/MarchOfTheMachine.java +++ b/Mage.Sets/src/mage/sets/MarchOfTheMachine.java @@ -181,7 +181,6 @@ public final class MarchOfTheMachine extends ExpansionSet { cards.add(new SetCardInfo("Heliod, the Radiant Dawn", 17, Rarity.RARE, mage.cards.h.HeliodTheRadiantDawn.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Heliod, the Radiant Dawn", 293, Rarity.RARE, mage.cards.h.HeliodTheRadiantDawn.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Herbology Instructor", 189, Rarity.UNCOMMON, mage.cards.h.HerbologyInstructor.class)); - cards.add(new SetCardInfo("Hideous Fleshwheeler", 119, Rarity.UNCOMMON, mage.cards.h.HideousFleshwheeler.class)); cards.add(new SetCardInfo("Hidetsugu and Kairi", 228, Rarity.RARE, mage.cards.h.HidetsuguAndKairi.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Hidetsugu and Kairi", 309, Rarity.RARE, mage.cards.h.HidetsuguAndKairi.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Hoarding Broodlord", 110, Rarity.RARE, mage.cards.h.HoardingBroodlord.class, NON_FULL_USE_VARIOUS)); diff --git a/Mage.Sets/src/mage/sets/PioneerMasters.java b/Mage.Sets/src/mage/sets/PioneerMasters.java index d649083e04c..16d8046ec03 100644 --- a/Mage.Sets/src/mage/sets/PioneerMasters.java +++ b/Mage.Sets/src/mage/sets/PioneerMasters.java @@ -262,7 +262,6 @@ public class PioneerMasters extends ExpansionSet { cards.add(new SetCardInfo("Nightveil Specter", 314, Rarity.UNCOMMON, mage.cards.n.NightveilSpecter.class)); cards.add(new SetCardInfo("Nimbus Naiad", 67, Rarity.COMMON, mage.cards.n.NimbusNaiad.class)); cards.add(new SetCardInfo("Nissa's Pilgrimage", 348, Rarity.UNCOMMON, mage.cards.n.NissasPilgrimage.class)); - cards.add(new SetCardInfo("Nissa, Sage Animist", 187, Rarity.MYTHIC, mage.cards.n.NissaSageAnimist.class)); cards.add(new SetCardInfo("Nissa, Vastwood Seer", 187, Rarity.MYTHIC, mage.cards.n.NissaVastwoodSeer.class)); cards.add(new SetCardInfo("Nissa, Voice of Zendikar", 188, Rarity.MYTHIC, mage.cards.n.NissaVoiceOfZendikar.class)); cards.add(new SetCardInfo("Nivix Cyclops", 234, Rarity.COMMON, mage.cards.n.NivixCyclops.class)); diff --git a/Mage.Sets/src/mage/sets/SanDiegoComicCon2015.java b/Mage.Sets/src/mage/sets/SanDiegoComicCon2015.java index 2476a421f30..53cb80d8f20 100644 --- a/Mage.Sets/src/mage/sets/SanDiegoComicCon2015.java +++ b/Mage.Sets/src/mage/sets/SanDiegoComicCon2015.java @@ -25,6 +25,5 @@ public class SanDiegoComicCon2015 extends ExpansionSet { cards.add(new SetCardInfo("Kytheon, Hero of Akros", 23, Rarity.MYTHIC, mage.cards.k.KytheonHeroOfAkros.class)); cards.add(new SetCardInfo("Liliana, Heretical Healer", 106, Rarity.MYTHIC, mage.cards.l.LilianaHereticalHealer.class)); cards.add(new SetCardInfo("Nissa, Vastwood Seer", 189, Rarity.MYTHIC, mage.cards.n.NissaVastwoodSeer.class)); - cards.add(new SetCardInfo("Nissa, Sage Animist", 189, Rarity.MYTHIC, mage.cards.n.NissaSageAnimist.class)); } } diff --git a/Mage.Sets/src/mage/sets/SecretLairDrop.java b/Mage.Sets/src/mage/sets/SecretLairDrop.java index d0a232a5461..7215d18d4eb 100644 --- a/Mage.Sets/src/mage/sets/SecretLairDrop.java +++ b/Mage.Sets/src/mage/sets/SecretLairDrop.java @@ -1061,7 +1061,6 @@ public class SecretLairDrop extends ExpansionSet { 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("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("Westvale Abbey", 1159, Rarity.RARE, mage.cards.w.WestvaleAbbey.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Ormendahl, Profane Prince", 1159, Rarity.RARE, mage.cards.o.OrmendahlProfanePrince.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Emrakul, the Promised End", 1160, Rarity.MYTHIC, mage.cards.e.EmrakulThePromisedEnd.class)); @@ -1116,7 +1115,6 @@ public class SecretLairDrop extends ExpansionSet { 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("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("Westvale Abbey", 1212, Rarity.RARE, mage.cards.w.WestvaleAbbey.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Ormendahl, Profane Prince", 1212, Rarity.RARE, mage.cards.o.OrmendahlProfanePrince.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Phyrexian Unlife", 1213, Rarity.RARE, mage.cards.p.PhyrexianUnlife.class)); diff --git a/Mage.Sets/src/mage/sets/ShadowsOverInnistrad.java b/Mage.Sets/src/mage/sets/ShadowsOverInnistrad.java index 034e5688d56..49fd7fbf3c0 100644 --- a/Mage.Sets/src/mage/sets/ShadowsOverInnistrad.java +++ b/Mage.Sets/src/mage/sets/ShadowsOverInnistrad.java @@ -49,7 +49,6 @@ public final class ShadowsOverInnistrad extends ExpansionSet { cards.add(new SetCardInfo("Apothecary Geist", 4, Rarity.COMMON, mage.cards.a.ApothecaryGeist.class)); cards.add(new SetCardInfo("Archangel Avacyn", 5, Rarity.MYTHIC, mage.cards.a.ArchangelAvacyn.class)); cards.add(new SetCardInfo("Arlinn Kord", 243, Rarity.MYTHIC, mage.cards.a.ArlinnKord.class)); - cards.add(new SetCardInfo("Ashmouth Blade", 260, Rarity.UNCOMMON, mage.cards.a.AshmouthBlade.class)); cards.add(new SetCardInfo("Asylum Visitor", 99, Rarity.RARE, mage.cards.a.AsylumVisitor.class)); cards.add(new SetCardInfo("Autumnal Gloom", 194, Rarity.UNCOMMON, mage.cards.a.AutumnalGloom.class)); cards.add(new SetCardInfo("Avacyn's Judgment", 145, Rarity.RARE, mage.cards.a.AvacynsJudgment.class)); diff --git a/Mage.Sets/src/mage/sets/ShadowsOverInnistradRemastered.java b/Mage.Sets/src/mage/sets/ShadowsOverInnistradRemastered.java index a31f08cebdb..1ba96211e95 100644 --- a/Mage.Sets/src/mage/sets/ShadowsOverInnistradRemastered.java +++ b/Mage.Sets/src/mage/sets/ShadowsOverInnistradRemastered.java @@ -39,7 +39,6 @@ public class ShadowsOverInnistradRemastered extends ExpansionSet { cards.add(new SetCardInfo("Apothecary Geist", 12, Rarity.COMMON, mage.cards.a.ApothecaryGeist.class)); cards.add(new SetCardInfo("Archangel Avacyn", 13, Rarity.MYTHIC, mage.cards.a.ArchangelAvacyn.class)); cards.add(new SetCardInfo("Arlinn Kord", 230, Rarity.MYTHIC, mage.cards.a.ArlinnKord.class)); - cards.add(new SetCardInfo("Ashmouth Blade", 256, Rarity.UNCOMMON, mage.cards.a.AshmouthBlade.class)); cards.add(new SetCardInfo("Assembled Alphas", 141, Rarity.RARE, mage.cards.a.AssembledAlphas.class)); cards.add(new SetCardInfo("Avacyn's Judgment", 142, Rarity.RARE, mage.cards.a.AvacynsJudgment.class)); cards.add(new SetCardInfo("Awoken Horror", 95, Rarity.RARE, mage.cards.a.AwokenHorror.class));