diff --git a/incomplete/Frantic_Search.txt b/incomplete/Frantic_Search.txt index 5699035f99..9ef781dce1 100644 --- a/incomplete/Frantic_Search.txt +++ b/incomplete/Frantic_Search.txt @@ -1,5 +1,5 @@ name=Frantic Search -image=http://magiccards.info/scans/en/vma/70.jpg +image=https://magiccards.info/scans/en/vma/70.jpg value=2.500 rarity=C type=Instant diff --git a/incomplete/Great_Whale.txt b/incomplete/Great_Whale.txt index 1c110626ee..2b2a3daf1e 100644 --- a/incomplete/Great_Whale.txt +++ b/incomplete/Great_Whale.txt @@ -1,5 +1,5 @@ name=Great Whale -image=http://magiccards.info/scans/en/us/77.jpg +image=https://magiccards.info/scans/en/us/77.jpg value=2.500 rarity=R type=Creature diff --git a/incomplete/Palinchron.txt b/incomplete/Palinchron.txt index ec5e2dc9ab..90d7f23a2e 100644 --- a/incomplete/Palinchron.txt +++ b/incomplete/Palinchron.txt @@ -1,5 +1,5 @@ name=Palinchron -image=http://magiccards.info/scans/en/vma/86.jpg +image=https://magiccards.info/scans/en/vma/86.jpg value=2.500 rarity=R type=Creature diff --git a/incomplete/Peregrine_Drake.txt b/incomplete/Peregrine_Drake.txt index 9844270639..56ccceb6a7 100644 --- a/incomplete/Peregrine_Drake.txt +++ b/incomplete/Peregrine_Drake.txt @@ -1,5 +1,5 @@ name=Peregrine Drake -image=http://magiccards.info/scans/en/pc2/22.jpg +image=https://magiccards.info/scans/en/pc2/22.jpg value=2.500 rarity=U type=Creature diff --git a/incomplete/Reaper_King.txt b/incomplete/Reaper_King.txt index 2e79e08b3d..fe75dd7e48 100644 --- a/incomplete/Reaper_King.txt +++ b/incomplete/Reaper_King.txt @@ -1,5 +1,5 @@ name=Reaper King -url=http://magiccards.info/shm/en/260.html +url=https://magiccards.info/shm/en/260.html image=http://mtgimage.com/card/reaper%20king.jpg value=4.162 rarity=R diff --git a/incomplete/Rewind.txt b/incomplete/Rewind.txt index 852a5be8f3..9e6374a7de 100644 --- a/incomplete/Rewind.txt +++ b/incomplete/Rewind.txt @@ -1,5 +1,5 @@ name=Rewind -image=http://magiccards.info/scans/en/m13/65.jpg +image=https://magiccards.info/scans/en/m13/65.jpg value=2.500 rarity=U type=Instant diff --git a/incomplete/Snap.txt b/incomplete/Snap.txt index fb36662e96..8a7c6a1162 100644 --- a/incomplete/Snap.txt +++ b/incomplete/Snap.txt @@ -1,5 +1,5 @@ name=Snap -image=http://magiccards.info/scans/en/ul/43.jpg +image=https://magiccards.info/scans/en/ul/43.jpg value=2.500 rarity=C type=Instant diff --git a/incomplete/Time_Spiral.txt b/incomplete/Time_Spiral.txt index 8a81996f37..aa59faf7d9 100644 --- a/incomplete/Time_Spiral.txt +++ b/incomplete/Time_Spiral.txt @@ -1,5 +1,5 @@ name=Time Spiral -image=http://magiccards.info/scans/en/us/103.jpg +image=https://magiccards.info/scans/en/us/103.jpg value=2.500 rarity=R type=Sorcery diff --git a/incomplete/Ulamog__the_Ceaseless_Hunger.txt b/incomplete/Ulamog__the_Ceaseless_Hunger.txt index 1ce34081ad..5147db68ad 100644 --- a/incomplete/Ulamog__the_Ceaseless_Hunger.txt +++ b/incomplete/Ulamog__the_Ceaseless_Hunger.txt @@ -1,5 +1,5 @@ name=Ulamog, the Ceaseless Hunger -image=http://magiccards.info/scans/en/bfz/15.jpg +image=https://magiccards.info/scans/en/bfz/15.jpg image_updated=2015-11-08 value=2.500 rarity=M diff --git a/release/Magarena/scripts_missing/Akuta__Born_of_Ash.txt b/release/Magarena/scripts/Akuta__Born_of_Ash.txt similarity index 63% rename from release/Magarena/scripts_missing/Akuta__Born_of_Ash.txt rename to release/Magarena/scripts/Akuta__Born_of_Ash.txt index 74b38c1e08..0bbc40e268 100644 --- a/release/Magarena/scripts_missing/Akuta__Born_of_Ash.txt +++ b/release/Magarena/scripts/Akuta__Born_of_Ash.txt @@ -7,7 +7,6 @@ subtype=Spirit cost={2}{B}{B} pt=3/2 ability=Haste;\ - At the beginning of your upkeep, if you have more cards in hand than each opponent, you may sacrifice a Swamp. If you do, return SN from your graveyard to the battlefield. + Sacrifice a Swamp: Return SN from your graveyard to the battlefield. Activate this ability only during your upkeep and only if you have more cards in hand than each opponent. timing=fmain oracle=Haste\nAt the beginning of your upkeep, if you have more cards in hand than each opponent, you may sacrifice a Swamp. If you do, return Akuta, Born of Ash from your graveyard to the battlefield. -status=not supported: trigger-from-graveyard diff --git a/release/Magarena/scripts/Armored_Transport.groovy b/release/Magarena/scripts/Armored_Transport.groovy index 2aaffeefe3..1136ab01ea 100644 --- a/release/Magarena/scripts/Armored_Transport.groovy +++ b/release/Magarena/scripts/Armored_Transport.groovy @@ -2,8 +2,8 @@ new PreventDamageTrigger() { @Override public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) { - if (damage.getTarget() == permanent && - damage.isCombat() && + if (damage.getTarget() == permanent && + damage.isCombat() && damage.getSource().hasType(MagicType.Creature) && permanent.getBlockingCreatures().contains(damage.getSource())) { // Replacement effect. Generates no event or action. diff --git a/release/Magarena/scripts_missing/Dark_Dabbling.txt b/release/Magarena/scripts/Dark_Dabbling.txt similarity index 64% rename from release/Magarena/scripts_missing/Dark_Dabbling.txt rename to release/Magarena/scripts/Dark_Dabbling.txt index c7d78cdef8..7582e31a20 100644 --- a/release/Magarena/scripts_missing/Dark_Dabbling.txt +++ b/release/Magarena/scripts/Dark_Dabbling.txt @@ -5,7 +5,6 @@ value=2.500 rarity=C type=Instant cost={2}{B} -effect=Regenerate target creature. Draw a card.~If there are two or more instant and/or sorcery cards in your graveyard, also regenerate each other creature you control. +effect=Regenerate target creature.~Draw a card.~If there are two or more instant and/or sorcery cards in your graveyard, regenerate each other creature you control. timing=removal oracle=Regenerate target creature. Draw a card.\nSpell mastery — If there are two or more instant and/or sorcery cards in your graveyard, also regenerate each other creature you control. -status=needs groovy diff --git a/release/Magarena/scripts/Dark_Supplicant.groovy b/release/Magarena/scripts/Dark_Supplicant.groovy index fcba8e4e21..4ede496642 100644 --- a/release/Magarena/scripts/Dark_Supplicant.groovy +++ b/release/Magarena/scripts/Dark_Supplicant.groovy @@ -19,14 +19,14 @@ def sac = new MagicRegularCostEvent("Sacrifice three Clerics"); return new MagicEvent( source, this, - "PN searches his or her graveyard, hand, and/or library a card named Scion of Darkness and put it onto the battlefield. " + + "PN searches his or her graveyard, hand, and/or library a card named Scion of Darkness and put it onto the battlefield. " + "Shuffle PN's library." ); } - + @Override public void executeEvent(final MagicGame game, final MagicEvent event) { - final MagicTargetFilter filter = + final MagicTargetFilter filter = MagicTargetFilterFactory.cardName("Scion of Darkness") .from(MagicTargetType.Graveyard) .from(MagicTargetType.Hand) diff --git a/release/Magarena/scripts/Day_of_the_Dragons.groovy b/release/Magarena/scripts/Day_of_the_Dragons.groovy index ec9af9dfd4..3b376327d8 100644 --- a/release/Magarena/scripts/Day_of_the_Dragons.groovy +++ b/release/Magarena/scripts/Day_of_the_Dragons.groovy @@ -5,7 +5,7 @@ return new MagicEvent( permanent, this, - "PN exiles all creatures he or she controls. " + + "PN exiles all creatures he or she controls. " + "Then creates that many 5/5 red Dragon creature tokens with flying." ); } diff --git a/release/Magarena/scripts_missing/Defiling_Tears.txt b/release/Magarena/scripts/Defiling_Tears.txt similarity index 55% rename from release/Magarena/scripts_missing/Defiling_Tears.txt rename to release/Magarena/scripts/Defiling_Tears.txt index 4dbb52ef48..ee596165f3 100644 --- a/release/Magarena/scripts_missing/Defiling_Tears.txt +++ b/release/Magarena/scripts/Defiling_Tears.txt @@ -4,8 +4,7 @@ value=1.797 rarity=U type=Instant cost={2}{B} -effect=Until end of turn, target creature becomes black, gets +1/-1, and gains "{B}: Regenerate this creature." +effect=Until end of turn, target creature becomes black and gains "{B}: Regenerate this creature."~*It* gets +1/-1 until end of turn. timing=removal oracle=Until end of turn, target creature becomes black, gets +1/-1, and gains "{B}: Regenerate this creature." -status=needs groovy -# AI target-type problem, weakness, pump, removal, regenerate? + diff --git a/release/Magarena/scripts/Doorkeeper.groovy b/release/Magarena/scripts/Doorkeeper.groovy new file mode 100644 index 0000000000..3bcc88dc23 --- /dev/null +++ b/release/Magarena/scripts/Doorkeeper.groovy @@ -0,0 +1,39 @@ +def CREATURE_WITH_DEFENDER_YOU_CONTROL = new MagicPermanentFilterImpl() { + public boolean accept(final MagicSource source,final MagicPlayer player,final MagicPermanent target) { + return target.isCreature() && target.hasAbility(MagicAbility.Defender) == true + } +}; + +[ + new MagicPermanentActivation( + new MagicActivationHints(MagicTiming.Pump), + "Mill" + ) { + @Override + public Iterable getCostEvent(final MagicPermanent source) { + return [ + new MagicTapEvent(source), + new MagicPayManaCostEvent(source, "{2}{U}") + ]; + } + @Override + public MagicEvent getPermanentEvent(final MagicPermanent source, final MagicPayedCost payedCost) { + return new MagicEvent( + source, + TARGET_PLAYER, + this, + "Target player\$ puts the top X cards from his or her library into his or her graveyard, "+ + "where X is the number of creatures with defender PN control." + ); + } + @Override + public void executeEvent(final MagicGame game, final MagicEvent event) { + event.processTargetPlayer(game, { + final MagicPlayer player = event.getPlayer() + final int amount = event.getPlayer().getNrOfPermanents(CREATURE_WITH_DEFENDER_YOU_CONTROL); + game.logAppendX(event.getPlayer(), amount); + game.doAction(new MillLibraryAction(it, amount)); + }); + } + } +] diff --git a/release/Magarena/scripts/Doorkeeper.txt b/release/Magarena/scripts/Doorkeeper.txt new file mode 100644 index 0000000000..d34226228d --- /dev/null +++ b/release/Magarena/scripts/Doorkeeper.txt @@ -0,0 +1,12 @@ +name=Doorkeeper +image=https://magiccards.info/scans/en/rtr/37.jpg +value=2.878 +rarity=C +type=Creature +subtype=Homunculus +cost={1}{U} +pt=0/4 +ability=Defender +timing=smain +oracle=Defender\n{2}{U}, {T}: Target player puts the top X cards of his or her library into his or her graveyard, where X is the number of creatures with defender you control. +requires_groovy_code diff --git a/release/Magarena/scripts/Dragon_Grip.groovy b/release/Magarena/scripts/Dragon_Grip.groovy new file mode 100644 index 0000000000..e2ecbb3576 --- /dev/null +++ b/release/Magarena/scripts/Dragon_Grip.groovy @@ -0,0 +1,20 @@ +def CREATURE_POWER_4_OR_MORE_CONDITION = new MagicCondition() { + public boolean accept(final MagicSource source) { + return source.getController().controlsPermanent(CREATURE_POWER_4_OR_MORE); + } +}; + +[ + new MagicHandCastActivation( + [CREATURE_POWER_4_OR_MORE_CONDITION, MagicCondition.NOT_SORCERY_CONDITION], + new MagicActivationHints(MagicTiming.Pump,true), + "Flash" + ) { + @Override + public Iterable getCostEvent(final MagicCard source) { + return [ + MagicPayManaCostEvent.Cast(source, "{2}{R}") + ]; + } + } +] diff --git a/release/Magarena/scripts_missing/Dragon_Grip.txt b/release/Magarena/scripts/Dragon_Grip.txt similarity index 69% rename from release/Magarena/scripts_missing/Dragon_Grip.txt rename to release/Magarena/scripts/Dragon_Grip.txt index c0f7d350f7..72b7cc7e47 100644 --- a/release/Magarena/scripts_missing/Dragon_Grip.txt +++ b/release/Magarena/scripts/Dragon_Grip.txt @@ -5,10 +5,9 @@ rarity=U type=Enchantment subtype=Aura cost={2}{R} -ability=If you control a creature with power 4 or greater, you may cast SN as though it had flash.;\ - Enchant creature;\ +ability=Enchant creature;\ Enchanted creature gets +2/+0 and has first strike. timing=aura -enchant=default,creature +enchant=default,pos creature oracle=Ferocious — If you control a creature with power 4 or greater, you may cast Dragon Grip as though it had flash.\nEnchant creature\nEnchanted creature gets +2/+0 and has first strike. -status=needs groovy +requires_groovy_code diff --git a/release/Magarena/scripts/Endless_Ranks_of_the_Dead.groovy b/release/Magarena/scripts/Endless_Ranks_of_the_Dead.groovy index 996a06550c..d666eb97d2 100644 --- a/release/Magarena/scripts/Endless_Ranks_of_the_Dead.groovy +++ b/release/Magarena/scripts/Endless_Ranks_of_the_Dead.groovy @@ -5,7 +5,7 @@ return new MagicEvent( permanent, this, - "PN creates X 2/2 black Zombie creature tokens, " + + "PN creates X 2/2 black Zombie creature tokens, " + "where X is half the number of Zombies he or she controls, rounded down" ); } diff --git a/release/Magarena/scripts/Explorer_s_Scope.groovy b/release/Magarena/scripts/Explorer_s_Scope.groovy new file mode 100644 index 0000000000..6fe8e9f36d --- /dev/null +++ b/release/Magarena/scripts/Explorer_s_Scope.groovy @@ -0,0 +1,48 @@ +def action = { + final MagicGame game, final MagicEvent event -> + if (event.isYes()) { + final MagicCard card = event.getRefCard(); + final MagicPlayer player = event.getPlayer(); + game.doAction(new ReturnCardAction(MagicLocationType.OwnersLibrary, card, event.getPlayer(), MagicPlayMod.TAPPED)); + game.logAppendMessage(player, "${player} puts (${card}) it onto the battlefield tapped.") + } +} + +[ + new AttacksTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent creature) { + final MagicPermanent equippedCreature=permanent.getEquippedCreature(); + return (equippedCreature.isValid() && equippedCreature==creature) ? + new MagicEvent( + equippedCreature, + this, + "PN looks at the top card of his or her library. If it's a land card, "+ + "PN may put it onto the battlefield tapped." + ): + MagicEvent.NONE; + } + + @Override + public void executeEvent(final MagicGame game, final MagicEvent event) { + final MagicPlayer player = event.getPlayer(); + final MagicCardList cards = player.getLibrary().getCardsFromTop(1); + for (final MagicCard card : cards) { + game.doAction(new LookAction(card, player, "top card of your library")); + if (card.hasType(MagicType.Land)) { + game.addEvent(new MagicEvent( + event.getSource(), + new MagicSimpleMayChoice( + MagicSimpleMayChoice.DRAW_CARDS, + 1, + MagicSimpleMayChoice.DEFAULT_YES + ), + card, + action, + "\$" + )); + } + } + } + } +] diff --git a/release/Magarena/scripts_missing/Explorer_s_Scope.txt b/release/Magarena/scripts/Explorer_s_Scope.txt similarity index 62% rename from release/Magarena/scripts_missing/Explorer_s_Scope.txt rename to release/Magarena/scripts/Explorer_s_Scope.txt index ce6b0f0a7a..743943ae5a 100644 --- a/release/Magarena/scripts_missing/Explorer_s_Scope.txt +++ b/release/Magarena/scripts/Explorer_s_Scope.txt @@ -5,8 +5,7 @@ rarity=U type=Artifact subtype=Equipment cost={1} -ability=Whenever equipped creature attacks, look at the top card of your library. If it's a land card, you may put it onto the battlefield tapped.;\ - Equip {1} +ability=Equip {1} timing=equipment oracle=Whenever equipped creature attacks, look at the top card of your library. If it's a land card, you may put it onto the battlefield tapped.\nEquip {1} -status=needs groovy +requires_groovy_code diff --git a/release/Magarena/scripts/Frenzied_Fugue.groovy b/release/Magarena/scripts/Frenzied_Fugue.groovy index 2ffb558a97..17d5c42f37 100644 --- a/release/Magarena/scripts/Frenzied_Fugue.groovy +++ b/release/Magarena/scripts/Frenzied_Fugue.groovy @@ -18,7 +18,7 @@ game.doAction(new GainAbilityAction(permanent, MagicAbility.Haste)); } }, - + new AtYourUpkeepTrigger() { @Override public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) { diff --git a/release/Magarena/scripts_missing/Gigapede.txt b/release/Magarena/scripts/Gigapede.txt similarity index 60% rename from release/Magarena/scripts_missing/Gigapede.txt rename to release/Magarena/scripts/Gigapede.txt index e93c3db563..ad1bc4042d 100644 --- a/release/Magarena/scripts_missing/Gigapede.txt +++ b/release/Magarena/scripts/Gigapede.txt @@ -7,7 +7,6 @@ subtype=Insect cost={3}{G}{G} pt=6/1 ability=Shroud;\ - At the beginning of your upkeep, if SN is in your graveyard, you may discard a card. If you do, return SN to your hand. + Discard a card: Return SN from your graveyard to your hand. Activate this ability only during your upkeep. timing=main -oracle=Shroud\nAt the beginning of your upkeep, if Gigapede is in your graveyard, you may discard a card. If you do, return Gigapede to your hand. -status=not supported: trigger-from-graveyard +oracle=Shroud\nAt the beginning of your upkeep, if Gigapede is in your graveyard, you may discard a card. If you do, return Gigapede to your hand. \ No newline at end of file diff --git a/release/Magarena/scripts/Gremlin_Infestation.groovy b/release/Magarena/scripts/Gremlin_Infestation.groovy index 4f15b69f41..55313327e9 100644 --- a/release/Magarena/scripts/Gremlin_Infestation.groovy +++ b/release/Magarena/scripts/Gremlin_Infestation.groovy @@ -3,7 +3,7 @@ @Override public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicPlayer eotPlayer) { final MagicPermanent enchanted = permanent.getEnchantedPermanent(); - return permanent.isController(eotPlayer) ? + return permanent.isController(eotPlayer) ? new MagicEvent( permanent, enchanted.getController(), diff --git a/release/Magarena/scripts/Guul_Draz_Overseer.groovy b/release/Magarena/scripts/Guul_Draz_Overseer.groovy new file mode 100644 index 0000000000..0906fdd76f --- /dev/null +++ b/release/Magarena/scripts/Guul_Draz_Overseer.groovy @@ -0,0 +1,24 @@ +[ + new OtherEntersBattlefieldTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent otherPermanent) { + final int amount = otherPermanent.hasSubType(MagicSubType.Swamp) ? 2 : 1; + return (otherPermanent.isLand() && otherPermanent.isFriend(permanent)) ? + new MagicEvent( + permanent, + amount, + this, + "Other creatures PN control get +RN/+0 until end of turn." + ) : + MagicEvent.NONE; + } + + @Override + public void executeEvent(final MagicGame game, final MagicEvent event) { + final int amount = event.getRefInt(); + CREATURE_YOU_CONTROL.except(event.getPermanent()).filter(event) each { + game.doAction(new ChangeTurnPTAction(it,amount,0)); + } + } + } +] diff --git a/release/Magarena/scripts_missing/Guul_Draz_Overseer.txt b/release/Magarena/scripts/Guul_Draz_Overseer.txt similarity index 63% rename from release/Magarena/scripts_missing/Guul_Draz_Overseer.txt rename to release/Magarena/scripts/Guul_Draz_Overseer.txt index 6e9ab48863..60fb03dd3b 100644 --- a/release/Magarena/scripts_missing/Guul_Draz_Overseer.txt +++ b/release/Magarena/scripts/Guul_Draz_Overseer.txt @@ -7,8 +7,7 @@ type=Creature subtype=Vampire cost={4}{B}{B} pt=3/4 -ability=Flying;\ - Whenever a land enters the battlefield under your control, other creatures you control get +1/+0 until end of turn. If that land is a Swamp, those creatures get +2/+0 until end of turn instead. +ability=Flying timing=main +requires_groovy_code oracle=Flying\nLandfall — Whenever a land enters the battlefield under your control, other creatures you control get +1/+0 until end of turn. If that land is a Swamp, those creatures get +2/+0 until end of turn instead. -status=needs groovy diff --git a/release/Magarena/scripts/Heart_of_Yavimaya.groovy b/release/Magarena/scripts/Heart_of_Yavimaya.groovy index 07dcd74b9d..bdc0379c21 100644 --- a/release/Magarena/scripts/Heart_of_Yavimaya.groovy +++ b/release/Magarena/scripts/Heart_of_Yavimaya.groovy @@ -9,8 +9,8 @@ def costEffect = new MagicRegularCostEvent("Sacrifice a Forest"); new MagicMayChoice("Sacrifice a Forest?"), payedCost, this, - "PN may\$ sacrifice a Forest. " + - "If you do, put SN onto the battlefield. " + + "PN may\$ sacrifice a Forest. " + + "If you do, put SN onto the battlefield. " + "If you don't, put it into its owner's graveyard." ); } diff --git a/release/Magarena/scripts/Intimidation_Bolt.groovy b/release/Magarena/scripts/Intimidation_Bolt.groovy index b94251596c..d3ac29491d 100644 --- a/release/Magarena/scripts/Intimidation_Bolt.groovy +++ b/release/Magarena/scripts/Intimidation_Bolt.groovy @@ -18,7 +18,7 @@ outerGame.doAction(new AddStaticAction(new MagicStatic(MagicLayer.Game, MagicStatic.UntilEOT) { @Override public void modGame(final MagicPermanent source, final MagicGame game) { - CREATURE.except(it).filter(it) each { + CREATURE.except(it).filter(it) each { it.addAbility(MagicAbility.CannotAttack); } } diff --git a/release/Magarena/scripts/Into_the_Wilds.groovy b/release/Magarena/scripts/Into_the_Wilds.groovy new file mode 100644 index 0000000000..06d29972d6 --- /dev/null +++ b/release/Magarena/scripts/Into_the_Wilds.groovy @@ -0,0 +1,45 @@ +def action = { + final MagicGame game, final MagicEvent event -> + if (event.isYes()) { + final MagicCard card = event.getRefCard(); + final MagicPlayer player = event.getPlayer(); + game.doAction(new ReturnCardAction(MagicLocationType.OwnersLibrary, card, event.getPlayer())); + game.logAppendMessage(player, "${player} puts (${card}) it onto the battlefield.") + } +} + +[ + new AtYourUpkeepTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) { + return new MagicEvent( + permanent, + this, + "PN looks at the top card of his or her library. If it's a land card, "+ + "PN may put it onto the battlefield." + ); + } + + @Override + public void executeEvent(final MagicGame game, final MagicEvent event) { + final MagicPlayer player = event.getPlayer(); + final MagicCardList cards = player.getLibrary().getCardsFromTop(1); + for (final MagicCard card : cards) { + game.doAction(new LookAction(card, player, "top card of your library")); + if (card.hasType(MagicType.Land)) { + game.addEvent(new MagicEvent( + event.getSource(), + new MagicSimpleMayChoice( + MagicSimpleMayChoice.DRAW_CARDS, + 1, + MagicSimpleMayChoice.DEFAULT_YES + ), + card, + action, + "\$" + )); + } + } + } + } +] diff --git a/release/Magarena/scripts_missing/Into_the_Wilds.txt b/release/Magarena/scripts/Into_the_Wilds.txt similarity index 63% rename from release/Magarena/scripts_missing/Into_the_Wilds.txt rename to release/Magarena/scripts/Into_the_Wilds.txt index f5f5d6b3c3..7b242861e1 100644 --- a/release/Magarena/scripts_missing/Into_the_Wilds.txt +++ b/release/Magarena/scripts/Into_the_Wilds.txt @@ -4,7 +4,6 @@ value=3.598 rarity=R type=Enchantment cost={3}{G} -ability=At the beginning of your upkeep, look at the top card of your library. If it's a land card, you may put it onto the battlefield. timing=enchantment oracle=At the beginning of your upkeep, look at the top card of your library. If it's a land card, you may put it onto the battlefield. -status=needs groovy +requires_groovy_code diff --git a/release/Magarena/scripts/Keening_Stone.groovy b/release/Magarena/scripts/Keening_Stone.groovy index e7acd99762..0c7e93340f 100644 --- a/release/Magarena/scripts/Keening_Stone.groovy +++ b/release/Magarena/scripts/Keening_Stone.groovy @@ -8,7 +8,6 @@ return [ new MagicTapEvent(source), new MagicPayManaCostEvent(source, "{5}") - ]; } @Override diff --git a/release/Magarena/scripts/Kjeldoran_Outpost.groovy b/release/Magarena/scripts/Kjeldoran_Outpost.groovy index 0b594f39db..67e238c71c 100644 --- a/release/Magarena/scripts/Kjeldoran_Outpost.groovy +++ b/release/Magarena/scripts/Kjeldoran_Outpost.groovy @@ -9,8 +9,8 @@ def costEffect = new MagicRegularCostEvent("Sacrifice a Plains"); new MagicMayChoice("Sacrifice a Plains?"), payedCost, this, - "PN may\$ sacrifice a Plains. " + - "If you do, put SN onto the battlefield. " + + "PN may\$ sacrifice a Plains. " + + "If you do, put SN onto the battlefield. " + "If you don't, put it into its owner's graveyard." ); } diff --git a/release/Magarena/scripts/Living_Hive.groovy b/release/Magarena/scripts/Living_Hive.groovy index bf68d0aae7..3285a89317 100644 --- a/release/Magarena/scripts/Living_Hive.groovy +++ b/release/Magarena/scripts/Living_Hive.groovy @@ -6,7 +6,7 @@ permanent, damage.getDealtAmount(), this, - "PN creates RN 1/1 green Insect creature tokens." + "PN creates RN 1/1 green Insect creature tokens." ); } @Override diff --git a/release/Magarena/scripts/Mechanized_Production.groovy b/release/Magarena/scripts/Mechanized_Production.groovy index 8eeeca4f42..5b90929a34 100644 --- a/release/Magarena/scripts/Mechanized_Production.groovy +++ b/release/Magarena/scripts/Mechanized_Production.groovy @@ -3,7 +3,7 @@ @Override public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) { final MagicPermanent enchanted = permanent.getEnchantedPermanent() - return enchanted.isValid() ? + return enchanted.isValid() ? new MagicEvent( permanent, enchanted, diff --git a/release/Magarena/scripts/Moonmist.groovy b/release/Magarena/scripts/Moonmist.groovy index 389218594a..521384be16 100644 --- a/release/Magarena/scripts/Moonmist.groovy +++ b/release/Magarena/scripts/Moonmist.groovy @@ -2,8 +2,8 @@ def TRASNFORM = MagicRuleEventAction.create("Transform all Humans."); def NONWEREWOLF_CREATURES = new MagicPermanentFilterImpl() { public boolean accept(final MagicSource source,final MagicPlayer player,final MagicPermanent target) { - return !target.hasSubType(MagicSubType.Werewolf) && - !target.hasSubType(MagicSubType.Wolf) && + return !target.hasSubType(MagicSubType.Werewolf) && + !target.hasSubType(MagicSubType.Wolf) && target.isCreature(); } }; @@ -14,7 +14,7 @@ def NONWEREWOLF_CREATURES = new MagicPermanentFilterImpl() { return new MagicEvent( cardOnStack, this, - "Transform all Humans. " + + "Transform all Humans. " + "Prevent all combat damage that would be dealt this turn by creatures other than Werewolves and Wolves." ); } diff --git a/release/Magarena/scripts/Mox_Diamond.groovy b/release/Magarena/scripts/Mox_Diamond.groovy index cf73b087b9..1891109619 100644 --- a/release/Magarena/scripts/Mox_Diamond.groovy +++ b/release/Magarena/scripts/Mox_Diamond.groovy @@ -7,8 +7,8 @@ new MagicMayChoice(), payedCost, this, - "PN may\$ discard a land card. " + - "If you do, put SN onto the battlefield. " + + "PN may\$ discard a land card. " + + "If you do, put SN onto the battlefield. " + "If you don't, put it into its owner's graveyard." ); } diff --git a/release/Magarena/scripts/Nahiri__the_Lithomancer.groovy b/release/Magarena/scripts/Nahiri__the_Lithomancer.groovy index 90a262160f..afb3abb823 100644 --- a/release/Magarena/scripts/Nahiri__the_Lithomancer.groovy +++ b/release/Magarena/scripts/Nahiri__the_Lithomancer.groovy @@ -62,7 +62,7 @@ def AN_EQUIPMENT_YOU_CONTROL = new MagicTargetChoice("an Equipment you control") public void executeEvent(final MagicGame game, final MagicEvent event) { if (event.isYes()) { event.processTargetCard(game, { - final MagicLocationType from = it.isInHand() ? MagicLocationType.OwnersHand : MagicLocationType.Graveyard; + final MagicLocationType from = it.isInHand() ? MagicLocationType.OwnersHand : MagicLocationType.Graveyard; game.doAction(new ReturnCardAction(from,it,event.getPlayer())); }); } diff --git a/release/Magarena/scripts/Nissa__Nature_s_Artisan.groovy b/release/Magarena/scripts/Nissa__Nature_s_Artisan.groovy index ce356e269c..5bd5243fb3 100644 --- a/release/Magarena/scripts/Nissa__Nature_s_Artisan.groovy +++ b/release/Magarena/scripts/Nissa__Nature_s_Artisan.groovy @@ -1,7 +1,7 @@ [ - new MagicPlaneswalkerActivation(-4) { + new MagicPlaneswalkerActivation(-4) { @Override - public MagicEvent getPermanentEvent(final MagicPermanent source, final MagicPayedCost payedCost) { + public MagicEvent getPermanentEvent(final MagicPermanent source, final MagicPayedCost payedCost) { return new MagicEvent( source, this, diff --git a/release/Magarena/scripts/Raving_Dead.groovy b/release/Magarena/scripts/Raving_Dead.groovy index b4d34ca6f3..40da026539 100644 --- a/release/Magarena/scripts/Raving_Dead.groovy +++ b/release/Magarena/scripts/Raving_Dead.groovy @@ -1,4 +1,4 @@ -[ +[ new ThisCombatDamagePlayerTrigger() { @Override public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicDamage damage) { diff --git a/release/Magarena/scripts/Rekindling_Phoenix.txt b/release/Magarena/scripts/Rekindling_Phoenix.txt index 69af079ef4..47c3b00319 100644 --- a/release/Magarena/scripts/Rekindling_Phoenix.txt +++ b/release/Magarena/scripts/Rekindling_Phoenix.txt @@ -7,6 +7,6 @@ subtype=Phoenix cost={2}{R}{R} pt=4/3 ability=Flying;\ - When SN dies, create a 0/1 red Elemental creature token. + When SN dies, create a 0/1 red Elemental creature token. timing=main oracle=Flying\nWhen Rekindling Phoenix dies, create a 0/1 red Elemental creature token with "At the beginning of your upkeep, sacrifice this creature and return target card named Rekindling Phoenix from your graveyard to the battlefield. It gains haste until end of turn." diff --git a/release/Magarena/scripts/Ritual_of_the_Returned.groovy b/release/Magarena/scripts/Ritual_of_the_Returned.groovy index 38a67431ba..d2207accbc 100644 --- a/release/Magarena/scripts/Ritual_of_the_Returned.groovy +++ b/release/Magarena/scripts/Ritual_of_the_Returned.groovy @@ -6,7 +6,7 @@ cardOnStack, TARGET_CREATURE_CARD_FROM_GRAVEYARD, this, - "PN exiles target creature card from his or her graveyard.\$ " + + "PN exiles target creature card from his or her graveyard.\$ " + "PN creates a black Zombie creature token. Its power is equal to "+ "that card's power and its toughness is equal to that card's toughness." ); diff --git a/release/Magarena/scripts/Salt_Road_Ambushers.groovy b/release/Magarena/scripts/Salt_Road_Ambushers.groovy new file mode 100644 index 0000000000..1ee6b43fce --- /dev/null +++ b/release/Magarena/scripts/Salt_Road_Ambushers.groovy @@ -0,0 +1,19 @@ +[ + new TurnedFaceUpTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent otherPermanent) { + return (permanent != otherPermanent && otherPermanent.isFriend(permanent) && otherPermanent.hasType(MagicType.Creature)) ? + new MagicEvent( + permanent, + otherPermanent, + this, + "PN puts two +1/+1 counters on RN." + ): + MagicEvent.NONE; + } + @Override + public void executeEvent(final MagicGame game, final MagicEvent event) { + game.doAction(new ChangeCountersAction(event.getRefPermanent(),MagicCounterType.PlusOne,2)); + } + } +] diff --git a/release/Magarena/scripts_missing/Salt_Road_Ambushers.txt b/release/Magarena/scripts/Salt_Road_Ambushers.txt similarity index 64% rename from release/Magarena/scripts_missing/Salt_Road_Ambushers.txt rename to release/Magarena/scripts/Salt_Road_Ambushers.txt index 96763407a9..00d3ab3e6b 100644 --- a/release/Magarena/scripts_missing/Salt_Road_Ambushers.txt +++ b/release/Magarena/scripts/Salt_Road_Ambushers.txt @@ -6,8 +6,7 @@ type=Creature subtype=Hound,Warrior cost={3}{G} pt=3/3 -ability=Whenever another permanent you control is turned face up, if it's a creature, put two +1/+1 counters on it.;\ - Megamorph {3}{G}{G} +ability=Megamorph {3}{G}{G} timing=main +requires_groovy_code oracle=Whenever another permanent you control is turned face up, if it's a creature, put two +1/+1 counters on it.\nMegamorph {3}{G}{G} -status=needs groovy diff --git a/release/Magarena/scripts/Sewer_Nemesis.groovy b/release/Magarena/scripts/Sewer_Nemesis.groovy index 48e6af4f62..6cad0c525e 100644 --- a/release/Magarena/scripts/Sewer_Nemesis.groovy +++ b/release/Magarena/scripts/Sewer_Nemesis.groovy @@ -6,7 +6,7 @@ pt.set(amount,amount); } }, - + new OtherSpellIsCastTrigger() { @Override public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicCardOnStack cardOnStack) { diff --git a/release/Magarena/scripts/Soul_Scar_Mage.groovy b/release/Magarena/scripts/Soul_Scar_Mage.groovy index f4744087ec..b298cb4dd4 100644 --- a/release/Magarena/scripts/Soul_Scar_Mage.groovy +++ b/release/Magarena/scripts/Soul_Scar_Mage.groovy @@ -5,7 +5,7 @@ if (!damage.isCombat() && damage.isTargetCreature() && damage.getTargetPermanent().isController(permanent.getOpponent())) { - + final int amount = damage.replace(); game.doAction(new ChangeCountersAction(damage.getTargetPermanent(), MagicCounterType.MinusOne, amount)); } diff --git a/release/Magarena/scripts/Stalking_Yeti.groovy b/release/Magarena/scripts/Stalking_Yeti.groovy index 77b09b1258..f7044af378 100644 --- a/release/Magarena/scripts/Stalking_Yeti.groovy +++ b/release/Magarena/scripts/Stalking_Yeti.groovy @@ -11,7 +11,7 @@ "If SN is on the battlefield, it deals damage equal to its power to target creature an opponent controls\$ " + "and that creature deals damage equal to its power to SN." ): - MagicEvent.NONE + MagicEvent.NONE } @Override diff --git a/release/Magarena/scripts/Tainted_Remedy.groovy b/release/Magarena/scripts/Tainted_Remedy.groovy new file mode 100644 index 0000000000..4410190ffa --- /dev/null +++ b/release/Magarena/scripts/Tainted_Remedy.groovy @@ -0,0 +1,25 @@ +[ + new IfLifeWouldChangeTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final ChangeLifeAction act) { + int amount = 0; + if (permanent.isOpponent(act.getPlayer()) && act.getLifeChange() > 0) { + amount = act.getLifeChange(); + act.setLifeChange(0); + return new MagicEvent( + permanent, + act.player, + amount, + this, + "PN loses RN Life." + ); + } else { + return MagicEvent.NONE; + } + } + @Override + public void executeEvent(final MagicGame game, final MagicEvent event) { + game.doAction(new ChangeLifeAction(event.getPlayer(),-event.getRefInt())); + } + } +] diff --git a/release/Magarena/scripts_missing/Tainted_Remedy.txt b/release/Magarena/scripts/Tainted_Remedy.txt similarity index 70% rename from release/Magarena/scripts_missing/Tainted_Remedy.txt rename to release/Magarena/scripts/Tainted_Remedy.txt index d1f003b327..685431ce2d 100644 --- a/release/Magarena/scripts_missing/Tainted_Remedy.txt +++ b/release/Magarena/scripts/Tainted_Remedy.txt @@ -5,7 +5,6 @@ value=2.500 rarity=R type=Enchantment cost={2}{B} -ability=If an opponent would gain life, that player loses that much life instead. timing=enchantment oracle=If an opponent would gain life, that player loses that much life instead. -status=needs groovy +requires_groovy_code diff --git a/release/Magarena/scripts/Terrifying_Presence.groovy b/release/Magarena/scripts/Terrifying_Presence.groovy new file mode 100644 index 0000000000..919840260c --- /dev/null +++ b/release/Magarena/scripts/Terrifying_Presence.groovy @@ -0,0 +1,21 @@ +[ + new MagicSpellCardEvent() { + @Override + public MagicEvent getEvent(final MagicCardOnStack cardOnStack,final MagicPayedCost payedCost) { + return new MagicEvent( + cardOnStack, + TARGET_CREATURE, + this, + "Prevent all combat damage that would be dealt by creatures other than target creature\$ this turn." + ); + } + @Override + public void executeEvent(final MagicGame Game, final MagicEvent event) { + event.processTargetPermanent(Game, { + CREATURE.except(it).filter(it) each { + Game.doAction(new AddTurnTriggerAction(it, PreventDamageTrigger.PreventCombatDamageDealtBy)); + } + }); + } + } +] diff --git a/release/Magarena/scripts_missing/Terrifying_Presence.txt b/release/Magarena/scripts/Terrifying_Presence.txt similarity index 68% rename from release/Magarena/scripts_missing/Terrifying_Presence.txt rename to release/Magarena/scripts/Terrifying_Presence.txt index 478b66599d..1d0570c3c4 100644 --- a/release/Magarena/scripts_missing/Terrifying_Presence.txt +++ b/release/Magarena/scripts/Terrifying_Presence.txt @@ -5,7 +5,6 @@ value=3.955 rarity=C type=Instant cost={1}{G} -effect=Prevent all combat damage that would be dealt by creatures other than target creature this turn. timing=removal +requires_groovy_code oracle=Prevent all combat damage that would be dealt by creatures other than target creature this turn. -status=needs groovy diff --git a/release/Magarena/scripts/Thrasios__Triton_Hero.groovy b/release/Magarena/scripts/Thrasios__Triton_Hero.groovy new file mode 100644 index 0000000000..3d8c8e9de7 --- /dev/null +++ b/release/Magarena/scripts/Thrasios__Triton_Hero.groovy @@ -0,0 +1,47 @@ +def action = { + final MagicGame game, final MagicEvent event -> + final MagicPlayer player = event.getPlayer(); + for (final MagicCard card : player.getLibrary().getCardsFromTop(1)) { + game.doAction(new RevealAction(card)); + if (card.hasType(MagicType.Land)) { + game.doAction(new ReturnCardAction(MagicLocationType.OwnersLibrary,card,event.getPlayer(),MagicPlayMod.TAPPED)); + } else { + game.doAction(new DrawAction(event.getPlayer())); + } + } +} + +[ + new MagicPermanentActivation( + new MagicActivationHints(MagicTiming.Pump), + "Scry" + ) { + + @Override + public Iterable getCostEvent(final MagicPermanent source) { + return [ + new MagicPayManaCostEvent(source,"{4}") + ]; + } + + @Override + public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) { + return new MagicEvent( + source, + this, + "Scry 1, then reveal the top card of PN's library. If it's a land card, PN puts it onto the battlefield tapped. " + + "Otherwise, PN draw a card." + ); + } + @Override + public void executeEvent(final MagicGame game, final MagicEvent event) { + game.addEvent(new MagicScryEvent(event)); + game.addEvent(new MagicEvent( + event.getSource(), + event.getPlayer(), + action, + "" + )); + } + } +] diff --git a/release/Magarena/scripts_missing/Thrasios__Triton_Hero.txt b/release/Magarena/scripts/Thrasios__Triton_Hero.txt similarity index 65% rename from release/Magarena/scripts_missing/Thrasios__Triton_Hero.txt rename to release/Magarena/scripts/Thrasios__Triton_Hero.txt index 2eeb367ee5..f0ddbce85f 100644 --- a/release/Magarena/scripts_missing/Thrasios__Triton_Hero.txt +++ b/release/Magarena/scripts/Thrasios__Triton_Hero.txt @@ -7,8 +7,7 @@ type=Legendary,Creature subtype=Merfolk,Wizard cost={G}{U} pt=1/3 -ability={4}: Scry 1, then reveal the top card of your library. If it's a land card, put it onto the battlefield tapped. Otherwise, draw a card.;\ - Partner +ability=Partner timing=main oracle={4}: Scry 1, then reveal the top card of your library. If it's a land card, put it onto the battlefield tapped. Otherwise, draw a card.\nPartner -status=needs groovy +requires_groovy_code diff --git a/release/Magarena/scripts/Trail_of_Mystery.groovy b/release/Magarena/scripts/Trail_of_Mystery.groovy new file mode 100644 index 0000000000..c63faf3a47 --- /dev/null +++ b/release/Magarena/scripts/Trail_of_Mystery.groovy @@ -0,0 +1,19 @@ +[ + new TurnedFaceUpTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent otherPermanent) { + return (otherPermanent.isFriend(permanent) && otherPermanent.hasType(MagicType.Creature)) ? + new MagicEvent( + permanent, + otherPermanent, + this, + "RN gets +2/+2 until end of turn." + ): + MagicEvent.NONE; + } + @Override + public void executeEvent(final MagicGame game, final MagicEvent event) { + game.doAction(new ChangeTurnPTAction(event.getRefPermanent(),2,2)); + } + } +] diff --git a/release/Magarena/scripts_missing/Trail_of_Mystery.txt b/release/Magarena/scripts/Trail_of_Mystery.txt similarity index 82% rename from release/Magarena/scripts_missing/Trail_of_Mystery.txt rename to release/Magarena/scripts/Trail_of_Mystery.txt index 319c912343..6a266977e1 100644 --- a/release/Magarena/scripts_missing/Trail_of_Mystery.txt +++ b/release/Magarena/scripts/Trail_of_Mystery.txt @@ -4,8 +4,7 @@ value=2.500 rarity=R type=Enchantment cost={1}{G} -ability=Whenever a face-down creature enters the battlefield under your control, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.;\ - Whenever a permanent you control is turned face up, if it's a creature, it gets +2/+2 until end of turn. +ability=Whenever a face-down creature enters the battlefield under your control, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library. timing=enchantment +requires_groovy_code oracle=Whenever a face-down creature enters the battlefield under your control, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.\nWhenever a permanent you control is turned face up, if it's a creature, it gets +2/+2 until end of turn. -status=needs groovy diff --git a/release/Magarena/scripts/Undergrowth_Champion.groovy b/release/Magarena/scripts/Undergrowth_Champion.groovy index 283d46c3b5..a9fef2b22c 100644 --- a/release/Magarena/scripts/Undergrowth_Champion.groovy +++ b/release/Magarena/scripts/Undergrowth_Champion.groovy @@ -2,10 +2,10 @@ new PreventDamageTrigger() { @Override public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) { - if (damage.getTarget() == permanent && permanent.hasCounters(MagicCounterType.PlusOne)) { + if (damage.getTarget() == permanent && permanent.hasCounters(MagicCounterType.PlusOne)) { damage.prevent(); game.doAction(new ChangeCountersAction(permanent, MagicCounterType.PlusOne,-1)); - } + } return MagicEvent.NONE; } } diff --git a/release/Magarena/scripts/Wasitora__Nekoru_Queen.groovy b/release/Magarena/scripts/Wasitora__Nekoru_Queen.groovy index 30f899439e..f398dbc379 100644 --- a/release/Magarena/scripts/Wasitora__Nekoru_Queen.groovy +++ b/release/Magarena/scripts/Wasitora__Nekoru_Queen.groovy @@ -7,7 +7,7 @@ permanent.getController(), damage.getTargetPlayer(), this, - "RN sacrifices a creature. " + + "RN sacrifices a creature. " + "If RN can't, PN create a 3/3 black, red, and green Cat Dragon creature token with flying." ); } diff --git a/release/Magarena/scripts/Yomiji__Who_Bars_the_Way.groovy b/release/Magarena/scripts/Yomiji__Who_Bars_the_Way.groovy new file mode 100644 index 0000000000..694b13d6b0 --- /dev/null +++ b/release/Magarena/scripts/Yomiji__Who_Bars_the_Way.groovy @@ -0,0 +1,19 @@ +[ + new OtherDiesTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent died) { + return (permanent != died && died.hasType(MagicType.Legendary)) ? + new MagicEvent( + permanent, + died.getCard(), + this, + "Returns RN to its owner's hand." + ): + MagicEvent.NONE; + } + @Override + public void executeEvent(final MagicGame game, final MagicEvent event) { + game.doAction(new ShiftCardAction(event.getRefCard(), MagicLocationType.Graveyard, MagicLocationType.OwnersHand)); + } + } +] diff --git a/release/Magarena/scripts_missing/Yomiji__Who_Bars_the_Way.txt b/release/Magarena/scripts/Yomiji__Who_Bars_the_Way.txt similarity index 67% rename from release/Magarena/scripts_missing/Yomiji__Who_Bars_the_Way.txt rename to release/Magarena/scripts/Yomiji__Who_Bars_the_Way.txt index e7afa9d342..1fce170c99 100644 --- a/release/Magarena/scripts_missing/Yomiji__Who_Bars_the_Way.txt +++ b/release/Magarena/scripts/Yomiji__Who_Bars_the_Way.txt @@ -6,7 +6,6 @@ type=Legendary,Creature subtype=Spirit cost={5}{W}{W} pt=4/4 -ability=Whenever a legendary permanent other than SN is put into a graveyard from the battlefield, return that card to its owner's hand. timing=main +requires_groovy_code oracle=Whenever a legendary permanent other than Yomiji, Who Bars the Way is put into a graveyard from the battlefield, return that card to its owner's hand. -status=needs groovy diff --git a/release/Magarena/scripts_missing/Doorkeeper.txt b/release/Magarena/scripts_missing/Doorkeeper.txt deleted file mode 100644 index 9dacf68d9f..0000000000 --- a/release/Magarena/scripts_missing/Doorkeeper.txt +++ /dev/null @@ -1,14 +0,0 @@ -name=Doorkeeper -image=https://magiccards.info/scans/en/ima/53.jpg -image_updated=2017-04-12 -value=2.878 -rarity=C -type=Creature -subtype=Homunculus -cost={1}{U} -pt=0/4 -ability=Defender;\ - {2}{U}, {T}: Target player puts the top X cards of his or her library into his or her graveyard, where X is the number of creatures with defender you control. -timing=smain -oracle=Defender\n{2}{U}, {T}: Target player puts the top X cards of his or her library into his or her graveyard, where X is the number of creatures with defender you control. -status=needs groovy