From 969f3ad4c7fc631eae44a4cee35d642f2e0ad97d Mon Sep 17 00:00:00 2001 From: fireshoes Date: Fri, 6 Mar 2015 02:05:52 -0600 Subject: [PATCH] [DTK] Added Arashin Foremost and Pristine Skywise. Minorfix to Kami of the Painted Road. --- .../KamiOfThePaintedRoad.java | 244 +++++++++--------- .../sets/dragonsoftarkir/ArashinForemost.java | 116 +++++++++ .../sets/dragonsoftarkir/PristineSkywise.java | 131 ++++++++++ Utils/mtg-cards-data.txt | 2 +- 4 files changed, 370 insertions(+), 123 deletions(-) create mode 100644 Mage.Sets/src/mage/sets/dragonsoftarkir/ArashinForemost.java create mode 100644 Mage.Sets/src/mage/sets/dragonsoftarkir/PristineSkywise.java diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfThePaintedRoad.java b/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfThePaintedRoad.java index b449350f5b..8fca10d333 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfThePaintedRoad.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/KamiOfThePaintedRoad.java @@ -1,122 +1,122 @@ -/* - * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ -package mage.sets.championsofkamigawa; - -import java.util.UUID; -import mage.MageInt; -import mage.abilities.Ability; -import mage.abilities.Mode; -import mage.abilities.common.SpellCastControllerTriggeredAbility; -import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; -import mage.abilities.keyword.ProtectionAbility; -import mage.cards.CardImpl; -import mage.choices.Choice; -import mage.choices.ChoiceColor; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Rarity; -import mage.filter.FilterCard; -import mage.filter.common.FilterSpiritOrArcaneCard; -import mage.filter.predicate.mageobject.ColorPredicate; -import mage.game.Game; -import mage.game.permanent.Permanent; - -/** - * - * @author LevelX2 - */ -public class KamiOfThePaintedRoad extends CardImpl { - - private static final FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); - - public KamiOfThePaintedRoad(UUID ownerId) { - super(ownerId, 23, "Kami of the Painted Road", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{4}{W}"); - this.expansionSetCode = "CHK"; - this.subtype.add("Spirit"); - - this.color.setWhite(true); - this.power = new MageInt(3); - this.toughness = new MageInt(3); - - // Whenever you cast a Spirit or Arcane spell, Kami of the Painted Road gains protection from the color of your choice until end of turn. - Ability ability = new SpellCastControllerTriggeredAbility(new GainProtectionFromColorSourceEffect(Duration.EndOfTurn), filter, true); - Choice colorChoice = new ChoiceColor(); - colorChoice.setMessage("Choose color (Kami of the Painted Road)"); - ability.addChoice(colorChoice); - this.addAbility(ability); - - } - - public KamiOfThePaintedRoad(final KamiOfThePaintedRoad card) { - super(card); - } - - @Override - public KamiOfThePaintedRoad copy() { - return new KamiOfThePaintedRoad(this); - } -} - -class GainProtectionFromColorSourceEffect extends GainAbilitySourceEffect { - - FilterCard protectionFilter; - - public GainProtectionFromColorSourceEffect(Duration duration) { - super(new ProtectionAbility(new FilterCard()), duration); - protectionFilter = (FilterCard)((ProtectionAbility)ability).getFilter(); - } - - public GainProtectionFromColorSourceEffect(final GainProtectionFromColorSourceEffect effect) { - super(effect); - this.protectionFilter = effect.protectionFilter.copy(); - } - - @Override - public GainProtectionFromColorSourceEffect copy() { - return new GainProtectionFromColorSourceEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Permanent creature = game.getPermanent(source.getSourceId()); - if (creature != null) { - ChoiceColor choice = (ChoiceColor) source.getChoices().get(0); - protectionFilter.add(new ColorPredicate(choice.getColor())); - protectionFilter.setMessage(choice.getChoice()); - ((ProtectionAbility)ability).setFilter(protectionFilter); - creature.addAbility(ability, source.getSourceId(), game); - return true; - } - return false; - } - - @Override - public String getText(Mode mode) { - return "{this} gains protection from the color of your choice " + duration.toString(); - } -} +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.championsofkamigawa; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.Mode; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.ProtectionAbility; +import mage.cards.CardImpl; +import mage.choices.Choice; +import mage.choices.ChoiceColor; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.filter.FilterCard; +import mage.filter.common.FilterSpiritOrArcaneCard; +import mage.filter.predicate.mageobject.ColorPredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * + * @author LevelX2 + */ +public class KamiOfThePaintedRoad extends CardImpl { + + private static final FilterSpiritOrArcaneCard filter = new FilterSpiritOrArcaneCard(); + + public KamiOfThePaintedRoad(UUID ownerId) { + super(ownerId, 23, "Kami of the Painted Road", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{4}{W}"); + this.expansionSetCode = "CHK"; + this.subtype.add("Spirit"); + + this.color.setWhite(true); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Whenever you cast a Spirit or Arcane spell, Kami of the Painted Road gains protection from the color of your choice until end of turn. + Ability ability = new SpellCastControllerTriggeredAbility(new GainProtectionFromColorSourceEffect(Duration.EndOfTurn), filter, false); + Choice colorChoice = new ChoiceColor(); + colorChoice.setMessage("Choose color (Kami of the Painted Road)"); + ability.addChoice(colorChoice); + this.addAbility(ability); + + } + + public KamiOfThePaintedRoad(final KamiOfThePaintedRoad card) { + super(card); + } + + @Override + public KamiOfThePaintedRoad copy() { + return new KamiOfThePaintedRoad(this); + } +} + +class GainProtectionFromColorSourceEffect extends GainAbilitySourceEffect { + + FilterCard protectionFilter; + + public GainProtectionFromColorSourceEffect(Duration duration) { + super(new ProtectionAbility(new FilterCard()), duration); + protectionFilter = (FilterCard)((ProtectionAbility)ability).getFilter(); + } + + public GainProtectionFromColorSourceEffect(final GainProtectionFromColorSourceEffect effect) { + super(effect); + this.protectionFilter = effect.protectionFilter.copy(); + } + + @Override + public GainProtectionFromColorSourceEffect copy() { + return new GainProtectionFromColorSourceEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent creature = game.getPermanent(source.getSourceId()); + if (creature != null) { + ChoiceColor choice = (ChoiceColor) source.getChoices().get(0); + protectionFilter.add(new ColorPredicate(choice.getColor())); + protectionFilter.setMessage(choice.getChoice()); + ((ProtectionAbility)ability).setFilter(protectionFilter); + creature.addAbility(ability, source.getSourceId(), game); + return true; + } + return false; + } + + @Override + public String getText(Mode mode) { + return "{this} gains protection from the color of your choice " + duration.toString(); + } +} diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/ArashinForemost.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/ArashinForemost.java new file mode 100644 index 0000000000..4a65c8d91c --- /dev/null +++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/ArashinForemost.java @@ -0,0 +1,116 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.dragonsoftarkir; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.DoubleStrikeAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class ArashinForemost extends CardImpl { + + public ArashinForemost(UUID ownerId) { + super(ownerId, 3, "Arashin Foremost", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{1}{W}{W}"); + this.expansionSetCode = "DTK"; + this.subtype.add("Human"); + this.subtype.add("Warrior"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Double strike + this.addAbility(DoubleStrikeAbility.getInstance()); + + // Whenever Arashin Foremost enters the battlefield or attacks, another target Warrior creature you control gains double strike until end of turn. + this.addAbility(new ArashinForemostAbility()); + } + + public ArashinForemost(final ArashinForemost card) { + super(card); + } + + @Override + public ArashinForemost copy() { + return new ArashinForemost(this); + } +} + +class ArashinForemostAbility extends TriggeredAbilityImpl { + + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Warrior creature you control"); + + static { + filter.add(new SubtypePredicate("Warrior")); + } + + public ArashinForemostAbility() { + super(Zone.BATTLEFIELD, new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance(), Duration.EndOfTurn), false); + this.addTarget(new TargetControlledCreaturePermanent(filter)); + } + + public ArashinForemostAbility(final ArashinForemostAbility ability) { + super(ability); + } + + @Override + public ArashinForemostAbility copy() { + return new ArashinForemostAbility(this); + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getType() == GameEvent.EventType.ATTACKER_DECLARED && event.getSourceId().equals(this.getSourceId())) { + return true; + } + if (event.getType() == GameEvent.EventType.ENTERS_THE_BATTLEFIELD && event.getTargetId().equals(this.getSourceId()) ) { + return true; + } + return false; + } + + @Override + public String getRule() { + return "Whenever {this} enters the battlefield or attacks, another target Warrior creature you control gains double strike until end of turn"; + } + +} diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/PristineSkywise.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/PristineSkywise.java new file mode 100644 index 0000000000..69855db09b --- /dev/null +++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/PristineSkywise.java @@ -0,0 +1,131 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.dragonsoftarkir; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.Mode; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.effects.common.UntapSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.ProtectionAbility; +import mage.cards.CardImpl; +import mage.choices.Choice; +import mage.choices.ChoiceColor; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.filter.FilterCard; +import mage.filter.FilterSpell; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.filter.predicate.mageobject.ColorPredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * + * @author fireshoes + */ +public class PristineSkywise extends CardImpl { + + private static final FilterSpell filter = new FilterSpell("a noncreature spell"); + + static { + filter.add(Predicates.not(new CardTypePredicate(CardType.CREATURE))); + } + + public PristineSkywise(UUID ownerId) { + super(ownerId, 228, "Pristine Skywise", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{W}{U}"); + this.expansionSetCode = "DTK"; + this.subtype.add("Dragon"); + this.power = new MageInt(6); + this.toughness = new MageInt(4); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Whenever you cast a noncreature spell, untap Pristine Skywise. It gains protection from the color of your choice until the end of turn. + Ability ability = new SpellCastControllerTriggeredAbility(new UntapSourceEffect(), filter, false); + ability.addEffect(new GainProtectionFromColorSourceEffect(Duration.EndOfTurn)); + Choice colorChoice = new ChoiceColor(); + colorChoice.setMessage("Choose color (Pristine Skywise)"); + ability.addChoice(colorChoice); + this.addAbility(ability); + } + + public PristineSkywise(final PristineSkywise card) { + super(card); + } + + @Override + public PristineSkywise copy() { + return new PristineSkywise(this); + } +} + +class GainProtectionFromColorSourceEffect extends GainAbilitySourceEffect { + + FilterCard protectionFilter; + + public GainProtectionFromColorSourceEffect(Duration duration) { + super(new ProtectionAbility(new FilterCard()), duration); + protectionFilter = (FilterCard)((ProtectionAbility)ability).getFilter(); + } + + public GainProtectionFromColorSourceEffect(final GainProtectionFromColorSourceEffect effect) { + super(effect); + this.protectionFilter = effect.protectionFilter.copy(); + } + + @Override + public GainProtectionFromColorSourceEffect copy() { + return new GainProtectionFromColorSourceEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent creature = game.getPermanent(source.getSourceId()); + if (creature != null) { + ChoiceColor choice = (ChoiceColor) source.getChoices().get(0); + protectionFilter.add(new ColorPredicate(choice.getColor())); + protectionFilter.setMessage(choice.getChoice()); + ((ProtectionAbility)ability).setFilter(protectionFilter); + creature.addAbility(ability, source.getSourceId(), game); + return true; + } + return false; + } + + @Override + public String getText(Mode mode) { + return "{this} gains protection from the color of your choice " + duration.toString(); + } +} diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index 0d72223d52..a2ee6a1271 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -25700,7 +25700,7 @@ Scaleguard Sentinels|Dragons of Tarkir|201|U|{G}{G}|Creature - Human Soldier|2|3 Shaman of Forgotten Ways|Dragons of Tarkir|204|M|{2}G}|Creature - Human Shaman| 2|3|{T}:Add two mana in any combination of colors to your mana pool. Spend this mana only to cast creature spells.$Formidable - {9}{G}{G},{T}:Each player's life total becomes the number of creatures he or she controls. Acitave the ability only if creatures you control have total power 8 or greater.| Stampeding Elk Herd|Dragons of Tarkir|208|C|{3}{G}{G}|Creature - Elk|5|5|Formidable - Whenever Stampeding Elk Herd attacks, if creatures you control have total power 8 or greater, creatures you control gain trample until end of turn.| Arashin Sovereign|Dragons of Tarkir|212|R|{5}{G}{W}|Creature - Dragon|6|6|Flying$When Arashin Sovereign dies, you may put it on the top or bottom of its owner's library.| -Atarka's Command:Dragon of Tarkir|213|R|{R}{G}|Instant|||Choose two - Your opponents can't gain life this turn; or Atarka's Command deals 3 damage to each opponentl or You may put a land card from your hand onto the battlefield; or Creatures you control get +1/+1 and gain reach until the end of turn.| +Atarka's Command|Dragons of Tarkir|213|R|{R}{G}|Instant|||Choose two - Your opponents can't gain life this turn; or Atarka's Command deals 3 damage to each opponent; or You may put a land card from your hand onto the battlefield; or Creatures you control get +1/+1 and gain reach until the end of turn.| Boltwing Marauder|Dragons of Tarkir|214|R|{3}{B}{R}|Creature - Dragon|5|4|Flying$Whenever another creature enters the battlefield under your control, target creature gets +2/+0 until end of turn.| Dragonlord Dromoka|Dragons of Tarkir|217|M|{4}{G}{W}|Legendary Creature - Elder Dragon|5|7|Dragonlord Dromoka can't be countered$Flying, lifelink$Your opponents can't cast spells during your turn.| Dragonlord Kolaghan|Dragons of Tarkir|218|{4}{B}{R}|Legendary Creature - Elder Dragon|6|5|Flying$Haste$Other creatures you control have haste.$Whenever an opponent casts a creature or planeswalker spell with the same name as a card in their graveyard, that player loses 10 life.|