diff --git a/Mage.Sets/src/mage/cards/n/NevinyrralUrborgTyrant.java b/Mage.Sets/src/mage/cards/n/NevinyrralUrborgTyrant.java new file mode 100644 index 0000000000..1500d9f2ff --- /dev/null +++ b/Mage.Sets/src/mage/cards/n/NevinyrralUrborgTyrant.java @@ -0,0 +1,63 @@ +package mage.cards.n; + +import mage.MageInt; +import mage.abilities.common.DiesSourceTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.delayed.ReflexiveTriggeredAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.dynamicvalue.common.CreaturesDiedThisTurnCount; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.DestroyAllEffect; +import mage.abilities.effects.common.DoWhenCostPaid; +import mage.abilities.keyword.HexproofFromArtifactsCreaturesAndEnchantments; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.filter.StaticFilters; +import mage.game.permanent.token.ZombieToken; +import mage.watchers.common.CreaturesDiedWatcher; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class NevinyrralUrborgTyrant extends CardImpl { + + public NevinyrralUrborgTyrant(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{W}{U}{B}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.ZOMBIE); + this.subtype.add(SubType.WIZARD); + this.power = new MageInt(3); + this.toughness = new MageInt(6); + + // Hexproof from artifacts, creatures, and enchantments + this.addAbility(HexproofFromArtifactsCreaturesAndEnchantments.getInstance()); + + // When Nevinyrral, Urborg Tyrant enters the battlefield, create a tapped 2/2 black Zombie creature token for each creature that died this turn. + this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect( + new ZombieToken(), CreaturesDiedThisTurnCount.instance, true, false + ).setText("create a tapped 2/2 black Zombie creature token for each creature that died this turn")), new CreaturesDiedWatcher()); + + // When Nevinyrral dies, you may pay {1}. When you do, destroy all artifacts, creatures, and enchantments. + this.addAbility(new DiesSourceTriggeredAbility( + new DoWhenCostPaid(new ReflexiveTriggeredAbility( + new DestroyAllEffect(StaticFilters.FILTER_PERMANENT_ARTIFACT_CREATURE_OR_ENCHANTMENT), + false, "destroy all artifacts, creatures, and enchantments" + ), new GenericManaCost(1), "Pay {1}?") + )); + } + + private NevinyrralUrborgTyrant(final NevinyrralUrborgTyrant card) { + super(card); + } + + @Override + public NevinyrralUrborgTyrant copy() { + return new NevinyrralUrborgTyrant(this); + } +} diff --git a/Mage.Sets/src/mage/sets/CommanderLegends.java b/Mage.Sets/src/mage/sets/CommanderLegends.java index 36ad7a66c5..a4fdcb2857 100644 --- a/Mage.Sets/src/mage/sets/CommanderLegends.java +++ b/Mage.Sets/src/mage/sets/CommanderLegends.java @@ -152,6 +152,8 @@ public final class CommanderLegends extends ExpansionSet { cards.add(new SetCardInfo("Natural Reclamation", 245, Rarity.COMMON, mage.cards.n.NaturalReclamation.class)); cards.add(new SetCardInfo("Necrotic Hex", 137, Rarity.RARE, mage.cards.n.NecroticHex.class)); cards.add(new SetCardInfo("Nekusar, the Mindrazer", 529, Rarity.MYTHIC, mage.cards.n.NekusarTheMindrazer.class)); + cards.add(new SetCardInfo("Nevinyrral's Disk", 328, Rarity.RARE, mage.cards.n.NevinyrralsDisk.class)); + cards.add(new SetCardInfo("Nevinyrral, Urborg Tyrant", 287, Rarity.RARE, mage.cards.n.NevinyrralUrborgTyrant.class)); cards.add(new SetCardInfo("Nightshade Harvester", 138, Rarity.RARE, mage.cards.n.NightshadeHarvester.class)); cards.add(new SetCardInfo("Ninth Bridge Patrol", 33, Rarity.COMMON, mage.cards.n.NinthBridgePatrol.class)); cards.add(new SetCardInfo("Noxious Dragon", 139, Rarity.UNCOMMON, mage.cards.n.NoxiousDragon.class)); diff --git a/Mage/src/main/java/mage/abilities/keyword/HexproofFromArtifactsCreaturesAndEnchantments.java b/Mage/src/main/java/mage/abilities/keyword/HexproofFromArtifactsCreaturesAndEnchantments.java new file mode 100644 index 0000000000..103ea3826c --- /dev/null +++ b/Mage/src/main/java/mage/abilities/keyword/HexproofFromArtifactsCreaturesAndEnchantments.java @@ -0,0 +1,47 @@ +package mage.abilities.keyword; + +import mage.MageObject; +import mage.game.Game; + +import java.io.ObjectStreamException; + +/** + * Hexproof from artifacts, creatures, and enchantments + * + * @author TheElk801 + */ +public class HexproofFromArtifactsCreaturesAndEnchantments extends HexproofBaseAbility { + + private static final HexproofFromArtifactsCreaturesAndEnchantments instance; + + static { + instance = new HexproofFromArtifactsCreaturesAndEnchantments(); + } + + private Object readResolve() throws ObjectStreamException { + return instance; + } + + public static HexproofFromArtifactsCreaturesAndEnchantments getInstance() { + return instance; + } + + private HexproofFromArtifactsCreaturesAndEnchantments() { + super(); + } + + @Override + public boolean checkObject(MageObject source, Game game) { + return source.isArtifact() || source.isCreature() || source.isEnchantment(); + } + + @Override + public HexproofFromArtifactsCreaturesAndEnchantments copy() { + return instance; + } + + @Override + public String getRule() { + return "hexproof from artifacts, creatures, and enchantments"; + } +} diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index 63bc93c567..7ebe6d57a5 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -39454,6 +39454,7 @@ Gor Muldrak, Amphinologist|Commander Legends|277|R|{1}{G}{U}|Legendary Creature Hans Eriksson|Commander Legends|279|R|{2}{R}{G}|Legendary Creature - Human Scout|1|4|Whenever Hans Eriksson attacks, reveal the top card of your library. If it's a creature card, put it onto the battlefield tapped and attacking defending player or a planeswalker they control. Otherwise, put that card into your hand. When you put a creature card onto the battlefield this way, it fights Hans Eriksson.| Imoti, Celebrant of Bounty|Commander Legends|280|U|{3}{G}{U}|Legendary Creature - Naga Druid|3|1|Cascade$Spells you cast with converted mana cost 6 or greater have cascade.| Liesa, Shroud of Dusk|Commander Legends|286|R|{2}{W}{W}{B}|Legendary Creature - Angel|5|5|Rather than pay {2} for each previous time you've cast this spell from the command zone this game, pay 2 life that many times.$Flying, lifelink$Whenever a player casts a spell, they lose 2 life.| +Nevinyrral, Urborg Tyrant|Commander Legends|287|R|{3}{W}{U}{B}|Legendary Creature - Zombie Wizard|3|6|Hexproof from artifacts, creatures, and enchantments$When Nevinyrral, Urborg Tyrant enters the battlefield, create a tapped 2/2 black Zombie creature token for each creature that died this turn.$When Nevinyrral dies, you may pay {1}. When you do, destroy all artifacts, creatures, and enchantments.| Nymris, Oona's Trickster|Commander Legends|288|R|{3}{U}{B}|Legendary Creature - Faerie Knight|1|6|Flash$Flying$Whenever you cast your first spell during each opponent's turn, look at the top two cards of your library. Put one of those cards into your hand and the other into your graveyard.| Obeka, Brute Chronologist|Commander Legends|289|R|{1}{U}{B}{R}|Legendary Creature - Ogre Wizard|3|4|{T}: The player whose turn it is may end the turn.| Thalisse, Reverent Medium|Commander Legends|291|U|{3}{W}{B}|Legendary Creature - Human Cleric|3|4|At the beginning of each end step, create X 1/1 white Spirit creature tokens with flying, where X is the number of tokens you created this turn.| @@ -39473,6 +39474,7 @@ Maelstrom Colossus|Commander Legends|322|C|{8}|Artifact Creature - Golem|7|7|Cas Marble Diamond|Commander Legends|323|C|{2}|Artifact|||Marble Diamond enters the battlefield tapped.${T}: Add {W}.| Mask of Memory|Commander Legends|324|U|{2}|Artifact - Equipment|||Whenever equipped creature deals combat damage to a player, you may draw two cards. If you do, discard a card.$Equip {1}| Mindless Automaton|Commander Legends|326|U|{4}|Artifact Creature - Construct|0|0|Mindless Automaton enters the battlefield with two +1/+1 counters on it.${1}, Discard a card: Put a +1/+1 counter on Mindless Automaton.$Remove two +1/+1 counters from Mindless Automaton: Draw a card.| +Nevinyrral's Disk|Commander Legends|328|R|{4}|Artifact|||Nevinyrral's Disk enters the battlefield tapped.${1}, {T}: Destroy all artifacts, creatures, and enchantments.| Perilous Myr|Commander Legends|330|C|{2}|Artifact Creature - Myr|1|1|When Perilous Myr dies, it deals 2 damage to any target.| Phyrexian Triniform|Commander Legends|331|M|{9}|Artifact Creature - Golem|9|9|When Phyrexian Triniform dies, create three 3/3 colorless Golem artifact creature tokens.$Encore {12}| Prophetic Prism|Commander Legends|334|C|{2}|Artifact|||When Prophetic Prism enters the battlefield, draw a card.${1}, {T}: Add one mana of any color.|