Added/fixed primitives, updated the "missing_cards_by_sets" folder, added a new trigger when a player shuffles his/her library, added new keywords "plastshlturn" and "olastshlturn" to retrieve the last turn a player shuffled his/her library, refactoring of some source files.

This commit is contained in:
Vittorio Alfieri
2021-08-30 23:02:54 +02:00
parent e1f91a50f6
commit 45de20c8d3
42 changed files with 584 additions and 737 deletions

View File

@@ -20,12 +20,6 @@ power=2
toughness=5
[/card]
[card]
name=Doomsday
text=Search your library and graveyard for five cards and exile the rest. Put the chosen cards on top of your library in any order. You lose half your life, rounded up.
mana={B}{B}{B}
type=Sorcery
[/card]
[card]
name=Reverse Damage
text=The next time a source of your choice would deal damage to you this turn, prevent that damage. You gain life equal to the damage prevented this way.
mana={1}{W}{W}
@@ -38,12 +32,6 @@ mana={4}
type=Artifact
[/card]
[card]
name=Tariff
text=Each player sacrifices the creature he or she controls with the highest converted mana cost unless he or she pays that creature's mana cost. If two creatures a player controls are tied for highest cost, that player chooses one.
mana={1}{W}
type=Sorcery
[/card]
[card]
name=Library of Lat-Nam
text=An opponent chooses one — You draw three cards at the beginning of the next turn's upkeep; or you search your library for a card, put that card into your hand, then shuffle your library.
mana={4}{U}

View File

@@ -59,16 +59,6 @@ mana={2}
type=Artifact
[/card]
[card]
name=Notion Thief
abilities=flash
text=Flash -- If an opponent would draw a card except the first one he or she draws in each of his or her draw steps, instead that player skips that draw and you draw a card.
mana={2}{U}{B}
type=Creature
subtype=Human Rogue
power=3
toughness=1
[/card]
[card]
name=Deadly Designs
text={2}: Put a plot counter on Deadly Designs. Any player may activate this ability. -- When there are five or more plot counters on Deadly Designs, sacrifice it. If you do, destroy up to two target creatures.
mana={1}{B}
@@ -84,9 +74,3 @@ subtype=Angel
power=5
toughness=5
[/card]
[card]
name=Doomsday
text=Search your library and graveyard for five cards and exile the rest. Put the chosen cards on top of your library in any order. You lose half your life, rounded up.
mana={B}{B}{B}
type=Sorcery
[/card]

View File

@@ -64,13 +64,6 @@ mana={4}{U}{U}
type=Instant
[/card]
[card]
name=Cobra Trap
text=If a noncreature permanent under your control was destroyed this turn by a spell or ability an opponent controlled, you may pay {G} rather than pay Cobra Trap's mana cost. -- Put four 1/1 green Snake creature tokens onto the battlefield.
mana={4}{G}{G}
type=Instant
subtype=Trap
[/card]
[card]
name=Karmic Justice
text=Whenever a spell or ability an opponent controls destroys a noncreature permanent you control, you may destroy target permanent that opponent controls.
mana={2}{W}

View File

@@ -56,12 +56,6 @@ mana={2}{W}{W}
type=Sorcery
[/card]
[card]
name=Silumgar's Command
text=Choose two — -- • Counter target noncreature spell. -- • Return target permanent to its owner's hand. -- • Target creature gets -3/-3 until end of turn. -- • Destroy target planeswalker.
mana={3}{U}{B}
type=Instant
[/card]
[card]
name=Teferi's Protection
abilities=exiledeath
text=Until your next turn, your life total can't change and you gain protection from everything. All permanents you control phase out. (While they're phased out, they're treated as though they don't exist. They phase in before you untap during your untap step.) -- Exile Teferi's Protection.

View File

@@ -114,13 +114,6 @@ mana={5}{R}
type=Sorcery
[/card]
[card]
name=Cranial Extraction
text=Name a nonland card. Search target player's graveyard, hand, and library for all cards with that name and exile them. Then that player shuffles his or her library.
mana={3}{B}
type=Sorcery
subtype=Arcane
[/card]
[card]
name=Dampen Thought
text=Target player puts the top four cards of his or her library into his or her graveyard. -- Splice onto Arcane {1}{U} (As you cast an Arcane spell, you may reveal this card from your hand and pay its splice cost. If you do, add this card's effects to that spell.)
mana={1}{U}

View File

@@ -85,29 +85,12 @@ mana={1}{R}
type=Instant
[/card]
[card]
name=Cobra Trap
text=If a noncreature permanent under your control was destroyed this turn by a spell or ability an opponent controlled, you may pay {G} rather than pay Cobra Trap's mana cost. -- Put four 1/1 green Snake creature tokens onto the battlefield.
mana={4}{G}{G}
type=Instant
subtype=Trap
[/card]
[card]
name=Pollen Lullaby
text=Prevent all combat damage that would be dealt this turn. Clash with an opponent. If you win, creatures that player controls don't untap during the player's next untap step. (Each clashing player reveals the top card of his or her library, then puts that card on the top or bottom. A player wins if his or her card had a higher converted mana cost.)
mana={1}{W}
type=Instant
[/card]
[card]
name=Gomazoa
abilities=defender,flying
text=Defender, flying -- {T}: Put Gomazoa and each creature it's blocking on top of their owners' libraries, then those players shuffle their libraries.
mana={2}{U}
type=Creature
subtype=Jellyfish
power=0
toughness=3
[/card]
[card]
name=Scattering Stroke
text=Counter target spell. Clash with an opponent. If you win, at the beginning of your next main phase, you may add {X} to your mana pool, where X is that spell's converted mana cost. (Each clashing player reveals the top card of his or her library, then puts that card on the top or bottom. A player wins if his or her card had a higher converted mana cost.)
mana={2}{U}{U}

View File

@@ -201,15 +201,6 @@ power=2
toughness=2
[/card]
[card]
name=Wood Sage
text={T}: Name a creature card. Reveal the top four cards of your library and put all of them with that name into your hand. Put the rest into your graveyard.
mana={G}{U}
type=Creature
subtype=Human Druid
power=1
toughness=1
[/card]
[card]
name=Whispergear Sneak
text=Draft Whispergear Sneak face up. -- During the draft, you may turn Whispergear Sneak face down. If you do, look at any unopened booster pack in the draft or any booster pack not being looked at by another player.
mana={1}

View File

@@ -17,16 +17,6 @@ mana={U}
type=Sorcery
[/card]
[card]
name=Notion Thief
abilities=flash
text=Flash -- If an opponent would draw a card except the first one he or she draws in each of his or her draw steps, instead that player skips that draw and you draw a card.
mana={2}{U}{B}
type=Creature
subtype=Human Rogue
power=3
toughness=1
[/card]
[card]
name=Varolz, the Scar-Striped
text=Each creature card in your graveyard has scavenge. The scavenge cost is equal to its mana cost. (Exile a creature card from your graveyard and pay its mana cost: Put a number of +1/+1 counters equal to that card's power on target creature. Scavenge only as a sorcery.) -- Sacrifice another creature: Regenerate Varolz, the Scar-Striped.
mana={1}{B}{G}

View File

@@ -99,12 +99,6 @@ power=1
toughness=2
[/card]
[card]
name=Silumgar's Command
text=Choose two — -- • Counter target noncreature spell. -- • Return target permanent to its owner's hand. -- • Target creature gets -3/-3 until end of turn. -- • Destroy target planeswalker.
mana={3}{U}{B}
type=Instant
[/card]
[card]
name=Obscuring AEther
text=Face-down creature spells you cast cost {1} less to cast. -- {1}{G}: Turn Obscuring AEther face down. (It becomes a 2/2 creature.)
mana={G}

View File

@@ -5,12 +5,6 @@ mana={G}{W}
type=Instant
[/card]
[card]
name=Silumgar's Command
text=Choose two — -- • Counter target noncreature spell. -- • Return target permanent to its owner's hand. -- • Target creature gets -3/-3 until end of turn. -- • Destroy target planeswalker.
mana={3}{U}{B}
type=Instant
[/card]
[card]
name=Stifle
text=Counter target activated or triggered ability. (Mana abilities can't be targeted.)
mana={U}

View File

@@ -301,15 +301,6 @@ power=3
toughness=3
[/card]
[card]
name=Merieke Ri Berit
text=Merieke Ri Berit doesn't untap during your untap step. -- {T}: Gain control of target creature for as long as you control Merieke Ri Berit. When Merieke Ri Berit leaves the battlefield or becomes untapped, destroy that creature. It can't be regenerated.
mana={W}{U}{B}
type=Legendary Creature
subtype=Human
power=1
toughness=1
[/card]
[card]
name=Chaos Moon
text=At the beginning of each upkeep, count the number of permanents. If the number is odd, until end of turn, red creatures get +1/+1 and whenever a player taps a Mountain for mana, that player adds {R} to his or her mana pool (in addition to the mana the land produces). If the number is even, until end of turn, red creatures get -1/-1 and if a player taps a Mountain for mana, that Mountain produces colorless mana instead of any other type.
mana={3}{R}

View File

@@ -5,12 +5,6 @@ mana={4}
type=Legendary Artifact
[/card]
[card]
name=Stain the Mind
text=Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.) -- Name a nonland card. Search target player's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.
mana={4}{B}
type=Sorcery
[/card]
[card]
name=Might Makes Right
text=At the beginning of combat on your turn, if you control each creature on the battlefield with the greatest power, gain control of target creature an opponent controls until end of turn. Untap that creature. It gains haste until end of turn. (It can attack and {T} this turn.)
mana={5}{R}

View File

@@ -1,10 +1,4 @@
[card]
name=Pyromancer Ascension
text=Whenever you cast an instant or sorcery spell that has the same name as a card in your graveyard, you may put a quest counter on Pyromancer Ascension. -- Whenever you cast an instant or sorcery spell while Pyromancer Ascension has two or more quest counters on it, you may copy that spell. You may choose new targets for the copy.
mana={1}{R}
type=Enchantment
[/card]
[card]
name=Soul Ransom
text=Enchant creature -- You control enchanted creature. -- Discard two cards: Soul Ransom's controller sacrifices it, then draws two cards. Only any opponent may activate this ability.
mana={2}{U}{B}
@@ -12,13 +6,6 @@ type=Enchantment
subtype=Aura
[/card]
[card]
name=Summoning Trap
text=If a creature spell you cast this turn was countered by a spell or ability an opponent controlled, you may pay {0} rather than pay Summoning Trap's mana cost. -- Look at the top seven cards of your library. You may put a creature card from among them onto the battlefield. Put the rest on the bottom of your library in any order.
mana={4}{G}{G}
type=Instant
subtype=Trap
[/card]
[card]
name=Wort, the Raidmother
text=When Wort, the Raidmother enters the battlefield, put two 1/1 red and green Goblin Warrior creature tokens onto the battlefield. -- Each red or green instant or sorcery spell you cast has conspire. (As you cast the spell, you may tap two untapped creatures you control that share a color with it. When you do, copy it and you may choose new targets for the copy.)
mana={4}{RG}{RG}

View File

@@ -23,9 +23,3 @@ text=Change the target of target spell with a single target unless that spell's
mana={U}
type=Instant
[/card]
[card]
name=Doomsday
text=Search your library and graveyard for five cards and exile the rest. Put the chosen cards on top of your library in any order. You lose half your life, rounded up.
mana={B}{B}{B}
type=Sorcery
[/card]

View File

@@ -68,12 +68,6 @@ power=1
toughness=1
[/card]
[card]
name=Psychogenic Probe
text=Whenever a spell or ability causes a player to shuffle his or her library, Psychogenic Probe deals 2 damage to him or her.
mana={2}
type=Artifact
[/card]
[card]
name=Timesifter
text=At the beginning of each upkeep, each player exiles the top card of his or her library. The player who exiled the card with the highest converted mana cost takes an extra turn after this one. If two or more players' cards are tied for highest cost, the tied players repeat this process until the tie is broken.
mana={5}

View File

@@ -1,16 +1,4 @@
[card]
name=Psychic Surgery
text=Whenever an opponent shuffles his or her library, you may look at the top two cards of that library. You may exile one of those cards. Then put the rest on top of that library in any order.
mana={1}{U}
type=Enchantment
[/card]
[card]
name=Exclusion Ritual
text=Imprint — When Exclusion Ritual enters the battlefield, exile target nonland permanent. -- Players can't cast spells with the same name as the exiled card.
mana={4}{W}{W}
type=Enchantment
[/card]
[card]
name=Spellskite
text={PU}: Change a target of target spell or ability to Spellskite. ({PU} can be paid with either {U} or 2 life.)
mana={2}

View File

@@ -106,12 +106,6 @@ mana={1}{W}{W}
type=Sorcery
[/card]
[card]
name=Pyromancer Ascension
text=Whenever you cast an instant or sorcery spell that has the same name as a card in your graveyard, you may put a quest counter on Pyromancer Ascension. -- Whenever you cast an instant or sorcery spell while Pyromancer Ascension has two or more quest counters on it, you may copy that spell. You may choose new targets for the copy.
mana={1}{R}
type=Enchantment
[/card]
[card]
name=Shuriken
text=Equipped creature has "{T}, Unattach Shuriken: Shuriken deals 2 damage to target creature. That creature's controller gains control of Shuriken unless it was unattached from a Ninja." -- Equip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.)
mana={1}

View File

@@ -183,12 +183,6 @@ power=3
toughness=5
[/card]
[card]
name=Doomsday
text=Search your library and graveyard for five cards and exile the rest. Put the chosen cards on top of your library in any order. You lose half your life, rounded up.
mana={B}{B}{B}
type=Sorcery
[/card]
[card]
name=Horizon Boughs
text=All permanents untap during each player’s untap step. -- Whenever you roll {K}, you may search your library for up to three basic land cards, put them onto the battlefield tapped, then shuffle.
type=Plane
@@ -228,12 +222,6 @@ text={3}, {T}: Tap target creature you control and target creature of an opponen
type=Land
[/card]
[card]
name=Memoricide
text=Name a nonland card. Search target player's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.
mana={3}{B}
type=Sorcery
[/card]
[card]
name=Mirrored Depths
text=Whenever a player casts a spell, that player flips a coin. If the player loses the flip, counter that spell. -- Whenever you roll {K}, target player reveals the top card of their library. If it’s a nonland card, you may cast it without paying its mana cost.
type=Plane

View File

@@ -41,12 +41,6 @@ power=6
toughness=6
[/card]
[card]
name=Slaughter Games
text=Slaughter Games can't be countered by spells or abilities. -- Name a nonland card. Search target opponent's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.
mana={2}{B}{R}
type=Sorcery
[/card]
[card]
name=Sphinx of the Chimes
abilities=flying
text=Flying -- Discard two nonland cards with the same name: Draw four cards.

View File

@@ -8,12 +8,6 @@ power=4
toughness=4
[/card]
[card]
name=Memoricide
text=Name a nonland card. Search target player's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.
mana={3}{B}
type=Sorcery
[/card]
[card]
name=Strata Scythe
text=Imprint — When Strata Scythe enters the battlefield, search your library for a land card, exile it, then shuffle your library. -- Equipped creature gets +1/+1 for each land on the battlefield with the same name as the exiled card. -- Equip {3}
mana={3}

View File

@@ -1,6 +0,0 @@
[card]
name=Pyromancer Ascension
text=Whenever you cast an instant or sorcery spell that has the same name as a card in your graveyard, you may put a quest counter on Pyromancer Ascension. -- Whenever you cast an instant or sorcery spell while Pyromancer Ascension has two or more quest counters on it, you may copy that spell. You may choose new targets for the copy.
mana={1}{R}
type=Enchantment
[/card]

View File

@@ -1,13 +1,4 @@
[card]
name=Meletis Charlatan
text={2}{U}, {T}: The controller of target instant or sorcery spell copies it. That player may choose new targets for the copy.
mana={2}{U}
type=Creature
subtype=Human Wizard
power=2
toughness=3
[/card]
[card]
name=Steam Augury
text=Reveal the top five cards of your library and separate them into two piles. An opponent chooses one of those piles. Put that pile into your hand and the other into your graveyard.
mana={2}{U}{R}
@@ -32,9 +23,3 @@ subtype=Human Soldier
power=2
toughness=2
[/card]
[card]
name=Psychic Intrusion
text=Target opponent reveals his or her hand. You choose a nonland card from that player's graveyard or hand and exile it. You may cast that card for as long as it remains exiled, and you may spend mana as though it were mana of any color to cast that spell.
mana={3}{U}{B}
type=Sorcery
[/card]

View File

@@ -72,13 +72,6 @@ power=1
toughness=1
[/card]
[card]
name=Corpse Dance
buyback={2}{B}{2}
text=Buyback {2} (You may pay an additional {2} as you cast this spell. If you do, put this card into your hand as it resolves.) -- Return the top creature card of your graveyard to the battlefield. That creature gains haste until end of turn. Exile it at the beginning of the next end step.
mana={2}{B}
type=Instant
[/card]
[card]
name=Oracle en-Vec
text={T}: Target opponent chooses any number of creatures he or she controls. During that player's next turn, the chosen creatures attack if able, and other creatures can't attack. At the beginning of that turn's end step, destroy each of the chosen creatures that didn't attack. Activate this ability only during your turn.
mana={1}{W}
@@ -154,15 +147,6 @@ power=0
toughness=0
[/card]
[card]
name=Wood Sage
text={T}: Name a creature card. Reveal the top four cards of your library and put all of them with that name into your hand. Put the rest into your graveyard.
mana={G}{U}
type=Creature
subtype=Human Druid
power=1
toughness=1
[/card]
[card]
name=Flowstone Salamander
text={R}: Flowstone Salamander deals 1 damage to target creature blocking it.
mana={3}{R}{R}

View File

@@ -17,12 +17,6 @@ mana={R}
type=Sorcery
[/card]
[card]
name=Flaming Gambit
text=Flaming Gambit deals X damage to target player. That player may choose a creature he or she controls and have Flaming Gambit deal that damage to it instead. -- Flashback {X}{R}{R} (You may cast this card from your graveyard for its flashback cost. Then exile it.)
mana={X}{R}
type=Instant
[/card]
[card]
name=Radiate
text=Choose target instant or sorcery spell that targets only a single permanent or player. Copy that spell for each other permanent or player the spell could target. Each copy targets a different one of those permanents and players.
mana={3}{R}{R}

View File

@@ -15,13 +15,6 @@ mana={2}{U}{U}
type=Sorcery
[/card]
[card]
name=Corpse Dance
buyback={2}{B}{2}
text=Buyback {2} (You may pay an additional {2} as you cast this spell. If you do, put this card into your hand as it resolves.) -- Return the top creature card of your graveyard to the battlefield. That creature gains haste until end of turn. Exile it at the beginning of the next end step.
mana={2}{B}
type=Instant
[/card]
[card]
name=Volrath's Curse
text=Enchant creature -- Enchanted creature can't attack or block, and its activated abilities can't be activated. That creature's controller may sacrifice a permanent for that player to ignore this effect until end of turn. -- {1}{U}: Return Volrath's Curse to its owner's hand.
mana={1}{U}
@@ -106,12 +99,3 @@ subtype=Zombie Wizard
power=1
toughness=1
[/card]
[card]
name=Wood Sage
text={T}: Name a creature card. Reveal the top four cards of your library and put all of them with that name into your hand. Put the rest into your graveyard.
mana={G}{U}
type=Creature
subtype=Human Druid
power=1
toughness=1
[/card]

View File

@@ -11,15 +11,6 @@ power=1
toughness=2
[/card]
[card]
name=Merieke Ri Berit
text=Merieke Ri Berit doesn't untap during your untap step. -- {T}: Gain control of target creature for as long as you control Merieke Ri Berit. When Merieke Ri Berit leaves the battlefield or becomes untapped, destroy that creature. It can't be regenerated.
mana={W}{U}{B}
type=Legendary Creature
subtype=Human
power=1
toughness=1
[/card]
[card]
name=Spitting Slug
text=Whenever Spitting Slug blocks or becomes blocked, you may pay {1}{G}. If you do, Spitting Slug gains first strike until end of turn. Otherwise, each creature blocking or blocked by Spitting Slug gains first strike until end of turn.
mana={1}{G}{G}

View File

@@ -144,24 +144,12 @@ power=2
toughness=2
[/card]
[card]
name=Breathstealer's Crypt
text=If a player would draw a card, instead he or she draws a card and reveals it. If it's a creature card, that player discards it unless he or she pays 3 life.
mana={2}{U}{B}
type=Enchantment
[/card]
[card]
name=Corrosion
text=Cumulative upkeep {1} (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.) -- At the beginning of your upkeep, put a rust counter on each artifact target opponent controls. Then destroy each artifact with converted mana cost less than or equal to the number of rust counters on it. Artifacts destroyed this way can't be regenerated. -- When Corrosion leaves the battlefield, remove all rust counters from all permanents.
mana={1}{B}{R}
type=Enchantment
[/card]
[card]
name=Forbidden Ritual
text=Sacrifice a nontoken permanent. If you do, target opponent loses 2 life unless he or she sacrifices a permanent or discards a card. You may repeat this process any number of times.
mana={2}{B}{B}
type=Sorcery
[/card]
[card]
name=Necromancy
text=You may cast Necromancy as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- When Necromancy enters the battlefield, if it's on the battlefield, it becomes an Aura with "enchant creature put onto the battlefield with Necromancy." Put target creature card from a graveyard onto the battlefield under your control and attach Necromancy to it. When Necromancy leaves the battlefield, that creature's controller sacrifices it.
mana={2}{B}

View File

@@ -18,12 +18,6 @@ power=2
toughness=2
[/card]
[card]
name=Doomsday
text=Search your library and graveyard for five cards and exile the rest. Put the chosen cards on top of your library in any order. You lose half your life, rounded up.
mana={B}{B}{B}
type=Sorcery
[/card]
[card]
name=Kithkin Armor
text=Enchant creature -- Enchanted creature can't be blocked by creatures with power 3 or greater. -- Sacrifice Kithkin Armor: The next time a source of your choice would deal damage to enchanted creature this turn, prevent that damage.
mana={W}
@@ -31,12 +25,6 @@ type=Enchantment
subtype=Aura
[/card]
[card]
name=Tariff
text=Each player sacrifices the creature he or she controls with the highest converted mana cost unless he or she pays that creature's mana cost. If two creatures a player controls are tied for highest cost, that player chooses one.
mana={1}{W}
type=Sorcery
[/card]
[card]
name=Volunteer Reserves
abilities=banding
text=Banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) -- Cumulative upkeep {1} (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)
@@ -71,21 +59,6 @@ mana={R}
type=Instant
[/card]
[card]
name=Goblin Grenadiers
text=Whenever Goblin Grenadiers attacks and isn't blocked, you may sacrifice it. If you do, destroy target creature and target land.
mana={3}{R}
type=Creature
subtype=Goblin
power=2
toughness=2
[/card]
[card]
name=Bosium Strip
text={3}, {T}: Until end of turn, if the top card of your graveyard is an instant or sorcery card, you may cast that card. If a card cast this way would be put into a graveyard this turn, exile it instead.
mana={3}
type=Artifact
[/card]
[card]
name=Mana Web
text=Whenever a land an opponent controls is tapped for mana, tap all lands that player controls that could produce any type of mana that land could produce.
mana={3}

View File

@@ -1,17 +1,4 @@
[card]
name=Ricochet Trap
text=If an opponent cast a blue spell this turn, you may pay {R} rather than pay Ricochet Trap's mana cost. -- Change the target of target spell with a single target.
mana={3}{R}
type=Instant
subtype=Trap
[/card]
[card]
name=Rumbling Aftershocks
text=Whenever you cast a kicked spell, you may have Rumbling Aftershocks deal damage to target creature or player equal to the number of times that spell was kicked.
mana={4}{R}
type=Enchantment
[/card]
[card]
name=Razor Boomerang
text=Equipped creature has "{T}, Unattach Razor Boomerang: Razor Boomerang deals 1 damage to target creature or player. Return Razor Boomerang to its owner's hand." -- Equip {2}
mana={3}

View File

@@ -1,62 +0,0 @@
[card]
name=Kalitas, Bloodchief of Ghet
text={B}{B}{B}, {T}: Destroy target creature. If that creature dies this way, put a black Vampire creature token onto the battlefield. Its power is equal to that creature's power and its toughness is equal to that creature's toughness.
mana={5}{B}{B}
type=Legendary Creature
subtype=Vampire Warrior
power=5
toughness=5
[/card]
[card]
name=Cosi's Trickster
text=Whenever an opponent shuffles his or her library, you may put a +1/+1 counter on Cosi's Trickster.
mana={U}
type=Creature
subtype=Merfolk Wizard
power=1
toughness=1
[/card]
[card]
name=Gomazoa
abilities=defender,flying
text=Defender, flying -- {T}: Put Gomazoa and each creature it's blocking on top of their owners' libraries, then those players shuffle their libraries.
mana={2}{U}
type=Creature
subtype=Jellyfish
power=0
toughness=3
[/card]
[card]
name=Summoning Trap
text=If a creature spell you cast this turn was countered by a spell or ability an opponent controlled, you may pay {0} rather than pay Summoning Trap's mana cost. -- Look at the top seven cards of your library. You may put a creature card from among them onto the battlefield. Put the rest on the bottom of your library in any order.
mana={4}{G}{G}
type=Instant
subtype=Trap
[/card]
[card]
name=Archive Trap
text=If an opponent searched his or her library this turn, you may pay {0} rather than pay Archive Trap's mana cost. -- Target opponent puts the top thirteen cards of his or her library into his or her graveyard.
mana={3}{U}{U}
type=Instant
subtype=Trap
[/card]
[card]
name=Cobra Trap
text=If a noncreature permanent under your control was destroyed this turn by a spell or ability an opponent controlled, you may pay {G} rather than pay Cobra Trap's mana cost. -- Put four 1/1 green Snake creature tokens onto the battlefield.
mana={4}{G}{G}
type=Instant
subtype=Trap
[/card]
[card]
name=Pyromancer Ascension
text=Whenever you cast an instant or sorcery spell that has the same name as a card in your graveyard, you may put a quest counter on Pyromancer Ascension. -- Whenever you cast an instant or sorcery spell while Pyromancer Ascension has two or more quest counters on it, you may copy that spell. You may choose new targets for the copy.
mana={1}{R}
type=Enchantment
[/card]
[card]
name=Mindbreak Trap
text=If an opponent cast three or more spells this turn, you may pay {0} rather than pay Mindbreak Trap's mana cost. -- Exile any number of target spells.
mana={2}{U}{U}
type=Instant
subtype=Trap
[/card]

View File

@@ -1,20 +1,4 @@
[card]
name=Notion Thief
abilities=flash
text=Flash -- If an opponent would draw a card except the first one he or she draws in each of his or her draw steps, instead that player skips that draw and you draw a card.
mana={2}{U}{B}
type=Creature
subtype=Human Rogue
power=3
toughness=1
[/card]
[card]
name=Silumgar's Command
text=Choose two — -- • Counter target noncreature spell. -- • Return target permanent to its owner's hand. -- • Target creature gets -3/-3 until end of turn. -- • Destroy target planeswalker.
mana={3}{U}{B}
type=Instant
[/card]
[card]
name=Lazav, Dimir Mastermind
abilities=opponentshroud
text=Hexproof -- Whenever a creature card is put into an opponent's graveyard from anywhere, you may have Lazav, Dimir Mastermind become a copy of that card except its name is still Lazav, Dimir Mastermind, it's legendary in addition to its other types, and it gains hexproof and this ability.

View File

@@ -2741,6 +2741,16 @@ power=7
toughness=7
[/card]
[card]
name=Archive Trap
other={0} name(Opponent searched this turn)
otherrestriction=compare(olastshlturn)~equalto~compare(currentturn)
auto=deplete:13 opponent
text=If an opponent searched his or her library this turn, you may pay {0} rather than pay Archive Trap's mana cost. -- Target opponent puts the top thirteen cards of his or her library into his or her graveyard.
mana={3}{U}{U}
type=Instant
subtype=Trap
[/card]
[card]
name=Archmage Emeritus
auto=@movedto(*[instant;sorcery]|mystack):name(Draw 1 card) draw:1 controller
text=Magecraft — Whenever you cast or copy an instant or sorcery spell, draw a card.
@@ -7409,6 +7419,13 @@ text=Boseiju, Who Shelters All enters the battlefield tapped. -- {T}, Pay 2 life
type=Legendary Land
[/card]
[card]
name=Bosium Strip
auto={3}{T}:name(Can cast instant or sorcery) target(*[instant;sorcery;zpos=type:*:mygraveyard]|mygraveyard) transforms((,newability[canplayfromgraveyard],newability[gainedexiledeath])) ueot
text={3}, {T}: Until end of turn, if the top card of your graveyard is an instant or sorcery card, you may cast that card. If a card cast this way would be put into a graveyard this turn, exile it instead.
mana={3}
type=Artifact
[/card]
[card]
name=Bottle Golems
abilities=trample
auto=_DIES_name(Gain life) life:power controller
@@ -7758,6 +7775,14 @@ power=2
toughness=2
[/card]
[card]
name=Breathstealer's Crypt
auto=@drawof(player):name(Check drawn card) transforms((,newability[name(Pay or discard) all(creature[zpos=type:*:myhand]|myhand) transforms((,newability[choice name(Discard creature) reject],newability[choice name(Pay 3 life) life:-3 controller])) oneshot])) oneshot
auto=@drawfoeof(player):name(Check drawn card) transforms((,newability[name(Pay or discard) all(creature[zpos=type:*:opponenthand]|opponenthand) transforms((,newability[choice name(Discard creature) reject],newability[choice name(Pay 3 life) life:-3 controller])) oneshot])) oneshot
text=If a player would draw a card, instead he or she draws a card and reveals it. If it's a creature card, that player discards it unless he or she pays 3 life.
mana={2}{U}{B}
type=Enchantment
[/card]
[card]
name=Breeches, Brazen Plunderer
abilities=menace,partner
auto=@combatdamagefoeof(player) from(*[pirate]|myBattlefield):all(*[zpos=1]|opponentlibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[anytypeofmana],newability[phaseaction[endofturn once] moveTo(ownerexile)])) ueot )!
@@ -7989,8 +8014,9 @@ type=Sorcery
[/card]
[card]
name=Broken Visage
target=creature[attacking,-artifact]
auto=destroy && token(Spirit,Creature Spirit,storedpower/storedtoughness,black,treason)
restriction=type(creature[attacking;-artifact]|battlefield)~morethan~0
auto=if type(creature[attacking;-artifact]|opponentbattlefield)~morethan~0 then choice name(Destroy opponent creature) name(Destroy opponent creature) target(creature[attacking;-artifact]|opponentbattlefield) transforms((,newability[destroy],newability[token(Spirit^Creature Spirit^p/t^black^treason) opponent])) oneshot
auto=if type(creature[attacking;-artifact]|mybattlefield)~morethan~0 then choice name(Destroy your creature) name(Destroy your creature) target(creature[attacking;-artifact]|mybattlefield) transforms((,newability[destroy],newability[token(Spirit^Creature Spirit^p/t^black^treason)])) oneshot
text=Destroy target nonartifact attacking creature. It can't be regenerated. Put a black Spirit creature token with that creature's power and toughness onto the battlefield. Sacrifice the token at the beginning of the next end step.
mana={4}{B}
type=Instant
@@ -11385,6 +11411,16 @@ mana={2}{U}
type=Sorcery
[/card]
[card]
name=Cobra Trap
other={G} name(Permanent was destroyed)
otherrestriction=type(*[-creature;-instant;-sorcery;fresh]|mygraveyard)~morethan~0
auto=token(Snake,Creature Snake,1/1,green)*4
text=If a noncreature permanent under your control was destroyed this turn by a spell or ability an opponent controlled, you may pay {G} rather than pay Cobra Trap's mana cost. -- Put four 1/1 green Snake creature tokens onto the battlefield.
mana={4}{G}{G}
type=Instant
subtype=Trap
[/card]
[card]
name=Code of Constraint
target=creature
auto=-4/-0
@@ -12506,6 +12542,15 @@ power=4
toughness=2
[/card]
[card]
name=Corpse Dance
target=creature|mygraveyard
buyback={4}{B}
auto=moveto(myBattlefield) and!( transforms((,newability[haste],newability[unearth])) ueot )!
text=Buyback {2} (You may pay an additional {2} as you cast this spell. If you do, put this card into your hand as it resolves.) -- Return the top creature card of your graveyard to the battlefield. That creature gains haste until end of turn. Exile it at the beginning of the next end step.
mana={2}{B}
type=Instant
[/card]
[card]
name=Corpse Knight
auto=@movedto(other creature|mybattlefield):life:-1 opponent
text=Whenever another creature enters the battlefield under your control, each opponent loses 1 life.
@@ -12585,6 +12630,16 @@ power=2
toughness=2
[/card]
[card]
name=Cosi's Trickster
auto=@shuffledfoeof(player):may name(Put 1/1 counter) counter(1/1)
text=Whenever an opponent shuffles his or her library, you may put a +1/+1 counter on Cosi's Trickster.
mana={U}
type=Creature
subtype=Merfolk Wizard
power=1
toughness=1
[/card]
[card]
name=Cosima, God of the Voyage
auto=@each my upkeep:may name(Exile Cosima) moveto(myexile) and!( counter(0/0,1,CosimaEffect) )!
autoexile=@movedto(land|mybattlefield) restriction{compare(hascntcosimaeffect)~morethan~0}:transforms((,newability[choice name(Add voyage counter) counter(0/0.1.Voyage)],newability[choice name(Return in play) draw:hascntvoyage controller && moveTo(mybattlefield) and!( counter(1/1.hascntvoyage) )!])) oneshot
@@ -12866,6 +12921,15 @@ mana={1}{BG}
type=Sorcery
[/card]
[card]
name=Cranial Extraction
auto=choice name(Target opponent) ability$!chooseanameopp name(Search that cards) target(<anyamount>creature[chosenname]|opponentgraveyard,opponentlibrary,opponenthand) moveto(exile) and!( shuffle opponent )! chooseend nonland!$ controller
auto=choice name(Target yourself) ability$!chooseaname name(Search that cards) target(<anyamount>creature[chosenname]|mygraveyard,mylibrary,myhand) moveto(exile) and!( shuffle controller )! chooseend nonland!$ controller
text=Name a nonland card. Search target player's graveyard, hand, and library for all cards with that name and exile them. Then that player shuffles his or her library.
mana={3}{B}
type=Sorcery
subtype=Arcane
[/card]
[card]
name=Crash Through
auto=all(creature|mybattlefield) trample ueot
auto=draw:1
@@ -15074,26 +15138,26 @@ toughness=1
name=Delina, Wild Mage
auto=_ATTACKING_name(Roll a d20) rolld20 20 winability donothing winabilityend rolld20end
auto=_ATTACKING_name(Choose your creature) target(creature|mybattlefield) counter(0/0.1.DelinaEffect)
auto=@dierolled(this) result(1) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(2) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(3) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(4) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(5) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(6) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(7) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(8) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(9) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(10) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(11) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(12) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(13) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(14) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(15) from(controller):name(may roll d20 again) transforms((,newability[choice name name(Roll d20 again) rolld20 20 winability donothing winabilityend rolld20end],newability[choice name name(Stop rolling d20) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) removeallcounters(0/0.1.DelinaEffect)],newability[name(Copy creature) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(16) from(controller):name(may roll d20 again) transforms((,newability[choice name name(Roll d20 again) rolld20 20 winability donothing winabilityend rolld20end],newability[choice name name(Stop rolling d20) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) removeallcounters(0/0.1.DelinaEffect)],newability[name(Copy creature) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(17) from(controller):name(may roll d20 again) transforms((,newability[choice name name(Roll d20 again) rolld20 20 winability donothing winabilityend rolld20end],newability[choice name name(Stop rolling d20) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) removeallcounters(0/0.1.DelinaEffect)],newability[name(Copy creature) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(18) from(controller):name(may roll d20 again) transforms((,newability[choice name name(Roll d20 again) rolld20 20 winability donothing winabilityend rolld20end],newability[choice name name(Stop rolling d20) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) removeallcounters(0/0.1.DelinaEffect)],newability[name(Copy creature) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(19) from(controller):name(may roll d20 again) transforms((,newability[choice name name(Roll d20 again) rolld20 20 winability donothing winabilityend rolld20end],newability[choice name name(Stop rolling d20) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) removeallcounters(0/0.1.DelinaEffect)],newability[name(Copy creature) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(20) from(controller):name(may roll d20 again) transforms((,newability[choice name name(Roll d20 again) rolld20 20 winability donothing winabilityend rolld20end],newability[choice name name(Stop rolling d20) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) removeallcounters(0/0.1.DelinaEffect)],newability[name(Copy creature) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) clone with(treason^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(1) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(2) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(3) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(4) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(5) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(6) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(7) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(8) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(9) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(10) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(11) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(12) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(13) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(14) from(controller):all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) transforms((,newability[removeallcounters(0/0.1.DelinaEffect)],newability[clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(15) from(controller):name(may roll d20 again) transforms((,newability[choice name name(Roll d20 again) rolld20 20 winability donothing winabilityend rolld20end],newability[choice name name(Stop rolling d20) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) removeallcounters(0/0.1.DelinaEffect)],newability[name(Copy creature) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(16) from(controller):name(may roll d20 again) transforms((,newability[choice name name(Roll d20 again) rolld20 20 winability donothing winabilityend rolld20end],newability[choice name name(Stop rolling d20) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) removeallcounters(0/0.1.DelinaEffect)],newability[name(Copy creature) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(17) from(controller):name(may roll d20 again) transforms((,newability[choice name name(Roll d20 again) rolld20 20 winability donothing winabilityend rolld20end],newability[choice name name(Stop rolling d20) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) removeallcounters(0/0.1.DelinaEffect)],newability[name(Copy creature) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(18) from(controller):name(may roll d20 again) transforms((,newability[choice name name(Roll d20 again) rolld20 20 winability donothing winabilityend rolld20end],newability[choice name name(Stop rolling d20) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) removeallcounters(0/0.1.DelinaEffect)],newability[name(Copy creature) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(19) from(controller):name(may roll d20 again) transforms((,newability[choice name name(Roll d20 again) rolld20 20 winability donothing winabilityend rolld20end],newability[choice name name(Stop rolling d20) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) removeallcounters(0/0.1.DelinaEffect)],newability[name(Copy creature) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) clone with(unearth^battleready) options(nolegend)])) oneshot
auto=@dierolled(this) result(20) from(controller):name(may roll d20 again) transforms((,newability[choice name name(Roll d20 again) rolld20 20 winability donothing winabilityend rolld20end],newability[choice name name(Stop rolling d20) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) removeallcounters(0/0.1.DelinaEffect)],newability[name(Copy creature) all(creature[counter{0/0.1.DelinaEffect}]|mybattlefield) clone with(unearth^battleready) options(nolegend)])) oneshot
text=Whenever Delina, Wild Mage attacks, choose target creature you control, then roll a d20. -- 1-14 | Create a tapped and attacking token thats a copy of that creature except its not legendary and it has "Exile this creature at end of combat." -- 15-20 | Create one of those tokens. You may roll again.
mana={3}{R}
type=Legendary Creature
@@ -16656,6 +16720,14 @@ mana={2}{B}
type=Sorcery
[/card]
[card]
name=Doomsday
auto=name(Search 5 cards) target(<5>*|mylibrary,mygraveyard) moveto(myreveal) and!( moveto(mylibrary) and!( transforms((,newability[all(*[-fresh]|mylibrary) moveto(exile)],newability[all(*|mygraveyard) moveto(exile)])) oneshot )! )!
auto=life:-halfuplifetotal controller
text=Search your library and graveyard for five cards and exile the rest. Put the chosen cards on top of your library in any order. You lose half your life, rounded up.
mana={B}{B}{B}
type=Sorcery
[/card]
[card]
name=Doomskar
abilities=foretell
autohand={2}:name(Pay 2 and exile face-down) name(Pay 2 and exile face-down) doforetell myturnonly
@@ -18573,15 +18645,6 @@ power=0
toughness=4
[/card]
[card]
name=Elemental Cha
abilities=haste,treason
type=Creature
subtype=Elemental
power=3
toughness=3
color=red
[/card]
[card]
name=Elemental Expressionist
auto=@movedto(*[instant;sorcery]|mystack):name(Choose a creature) target(creature|mybattlefield) transforms((,newability[exiledeath],newability[@movedto(this|exile):token(Elemental^Creature Elemental^4/4^blue^red)])) ueot
text=Magecraft — Whenever you cast or copy an instant or sorcery spell, choose target creature you control. Until end of turn, it gains "If this creature would leave the battlefield, exile it instead of putting it anywhere else" and "When this creature is put into exile, create a 4/4 blue and red Elemental creature token." (Each instance of that ability triggers separately.)
@@ -20296,6 +20359,14 @@ power=2
toughness=2
[/card]
[card]
name=Exclusion Ritual
auto=name(Exile permanent) target(*|battlefield) imprint
auto=this(variable{hasevict}>0) transforms((,newability[maxCast(*[evictname])0],newability[maxCast(*[evictname])0 opponent]))
text=Imprint — When Exclusion Ritual enters the battlefield, exile target nonland permanent. -- Players can't cast spells with the same name as the exiled card.
mana={4}{W}{W}
type=Enchantment
[/card]
[card]
name=Excruciator
#MISSING: damage can't be prevented
text=Damage that would be dealt by Excruciator can't be prevented.
@@ -22768,6 +22839,16 @@ power=2
toughness=1
[/card]
[card]
name=Flaming Gambit
target=player
flashback={X}{R}{R}
auto=if type(creature|targetedpersonsbattlefield)~equalto~0 then damage:x
auto=if type(creature|targetedpersonsbattlefield)~morethan~0 then ability$!name(Choose one) choice name(Damage player) damage:storedx controller _ choice name(Damage creature) damage:storedx target(creature|mybattlefield)!$ targetedPlayer
text=Flaming Gambit deals X damage to target player. That player may choose a creature he or she controls and have Flaming Gambit deal that damage to it instead. -- Flashback {X}{R}{R} (You may cast this card from your graveyard for its flashback cost. Then exile it.)
mana={X}{R}
type=Instant
[/card]
[card]
name=Flash Foliage
restriction=blockersonly
auto=token(Saproling,Creature Saproling,1/1,green) and!(transforms((,newability[mustblock])) ueot)!
@@ -23081,6 +23162,14 @@ mana={1}{R}
type=Sorcery
[/card]
[card]
name=Forbidden Ritual
target=<anyamount>*[-token]|myBattlefield
auto=transforms((,newability[sacrifice],newability[if type(*|opponentbattlefield)~morethan~0 then if type(*|opponenthand)~morethan~0 then ability$!name(Choose one) choice name(Pay 2 life) life:-2 controller _ choice name(Discard a card) notarget(*|myhand) reject _ choice name(Sacrifice a permanent) notarget(*|myBattlefield) sacrifice!$ opponent],newability[if type(*|opponentbattlefield)~morethan~0 then if type(*|opponenthand)~equalto~0 then ability$!name(Choose one) choice name(Pay 2 life) life:-2 controller _ choice name(Sacrifice a permanent) notarget(*|myBattlefield) sacrifice!$ opponent],newability[if type(*|opponentbattlefield)~equalto~0 then if type(*|opponenthand)~morethan~0 then ability$!name(Choose one) choice name(Pay 2 life) life:-2 controller _ choice name(Discard a card) notarget(*|myhand) reject!$ opponent],newability[if type(*|opponentbattlefield)~equalto~0 then if type(*|opponenthand)~equalto~0 then life:-2 opponent])) oneshot
text=Sacrifice a nontoken permanent. If you do, target opponent loses 2 life unless he or she sacrifices a permanent or discards a card. You may repeat this process any number of times.
mana={2}{B}{B}
type=Sorcery
[/card]
[card]
name=Forbidding Spirit
auto=all(creature|opponentbattlefield) transforms((,newability[attackcost:2])) uynt
text=When Forbidding Spirit enters the battlefield, until your next turn, creatures can't attack you or a planeswalker you control unless their controller pays 2 for each of those creatures.
@@ -26151,6 +26240,16 @@ power=5
toughness=4
[/card]
[card]
name=Goblin Grenadiers
auto=@combat(notblocked) source(this):may name(Sacrifice and destroy) transforms((,newability[sacrifice],newability[name(Destroy creature) target(creature) destroy],newability[ability$!name(Destroy land) name(Destroy land) target(land) destroy!$ controller])) oneshot
text=Whenever Goblin Grenadiers attacks and isn't blocked, you may sacrifice it. If you do, destroy target creature and target land.
mana={3}{R}
type=Creature
subtype=Goblin
power=2
toughness=2
[/card]
[card]
name=Goblin Instigator
auto=token(Goblin,Creature Goblin,1/1,red)
text=When Goblin Instigator enters the battlefield, create a 1/1 red Goblin creature token.
@@ -26687,6 +26786,17 @@ power=2
toughness=2
[/card]
[card]
name=Gomazoa
abilities=defender,flying
auto={T}:name(Put on library) transforms((,newability[moveto(mylibrary) and!( shuffle )!],newability[if cantargetcard(*[blocking]|*) then name(Put creature on library) name(Put creature on library) target(creature[blocked]|opponentbattlefield) moveto(ownerlibrary) and!( shuffle opponent )!])) oneshot
text=Defender, flying -- {T}: Put Gomazoa and each creature it's blocking on top of their owners' libraries, then those players shuffle their libraries.
mana={2}{U}
type=Creature
subtype=Jellyfish
power=0
toughness=3
[/card]
[card]
name=Gonti, Lord of Luxury
abilities=deathtouch
aicode=activate target(*[zpos<=4]|opponentlibrary) moveto(opponentexile) and!( transforms((,newability[counter(0/0.1.GontiExiled)],newability[all(*[zpos<=3]|opponentlibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot )!
@@ -28012,7 +28122,26 @@ toughness=1
[card]
name=Gyrus, Waker of Corpses
auto=counter(1/1,X) && counter(1/1,3)
auto=_ATTACKING_ copy target(creature[~lessthan~storedpower]|myGraveyard) with(unearth,haste[attacking]) && moveTo(exile) targe(creature[~lessthan~storedpower]|myGraveyard)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~1}:may name(Exile and copy a creature) target(creature[power<=0]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~2}:may name(Exile and copy a creature) target(creature[power<=1]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~3}:may name(Exile and copy a creature) target(creature[power<=2]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~4}:may name(Exile and copy a creature) target(creature[power<=3]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~5}:may name(Exile and copy a creature) target(creature[power<=4]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~6}:may name(Exile and copy a creature) target(creature[power<=5]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~7}:may name(Exile and copy a creature) target(creature[power<=6]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~8}:may name(Exile and copy a creature) target(creature[power=<7]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~9}:may name(Exile and copy a creature) target(creature[power=<8]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~10}:may name(Exile and copy a creature) target(creature[power<=9]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~11}:may name(Exile and copy a creature) target(creature[power<=10]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~12}:may name(Exile and copy a creature) target(creature[power<=11]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~13}:may name(Exile and copy a creature) target(creature[power<=12]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~14}:may name(Exile and copy a creature) target(creature[power<=13]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~15}:may name(Exile and copy a creature) target(creature[power<=14]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~16}:may name(Exile and copy a creature) target(creature[power<=15]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~17}:may name(Exile and copy a creature) target(creature[power<=16]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~18}:may name(Exile and copy a creature) target(creature[power=<17]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~equalto~19}:may name(Exile and copy a creature) target(creature[power=<18]|mygraveyard) moveto(exile) && clone with(unearth,battleready)
auto=@combat(attacking) source(this) restriction{compare(p)~morethan~19}:may name(Exile and copy a creature) target(creature|mygraveyard) moveto(exile) && clone with(unearth,battleready)
text=Gyrus, Waker of Corpses enters the battlefield with a number of +1/+1 counters on it equal to the amount of mana spent to cast it. -- Whenever Gyrus attacks, you may exile target creature card with lesser power from your graveyard. If you do, create a token thats a copy of that card and thats tapped and attacking. Exile the token at end of combat.
mana={X}{B}{R}{G}
type=Legendary Creature
@@ -28716,7 +28845,7 @@ toughness=7
[/card]
[card]
name=Hate Mirage
auto=clone with(treason,haste) target(<upto:2>creature|opponentbattlefield)
auto=clone with(unearth,haste) target(<upto:2>creature|opponentbattlefield)
text=Choose up to two target creatures you don't control. For each of those creatures, create a token that's a copy of that creature. Those tokens gain haste. Exile them at the beginning of the next end step.
mana={3}{R}
type=Sorcery
@@ -28856,7 +28985,7 @@ toughness=4
[/card]
[card]
name=Hazoret's Favor
auto=@each my combatbegins:may name(2/0 && haste) target(creature|mybattlefield) transforms((,newability[2/0],newability[haste],newability[treason])) ueot
auto=@each my combatbegins:may name(Creature gains 2/0 and haste) target(creature|mybattlefield) transforms((,newability[2/0],newability[haste],newability[treason])) ueot
text=At the beginning of combat on your turn, you may have target creature you control get +2/+0 and gain haste until end of turn. If you do, sacrifice it at the beginning of the next end step.
mana={2}{R}
type=Enchantment
@@ -33875,6 +34004,17 @@ power=3
toughness=3
[/card]
[card]
name=Kalitas, Bloodchief of Ghet
auto=this(variable{type:creature[-indestructible]:opponentbattlefield}>0) {B}{B}{B}{T}:name(Destroy opponent creature) name(Destroy opponent creature) target(creature[-indestructible]|opponentbattlefield) transforms((,newability[destroy],newability[token(Vampire^Creature Vampire^p/t^black) opponent])) oneshot
auto=this(variable{type:creature[-indestructible]:mybattlefield}>0) {B}{B}{B}{T}:name(Destroy your creature) name(Destroy your creature) target(creature[-indestructible]|mybattlefield) transforms((,newability[destroy],newability[token(Vampire^Creature Vampire^p/t^black)])) oneshot
text={B}{B}{B}, {T}: Destroy target creature. If that creature dies this way, put a black Vampire creature token onto the battlefield. Its power is equal to that creature's power and its toughness is equal to that creature's toughness.
mana={5}{B}{B}
type=Legendary Creature
subtype=Vampire Warrior
power=5
toughness=5
[/card]
[card]
name=Kalitas, Traitor of Ghet
abilities=lifelink
auto=@movedto(creature[-token]|opponentgraveyard):all(trigger[to]) moveTo(exile) && token(Zombie,Creature Zombie,2/2,black)
@@ -34770,7 +34910,7 @@ type=Enchantment
[/card]
[card]
name=Kindred Charge
auto=chooseatype clone with(treason,haste) all(creature[chosentype]|mybattlefield) chooseend
auto=chooseatype clone with(unearth,haste) all(creature[chosentype]|mybattlefield) chooseend
text=Choose a creature type. For each creature you control of the chosen type, create a token that's a copy of that creature. Those tokens gain haste. Exile them at the beginning of the next end step.
mana={4}{R}{R}
type=Sorcery
@@ -38316,8 +38456,7 @@ toughness=3
[card]
name=Macabre Mockery
target=creature|opponentGraveyard
auto=moveto(myBattlefield)
auto=transforms((,treason,+2/+0,haste)) forever
auto=moveto(myBattlefield) and!( transforms((,newability[treason],newability[+2/+0],newability[haste])) ueot )!
text=Put target creature card from an opponent's graveyard onto the battlefield under your control. It gets +2/+0 and gains haste until end of turn. Sacrifice it at the beginning of the next end step.
mana={2}{B}{R}
type=Instant
@@ -39659,6 +39798,16 @@ type=Enchantment
subtype=Saga
[/card]
[card]
name=Meletis Charlatan
auto={2}{U}{T}:name(Controller copies instant or sorcery) target(*[instant;sorcery]|stack) transforms((,newability[activate castcard(copied)])) oneshot
text={2}{U}, {T}: The controller of target instant or sorcery spell copies it. That player may choose new targets for the copy.
mana={2}{U}
type=Creature
subtype=Human Wizard
power=2
toughness=3
[/card]
[card]
name=Melting
auto=all(land[snow]|battlefield) transforms((removetypes,newability[becomes(Land)])) forever
text=All lands are no longer snow.
@@ -39706,6 +39855,14 @@ text=Memorial to War enters the battlefield tapped. -- {T}: Add {R}. -- {4}{R},
type=Land
[/card]
[card]
name=Memoricide
auto=choice name(Target opponent) ability$!chooseanameopp name(Search that cards) target(<anyamount>creature[chosenname]|opponentgraveyard,opponentlibrary,opponenthand) moveto(exile) and!( shuffle opponent )! chooseend nonland!$ controller
auto=choice name(Target yourself) ability$!chooseaname name(Search that cards) target(<anyamount>creature[chosenname]|mygraveyard,mylibrary,myhand) moveto(exile) and!( shuffle controller )! chooseend nonland!$ controller
text=Name a nonland card. Search target player's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.
mana={3}{B}
type=Sorcery
[/card]
[card]
name=Memory Drain
target=*|stack
auto=fizzle
@@ -39989,6 +40146,19 @@ power=1
toughness=1
[/card]
[card]
name=Merieke Ri Berit
abilities=doesnotuntap
auto={T}:name(Gain control of creature) all(this) counter(0/0.1.MeriekeStolen) && target(creature) moveto(myBattlefield) and!( counter(0/0.1.MeriekeStolen) )!
auto=@untapped(this) restriction{compare(hascntmeriekestolen)~morethan~0}:name(Destroy stolen creature) transforms((,newability[name(Destroy stolen creature) target(creature[counter{0/0.1.MeriekeStolen}]|myBattlefield) bury],newability[removeallcounters(0/0.1.MeriekeStolen)])) oneshot
auto=@movedto(this|nonbattlezone) from(myBattlefield) restriction{compare(hascntmeriekestolen)~morethan~0}:name(Destroy stolen creature) target(creature[counter{0/0.1.MeriekeStolen}]|myBattlefield) bury
text=Merieke Ri Berit doesn't untap during your untap step. -- {T}: Gain control of target creature for as long as you control Merieke Ri Berit. When Merieke Ri Berit leaves the battlefield or becomes untapped, destroy that creature. It can't be regenerated.
mana={W}{U}{B}
type=Legendary Creature
subtype=Human
power=1
toughness=1
[/card]
[card]
name=Mesa Lynx
auto=this(variable{opponentturn}>0) 0/2
text=As long as it's not your turn, Mesa Lynx gets +0/+2.
@@ -40251,7 +40421,7 @@ subtype=Treasure
[card]
name=Mimic Vat
auto=@movedto(creature[-token]|nonbattlezone) from(battlefield):may name(Imprint card) name(Imprint card) all(trigger[to]) transforms((,newability[moveTo(ownerGraveyard) all(other creature[counter{0/0.1.MimicImprinted}]|exile)],newability[moveto(exile) and!( counter(0/0.1.MimicImprinted) )!])) forever
auto={3}{T}:target(creature[counter{0/0.1.MimicImprinted}]|exile) clone with(haste,treason)
auto={3}{T}:target(creature[counter{0/0.1.MimicImprinted}]|exile) clone with(haste,unearth)
text=Imprint — Whenever a nontoken creature dies, you may exile that card. If you do, return each other card exiled with Mimic Vat to its owners graveyard. -- {3}, {T}: Create a token thats a copy of a card exiled with Mimic Vat. It gains haste. Exile it at the beginning of the next end step.
mana={3}
type=Artifact
@@ -40308,6 +40478,18 @@ power=1
toughness=3
[/card]
[card]
name=Mindbreak Trap
target=*|stack
other={0} name(Opponent casted 3 or more spells)
otherrestriction=thisturn(*|opponentstack)~morethan~2
auto=fizzleto(exile)
auto=all(*|opponentstack) fizzleto(exile)
text=If an opponent cast three or more spells this turn, you may pay {0} rather than pay Mindbreak Trap's mana cost. -- Exile any number of target spells.
mana={2}{U}{U}
type=Instant
subtype=Trap
[/card]
[card]
name=Mindleecher
abilities=flying,mutate
otherrestriction=type(creature[-human]|mybattlefield)~morethan~0
@@ -40911,7 +41093,7 @@ type=Sorcery
[/card]
[card]
name=Molten Echoes
auto=chooseatype transforms((,newability[@movedTo(creature[chosentype,-token]|myBattlefield)}:all(trigger[to]) clone with(treason,haste)])) chooseend
auto=chooseatype transforms((,newability[@movedTo(creature[chosentype,-token]|myBattlefield)}:all(trigger[to]) clone with(unearth,haste)])) chooseend
text=As Molten Echoes enters the battlefield, choose a creature type. -- Whenever a nontoken creature of the chosen type enters the battlefield under your control, create a token thats a copy of that creature. That token gains haste. Exile it at the beginning of the next end step.
mana={2}{R}{R}
type=Enchantment
@@ -43198,6 +43380,18 @@ mana={1}{U}{B}
type=Sorcery
[/card]
[card]
name=Notion Thief
abilities=flash
auto=@drawfoeof(player) restriction{opponentturnonly,compare(odrewcount)~morethan~1}:name(You draw instead) transforms((,newability[all(*[zpos=type:*:opponenthand]|opponenthand) moveto(ownerlibrary)],newability[draw:1 controller])) oneshot
auto=@drawfoeof(player) restriction{myturnonly}:name(You draw instead) transforms((,newability[all(*[zpos=type:*:opponenthand]|opponenthand) moveto(ownerlibrary)],newability[draw:1 controller])) oneshot
text=Flash -- If an opponent would draw a card except the first one he or she draws in each of his or her draw steps, instead that player skips that draw and you draw a card.
mana={2}{U}{B}
type=Creature
subtype=Human Rogue
power=3
toughness=1
[/card]
[card]
name=Novellamental
abilities=flying,cloud
text=Flying -- Novellamental can block only creatures with flying.
@@ -46639,7 +46833,7 @@ type=Sorcery
[/card]
[card]
name=Planebound Accomplice
auto={R}:may moveto(myBattlefield) target(planeswalker|myHand) && treason
auto={R}:may name(Put planeswalker in play) target(planeswalker|myHand) moveto(myBattlefield) and!( transforms((,newability[treason])) ueot )!
text={R}: You may put a planeswalker card from your hand onto the battlefield. Sacrifice it at the beginning of the next end step.
mana={2}{R}
type=Creature
@@ -47009,7 +47203,7 @@ toughness=3
[card]
name=Postmortem Lunge
other={X}{L:2} name(Pay with 2 life)
auto=target(creature[manacost=X]|mygraveyard) moveto(mybattlefield) && transforms((,treson,haste)) forever
auto=target(creature[manacost=X]|mygraveyard) moveto(mybattlefield) and!( transforms((,newability[unearth],newability[haste])) forever )!
text=({PB} can be paid with either {B} or 2 life.) -- Return target creature card with converted mana cost X from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step.
mana={X}{B}
type=Sorcery
@@ -48062,6 +48256,15 @@ type=Enchantment
subtype=Aura
[/card]
[card]
name=Psychic Intrusion
auto=if type(*[-land]|opponentgraveyard)~morethan~0 then name(Exile non land card) name(Exile non land card) target(*[-land]|opponenthand,opponentgraveyard) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[anytypeofmana])) forever )!
auto=if type(*[-land]|opponentgraveyard)~equalto~0 then if type(*[-land]|opponenthand)~morethan~0 then name(Exile non land card) name(Exile non land card) name(Exile non land card) target(*[-land]|opponenthand) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[anytypeofmana])) forever )!
auto=if type(*[-land]|opponentgraveyard)~equalto~0 then if type(*[-land]|opponenthand)~equalto~0 then name(Look opponent hand) name(Look opponent hand) name(Look opponent hand) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) )!
text=Target opponent reveals his or her hand. You choose a nonland card from that player's graveyard or hand and exile it. You may cast that card for as long as it remains exiled, and you may spend mana as though it were mana of any color to cast that spell.
mana={3}{U}{B}
type=Sorcery
[/card]
[card]
name=Psychic Miasma
auto=ability$!name(Discard a card) name(Discard a card) target(*|myhand) reject and!( if cantargetcard(*[land]|*) then target(Psychic Miasma|opponentgraveyard) moveto(ownerhand) )! !$ opponent
text=Target player discards a card. If a land card is discarded this way, return Psychic Miasma to its owner's hand.
@@ -48069,6 +48272,14 @@ mana={1}{B}
type=Sorcery
[/card]
[card]
name=Psychic Surgery
aicode=activate target(*[zpos<=2]|opponentlibrary) moveto(ownerexile)
auto=@shuffledfoeof(player):may name(Look top 2) reveal:2 revealzone(opponentlibrary) optionone name(Put in exile) target(<upto:1>*|reveal) moveto(ownerexile) optiononeend optiontwo name(put back) target(<2>*|reveal) moveto(ownerlibrary) optiontwoend revealend
text=Whenever an opponent shuffles his or her library, you may look at the top two cards of that library. You may exile one of those cards. Then put the rest on top of that library in any order.
mana={1}{U}
type=Enchantment
[/card]
[card]
name=Psychic Symbiont
abilities=flying
auto=target(opponent) ability$!name(discard) reject notatarget(*|myhand)!$ && draw:1
@@ -48087,6 +48298,14 @@ mana={4}{U}
type=Sorcery
[/card]
[card]
name=Psychogenic Probe
auto=@shuffledfoeof(player):name(Deal 2 damage) damage:2 opponent
auto=@shuffledof(player):name(Deal 2 damage) damage:2 controller
text=Whenever a spell or ability causes a player to shuffle his or her library, Psychogenic Probe deals 2 damage to him or her.
mana={2}
type=Artifact
[/card]
[card]
name=Psychotic Episode
abilities=madness
auto=if type(*|opponenthand)~morethan~0 then choice name(Look opponent's hand) target(*|opponenthand) bottomoflibrary
@@ -48196,7 +48415,8 @@ abilities=indestructible
auto=this(variable{type:manar}<5) transforms((removetypes,newability[becomes(Legendary Enchantment God)]))
auto=this(variable{type:manar}>4) transforms((Legendary Enchantment Creature))
auto=lord(other creature|myBattlefield) haste
auto={2}{R}:may moveto(mybattlefield) target(creature,artifact|myhand) && transforms((,treason)) oneshot
auto={2}{R}:name(Put red creature in play) target(creature[red]|myhand) moveto(mybattlefield) and!( transforms((,newability[treason])) ueot )!
auto={2}{R}:name(Put artifact creature in play) target(creature[artifact]|myhand) moveto(mybattlefield) and!( transforms((,newability[treason])) ueot )!
text=Indestructible -- As long as your devotion to red is less than five, Purphoros isnt a creature. -- Other creatures you control have haste. -- {2}{R}: You may put a red creature card or an artifact creature card from your hand onto the battlefield. Sacrifice it at the beginning of the next end step.
mana={4}{R}
type=Legendary Enchantment Creature
@@ -48329,6 +48549,14 @@ mana={4}{R}{R}
type=Instant
[/card]
[card]
name=Pyromancer Ascension
auto=@movedto(*[instant;sorcery]|mystack) restriction{type(*[instant;sorcery]|mygraveyard)~morethan~0}:all(trigger[to]) transforms((,newability[if type(*[share!name!]|mygraveyard)~morethan~0 then may name(Put quest counter) target(<anyamount>Pyromancer Ascension|myBattlefield) counter(0/0.1.quest)])) oneshot
auto=@movedto(*[instant;sorcery]|mystack) restriction{compare(hascntquest)~morethan~1}:may name(Copy spell) all(trigger[to]) activate castcard(noevent copied)
text=Whenever you cast an instant or sorcery spell that has the same name as a card in your graveyard, you may put a quest counter on Pyromancer Ascension. -- Whenever you cast an instant or sorcery spell while Pyromancer Ascension has two or more quest counters on it, you may copy that spell. You may choose new targets for the copy.
mana={1}{R}
type=Enchantment
[/card]
[card]
name=Pyromancer's Gauntlet
auto=@damaged(*|opponentBattlefield) from(instant[red]|myzones):all(trigger[to]) transforms((,newability[damage:2])) oneshot
auto=@damaged(*|opponentBattlefield) from(sorcery[red]|myzones):all(trigger[to]) transforms((,newability[damage:2])) oneshot
@@ -51312,6 +51540,17 @@ power=2
toughness=3
[/card]
[card]
name=Ricochet Trap
target=*[instant;sorcery]|stack
other={R} name(Opponent casted blue spell)
otherrestriction=thisturn(*[blue]|opponentstack)~morethan~0
auto=fizzle && activate castcard(copied noevent costx!:mytargx:! kicked!:mytargkicked:!)
text=If an opponent cast a blue spell this turn, you may pay {R} rather than pay Ricochet Trap's mana cost. -- Change the target of target spell with a single target.
mana={3}{R}
type=Instant
subtype=Trap
[/card]
[card]
name=Riddleform
aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot
auto=@movedTo(*[-creature]|mystack):may transforms((Sphinx Creature,setpower=3,settoughness=3,flying)) ueot
@@ -51527,26 +51766,26 @@ type=Artifact
[/card]
[card]
name=Rionya, Fire Dancer
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~1}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~2}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~3}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~4}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~5}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~6}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~7}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~8}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~9}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~10}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~11}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~12}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~13}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~14}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~15}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~16}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~17}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~18}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~19}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~morethan~19}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)],newability[clone with(treason^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~1}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~2}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~3}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~4}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~5}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~6}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~7}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~8}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~9}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~10}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~11}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~12}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~13}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~14}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~15}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~16}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~17}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~18}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~19}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~morethan~19}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
text=At the beginning of combat on your turn, create X tokens that are copies of another target creature you control, where X is one plus the number of instant and sorcery spells you've cast this turn. They gain haste. Exile them at the beginning of the next end step.
mana={3}{R}{R}
type=Legendary Creature
@@ -52699,6 +52938,32 @@ mana={R}{R}{W}{W}{W}{B}{B}
type=Sorcery
[/card]
[card]
name=Rumbling Aftershocks
auto=@movedTo(*[kicked=1]|myStack):may name(Deal 1 damage) target(creature) damage:1
auto=@movedTo(*[kicked=2]|myStack):may name(Deal 2 damage) target(creature) damage:2
auto=@movedTo(*[kicked=3]|myStack):may name(Deal 3 damage) target(creature) damage:3
auto=@movedTo(*[kicked=4]|myStack):may name(Deal 4 damage) target(creature) damage:4
auto=@movedTo(*[kicked=5]|myStack):may name(Deal 5 damage) target(creature) damage:5
auto=@movedTo(*[kicked=6]|myStack):may name(Deal 6 damage) target(creature) damage:6
auto=@movedTo(*[kicked=7]|myStack):may name(Deal 7 damage) target(creature) damage:7
auto=@movedTo(*[kicked=8]|myStack):may name(Deal 8 damage) target(creature) damage:8
auto=@movedTo(*[kicked=9]|myStack):may name(Deal 9 damage) target(creature) damage:9
auto=@movedTo(*[kicked=10]|myStack):may name(Deal 10 damage) target(creature) damage:10
auto=@movedTo(*[kicked=11]|myStack):may name(Deal 11 damage) target(creature) damage:11
auto=@movedTo(*[kicked=12]|myStack):may name(Deal 12 damage) target(creature) damage:12
auto=@movedTo(*[kicked=13]|myStack):may name(Deal 13 damage) target(creature) damage:13
auto=@movedTo(*[kicked=14]|myStack):may name(Deal 14 damage) target(creature) damage:14
auto=@movedTo(*[kicked=15]|myStack):may name(Deal 15 damage) target(creature) damage:15
auto=@movedTo(*[kicked=16]|myStack):may name(Deal 16 damage) target(creature) damage:16
auto=@movedTo(*[kicked=17]|myStack):may name(Deal 17 damage) target(creature) damage:17
auto=@movedTo(*[kicked=18]|myStack):may name(Deal 18 damage) target(creature) damage:18
auto=@movedTo(*[kicked=19]|myStack):may name(Deal 19 damage) target(creature) damage:19
auto=@movedTo(*[kicked>=20]|myStack):may name(Deal 20 damage) target(creature) damage:20
text=Whenever you cast a kicked spell, you may have Rumbling Aftershocks deal damage to target creature or player equal to the number of times that spell was kicked.
mana={4}{R}
type=Enchantment
[/card]
[card]
name=Rumbling Rockslide
target=creature
auto=damage:type:land:myBattlefield
@@ -55871,7 +56136,7 @@ toughness=4
[card]
name=Shallow Grave
target=creature|mygraveyard
auto=moveTo(mybattlefield) && transforms((,newability[phaseaction[endofturn once] moveTo(exile)],haste)) ueot
auto=moveTo(mybattlefield) && transforms((,newability[unearth],newability[haste])) ueot
text=Return the top creature card of your graveyard to the battlefield. That creature gains haste until end of turn. Exile it at the beginning of the next end step.
mana={1}{B}
type=Instant
@@ -56296,7 +56561,7 @@ subtype=Aura
[/card]
[card]
name=Shifty Doppelganger
auto={3}{U}{E}:target(creature|myhand) moveto(mybattlefield) and!(transforms((,newability[treason],newability[haste],newability[moveto(mybattlefield) target(Shifty Doppelganger[fresh]|myexile)])) ueot)!
auto={3}{U}{E}:target(creature|myhand) moveto(mybattlefield) and!( transforms((,newability[treason],newability[haste],newability[moveto(mybattlefield) target(Shifty Doppelganger[fresh]|myexile)])) ueot )!
text={3}{U}, Exile Shifty Doppelganger: You may put a creature card from your hand onto the battlefield. If you do, that creature gains haste until end of turn. At the beginning of the next end step, sacrifice that creature. If you do, return Shifty Doppelganger to the battlefield.
mana={2}{U}
type=Creature
@@ -57014,6 +57279,24 @@ power=2
toughness=1
[/card]
[card]
name=Silumgar's Command
auto=if type(*[-creature]|opponentstack)~morethan~0 then choice name(Counter opponent spell and return permanent) name(Counter opponent spell and return permanent) target(*[-creature]|opponentstack) transforms((,newability[fizzle],newability[ability$!name(Return permanent) name(Return permanent) target(*|battlefield) moveto(ownerhand)!$ opponent])) oneshot
auto=if type(other *[-creature]|mystack)~morethan~0 then choice name(Counter your spell and return permanent) name(Counter your spell and return permanent) target(*[-creature]|mystack) transforms((,newability[fizzle],newability[ability$!name(Return permanent) name(Return permanent) target(*|battlefield) moveto(ownerhand)!$ controller])) oneshot
auto=if type(*[-creature]|opponentstack)~morethan~0 then choice name(Counter opponent spell and creature gets -3/-3) name(Counter opponent spell and creature gets -3/-3) target(*[-creature]|opponentstack) transforms((,newability[fizzle],newability[ability$!name(Creature gets -3/-3) name(Creature gets -3/-3) target(creature|battlefield) -3/-3 ueot!$ opponent])) oneshot
auto=if type(other *[-creature]|mystack)~morethan~0 then choice name(Counter your spell and and creature gets -3/-3) name(Counter your spell and and creature gets -3/-3) target(*[-creature]|mystack) transforms((,newability[fizzle],newability[ability$!name(Creature gets -3/-3) name(Creature gets -3/-3) target(creature|battlefield) -3/-3 ueot!$ controller])) oneshot
auto=if type(*[-creature]|opponentstack)~morethan~0 then choice name(Counter opponent spell and destroy planeswalker) name(Counter opponent spell and destroy planeswalker) target(*[-creature]|opponentstack) transforms((,newability[fizzle],newability[ability$!name(Destroy planeswalker) name(Destroy planeswalker) target(planeswalker|battlefield) destroy!$ opponent])) oneshot
auto=if type(other *[-creature]|mystack)~morethan~0 then choice name(Counter your spell and destroy planeswalker) name(Counter your spell and destroy planeswalker) target(*[-creature]|mystack) transforms((,newability[fizzle],newability[ability$!name(Destroy planeswalker) name(Destroy planeswalker) target(planeswalker|battlefield) destroy!$ controller])) oneshot
auto=if type(*|opponentbattlefield)~morethan~0 then choice name(Return opponent permanent and creature gets -3/-3) name(Return opponent permanent and creature gets -3/-3) target(*|opponentbattlefield) transforms((,newability[moveto(ownerhand)],newability[ability$!name(Creature gets -3/-3) name(Creature gets -3/-3) target(creature|battlefield) -3/-3 ueot!$ opponent])) oneshot
auto=if type(*|mybattlefield)~morethan~0 then choice name(Return your permanent and creature gets -3/-3) name(Return your permanent and creature gets -3/-3) target(*|mybattlefield) transforms((,newability[moveto(ownerhand)],newability[ability$!name(Creature gets -3/-3) name(Creature gets -3/-3) target(creature|battlefield) -3/-3 ueot!$ controller])) oneshot
auto=if type(*|opponentbattlefield)~morethan~0 then choice name(Return opponent permanent and destroy planeswalker) name(Return opponent permanent and destroy planeswalker) target(*|opponentbattlefield) transforms((,newability[moveto(ownerhand)],newability[ability$!name(Destroy planeswalker) name(Destroy planeswalker) target(planeswalker|battlefield) destroy!$ opponent])) oneshot
auto=if type(*|mybattlefield)~morethan~0 then choice name(Return your permanent and destroy planeswalker) name(Return your permanent and destroy planeswalker) target(*|mybattlefield) transforms((,newability[moveto(ownerhand)],newability[ability$!name(Destroy planeswalker) name(Destroy planeswalker) target(planeswalker|battlefield) destroy!$ controller])) oneshot
auto=if type(creature|opponentbattlefield)~morethan~0 then choice name(Opponent creature gets -3/-3 and destroy planeswalker) name(Opponent creature gets -3/-3 and destroy planeswalker) target(creature|opponentbattlefield) transforms((,newability[-3/-3 ueot],newability[ability$!name(Destroy planeswalker) name(Destroy planeswalker) target(planeswalker|battlefield) destroy!$ opponent])) oneshot
auto=if type(creature|mybattlefield)~morethan~0 then choice name(Your creature gets -3/-3 and destroy planeswalker) name(Your creature gets -3/-3 and destroy planeswalker) target(creature|mybattlefield) transforms((,newability[-3/-3 ueot],newability[ability$!name(Destroy planeswalker) name(Destroy planeswalker) target(planeswalker|battlefield) destroy!$ controller])) oneshot
text=Choose two — -- • Counter target noncreature spell. -- • Return target permanent to its owner's hand. -- • Target creature gets -3/-3 until end of turn. -- • Destroy target planeswalker.
mana={3}{U}{B}
type=Instant
[/card]
[card]
name=Silumgar Scavenger
abilities=flying
auto=may name(Exploit) sacrifice target(creature|mybattlefield) && all(this) transforms((,newability[haste])) ueot
@@ -58207,6 +58490,14 @@ mana={3}{W}{W}
type=Sorcery
[/card]
[card]
name=Slaughter Games
abilities=nofizzle
auto=chooseanameopp name(Search that cards) target(<anyamount>creature[chosenname]|opponentgraveyard,opponentlibrary,opponenthand) moveto(exile) and!( shuffle opponent )! chooseend nonland
text=Slaughter Games can't be countered by spells or abilities. -- Name a nonland card. Search target opponent's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.
mana={2}{B}{R}
type=Sorcery
[/card]
[card]
name=Slaughter the Strong
auto=sacrifice all(creature[power>4]|mybattlefield)
auto=ability$!name(Sacrifice) sacrifice all(creature[power>4]|mybattlefield)!$ opponent
@@ -60864,6 +61155,15 @@ type=Enchantment
subtype=Aura
[/card]
[card]
name=Stain the Mind
other={convoke} name(Convoke)
auto=choice name(Target opponent) ability$!chooseanameopp name(Search that cards) target(<anyamount>creature[chosenname]|opponentgraveyard,opponentlibrary,opponenthand) moveto(exile) and!( shuffle opponent )! chooseend nonland!$ controller
auto=choice name(Target yourself) ability$!chooseaname name(Search that cards) target(<anyamount>creature[chosenname]|mygraveyard,mylibrary,myhand) moveto(exile) and!( shuffle controller )! chooseend nonland!$ controller
text=Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.) -- Name a nonland card. Search target player's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.
mana={4}{B}
type=Sorcery
[/card]
[card]
name=Stalking Leonin
auto={0}:name(reveal the opponent) this(counter{0/0.1.StalkingEffect}<1) name(reveal the opponent) transforms((,newability[name(Move to exile) name(Move to exile) target(creature[attacking]|opponentbattlefield) moveto(exile)],newability[counter(0/0.1.StalkingEffect)])) oneshot
text=When Stalking Leonin enters the battlefield, secretly choose an opponent. -- Reveal the player you chose: Exile target creature that's attacking you if it's controlled by the chosen player. Activate this ability only once.
@@ -61667,7 +61967,7 @@ toughness=3
[card]
name=Storm Herald
abilities=haste
auto=activate castcard(normal) target(<anyamount>aura|myGraveyard) and!(transforms((,newability[treason],newability[exiledeath])) forever)!
auto=activate castcard(normal) target(<anyamount>aura|myGraveyard) and!( transforms((,newability[unearth],newability[exiledeath])) forever )!
text=Haste -- When Storm Herald enters the battlefield, return any number of Aura cards from your graveyard to the battlefield attached to creatures you control. Exile those Auras at the beginning of your next end step. If those Auras would leave the battlefield, exile them instead of putting them anywhere else.
mana={2}{R}
type=Creature
@@ -62264,6 +62564,17 @@ mana={1}{W}
type=Instant
[/card]
[card]
name=Summoning Trap
other={0} name(Creature was countered)
otherrestriction=thisturn(instant|opponentstack)~morethan~0,thisturn(creature|mystack)~morethan~0,type(creature[fresh]|mygraveyard)~morethan~0
aicode=activate transforms((,newability[target(creature[zpos<=7]|mylibrary) moveto(mybattlefield)],newability[all(*[zpos<=7]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot
auto=name(Look top 7) reveal:7 optionone name(Get a creature) target(<upto:1>creature|reveal) moveto(mybattlefield) optiononeend optiontwo name(Put on bottom) target(<7>*|reveal) bottomoflibrary optiontwoend revealend
text=If a creature spell you cast this turn was countered by a spell or ability an opponent controlled, you may pay {0} rather than pay Summoning Trap's mana cost. -- Look at the top seven cards of your library. You may put a creature card from among them onto the battlefield. Put the rest on the bottom of your library in any order.
mana={4}{G}{G}
type=Instant
subtype=Trap
[/card]
[card]
name=Sun Sentinel
abilities=vigilance
text=Vigilance (Attacking doesn't cause this creature to tap.)
@@ -63709,6 +64020,54 @@ power=2
toughness=1
[/card]
[card]
name=Tariff
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~0 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=0]|mybattlefield) transforms((,newability[pay[[{0}]] name(pay 0 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~0 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=0]|mybattlefield) transforms((,newability[pay[[{0}]] name(pay 0 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~1 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=1]|mybattlefield) transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~1 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=1]|mybattlefield) transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~2 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=2]|mybattlefield) transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~2 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=2]|mybattlefield) transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~3 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=3]|mybattlefield) transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~3 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=3]|mybattlefield) transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~4 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=4]|mybattlefield) transforms((,newability[pay[[{4}]] name(pay 4 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~4 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=4]|mybattlefield) transforms((,newability[pay[[{4}]] name(pay 4 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~5 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=5]|mybattlefield) transforms((,newability[pay[[{5}]] name(pay 5 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~5 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=5]|mybattlefield) transforms((,newability[pay[[{5}]] name(pay 5 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~6 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=6]|mybattlefield) transforms((,newability[pay[[{6}]] name(pay 6 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~6 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=6]|mybattlefield) transforms((,newability[pay[[{6}]] name(pay 6 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~7 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=7]|mybattlefield) transforms((,newability[pay[[{7}]] name(pay 7 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~7 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=7]|mybattlefield) transforms((,newability[pay[[{7}]] name(pay 7 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~8 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=8]|mybattlefield) transforms((,newability[pay[[{8}]] name(pay 8 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~8 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=8]|mybattlefield) transforms((,newability[pay[[{8}]] name(pay 8 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~9 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=9]|mybattlefield) transforms((,newability[pay[[{9}]] name(pay 9 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~9 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=9]|mybattlefield) transforms((,newability[pay[[{9}]] name(pay 9 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~10 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=10]|mybattlefield) transforms((,newability[pay[[{10}]] name(pay 10 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~10 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=10]|mybattlefield) transforms((,newability[pay[[{10}]] name(pay 10 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~11 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=11]|mybattlefield) transforms((,newability[pay[[{11}]] name(pay 11 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~11 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=11]|mybattlefield) transforms((,newability[pay[[{11}]] name(pay 11 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~12 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=12]|mybattlefield) transforms((,newability[pay[[{12}]] name(pay 12 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~12 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=12]|mybattlefield) transforms((,newability[pay[[{12}]] name(pay 12 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~13 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=13]|mybattlefield) transforms((,newability[pay[[{13}]] name(pay 13 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~13 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=13]|mybattlefield) transforms((,newability[pay[[{13}]] name(pay 13 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~14 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=14]|mybattlefield) transforms((,newability[pay[[{14}]] name(pay 14 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~14 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=14]|mybattlefield) transforms((,newability[pay[[{14}]] name(pay 14 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~15 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=15]|mybattlefield) transforms((,newability[pay[[{15}]] name(pay 15 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~15 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=15]|mybattlefield) transforms((,newability[pay[[{15}]] name(pay 15 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~16 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=16]|mybattlefield) transforms((,newability[pay[[{16}]] name(pay 16 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~16 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=16]|mybattlefield) transforms((,newability[pay[[{16}]] name(pay 16 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~17 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=17]|mybattlefield) transforms((,newability[pay[[{17}]] name(pay 17 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~17 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=17]|mybattlefield) transforms((,newability[pay[[{17}]] name(pay 17 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~18 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=18]|mybattlefield) transforms((,newability[pay[[{18}]] name(pay 18 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~18 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=18]|mybattlefield) transforms((,newability[pay[[{18}]] name(pay 18 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~equalto~19 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=19]|mybattlefield) transforms((,newability[pay[[{19}]] name(pay 19 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~equalto~19 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost=19]|mybattlefield) transforms((,newability[pay[[{19}]] name(pay 19 mana) donothing?sacrifice])) oneshot!$ controller
auto=if compare(convertedcost:highest:creature:opponentbattlefield)~morethan~19 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost>=20]|mybattlefield) transforms((,newability[pay[[{20}]] name(pay 20 mana) donothing?sacrifice])) oneshot!$ opponent
auto=if compare(convertedcost:highest:creature:mybattlefield)~morethan~19 then ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature[manacost>=20]|mybattlefield) transforms((,newability[pay[[{20}]] name(pay 20 mana) donothing?sacrifice])) oneshot!$ controller
text=Each player sacrifices the creature he or she controls with the highest converted mana cost unless he or she pays that creature's mana cost. If two creatures a player controls are tied for highest cost, that player chooses one.
mana={1}{W}
type=Sorcery
[/card]
[card]
name=Tasha's Hideous Laughter
auto=all(*[zpos<=oppototalmana20]|opponentlibrary) moveto(exile)
text=Each opponent exiles cards from the top of their library until that player has exiled cards with total mana value 20 or more.
@@ -67788,26 +68147,26 @@ toughness=3
[card]
name=Twinflame
kicker=multi{2}{R}
auto=if compare(kicked)~equalto~0 then name(choose 1 creature) name(choose 1 creature) target(creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~1 then name(choose 2 creatures) name(choose 2 creatures) target(<upto:2>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~2 then name(choose 3 creatures) name(choose 3 creatures) target(<upto:3>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~3 then name(choose 4 creatures) name(choose 4 creatures) target(<upto:4>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~4 then name(choose 5 creatures) name(choose 5 creatures) target(<upto:5>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~5 then name(choose 6 creatures) name(choose 6 creatures) target(<upto:6>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~6 then name(choose 7 creatures) name(choose 7 creatures) target(<upto:7>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~7 then name(choose 8 creatures) name(choose 8 creatures) target(<upto:8>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~8 then name(choose 9 creatures) name(choose 9 creatures) target(<upto:9>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~9 then name(choose 10 creatures) name(choose 10 creatures) target(<upto:10>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~10 then name(choose 11 creatures) name(choose 11 creatures) target(<upto:11>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~11 then name(choose 12 creatures) name(choose 12 creatures) target(<upto:12>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~12 then name(choose 13 creatures) name(choose 13 creatures) target(<upto:13>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~13 then name(choose 14 creatures) name(choose 14 creatures) target(<upto:14>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~14 then name(choose 15 creatures) name(choose 15 creatures) target(<upto:15>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~15 then name(choose 16 creatures) name(choose 16 creatures) target(<upto:16>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~16 then name(choose 17 creatures) name(choose 17 creatures) target(<upto:17>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~17 then name(choose 18 creatures) name(choose 18 creatures) target(<upto:18>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~18 then name(choose 19 creatures) name(choose 19 creatures) target(<upto:19>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~19 then name(choose 20 creatures) name(choose 20 creatures) target(<upto:20>creature|myBattlefield) clone with(treason,haste)
auto=if compare(kicked)~equalto~0 then name(choose 1 creature) name(choose 1 creature) target(creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~1 then name(choose 2 creatures) name(choose 2 creatures) target(<upto:2>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~2 then name(choose 3 creatures) name(choose 3 creatures) target(<upto:3>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~3 then name(choose 4 creatures) name(choose 4 creatures) target(<upto:4>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~4 then name(choose 5 creatures) name(choose 5 creatures) target(<upto:5>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~5 then name(choose 6 creatures) name(choose 6 creatures) target(<upto:6>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~6 then name(choose 7 creatures) name(choose 7 creatures) target(<upto:7>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~7 then name(choose 8 creatures) name(choose 8 creatures) target(<upto:8>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~8 then name(choose 9 creatures) name(choose 9 creatures) target(<upto:9>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~9 then name(choose 10 creatures) name(choose 10 creatures) target(<upto:10>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~10 then name(choose 11 creatures) name(choose 11 creatures) target(<upto:11>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~11 then name(choose 12 creatures) name(choose 12 creatures) target(<upto:12>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~12 then name(choose 13 creatures) name(choose 13 creatures) target(<upto:13>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~13 then name(choose 14 creatures) name(choose 14 creatures) target(<upto:14>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~14 then name(choose 15 creatures) name(choose 15 creatures) target(<upto:15>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~15 then name(choose 16 creatures) name(choose 16 creatures) target(<upto:16>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~16 then name(choose 17 creatures) name(choose 17 creatures) target(<upto:17>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~17 then name(choose 18 creatures) name(choose 18 creatures) target(<upto:18>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~18 then name(choose 19 creatures) name(choose 19 creatures) target(<upto:19>creature|myBattlefield) clone with(unearth,haste)
auto=if compare(kicked)~equalto~19 then name(choose 20 creatures) name(choose 20 creatures) target(<upto:20>creature|myBattlefield) clone with(unearth,haste)
text=Strive — Twinflame costs {2}{R} more to cast for each target beyond the first. -- Choose any number of target creatures you control. For each of them, put a token that's a copy of that creature onto the battlefield. Those tokens have haste. Exile them at the beginning of the next end step.
mana={1}{R}
type=Sorcery
@@ -72788,8 +73147,19 @@ power=4
toughness=4
[/card]
[card]
name=Wood Sage
aicode=activate target(<4>creature[chosenname;zpos<=4]|mylibrary) moveto(myhand) and!( all(*[zpos<=4]|mylibrary) moveto(mygraveyard) )!
auto={T}:name(Name a creature) ability$!chooseaname reveal:4 optionone name(Put named creatures in hand) name(Put named creatures in hand) target(<4>creature[chosenname]|reveal) moveto(myhand) optiononeend optiontwo name(Put in graveyard) target(<4>*|reveal) moveto(mygraveyard) optiontwoend revealend chooseend nonland!$ controller
text={T}: Name a creature card. Reveal the top four cards of your library and put all of them with that name into your hand. Put the rest into your graveyard.
mana={G}{U}
type=Creature
subtype=Human Druid
power=1
toughness=1
[/card]
[card]
name=Woodland Champion
auto=@movedTo(*[token]|myBattlefield) counter(1/1,1)
auto=@movedTo(*[token]|myBattlefield):counter(1/1)
text=Whenever one or more tokens enter the battlefield under your control, put that many +1/+1 counters on Woodland Champion.
mana={1}{G}
type=Creature

View File

@@ -360,13 +360,6 @@ power=5
toughness=4
[/card]
[card]
name=Archive Trap
text=If an opponent searched his or her library this turn, you may pay {0} rather than pay Archive Trap's mana cost. -- Target opponent puts the top thirteen cards of his or her library into his or her graveyard.
mana={3}{U}{U}
type=Instant
subtype=Trap
[/card]
[card]
name=Arcum's Whistle
text={3}, {T}: Choose target non-Wall creature the active player has controlled continuously since the beginning of the turn. That player may pay {X}, where X is that creature's converted mana cost. If he or she doesn't, the creature attacks this turn if able, and at the beginning of the next end step, destroy it if it didn't attack. Activate this ability only before attackers are declared.
mana={3}
@@ -1111,12 +1104,6 @@ power=5
toughness=5
[/card]
[card]
name=Bosium Strip
text={3}, {T}: Until end of turn, if the top card of your graveyard is an instant or sorcery card, you may cast that card. If a card cast this way would be put into a graveyard this turn, exile it instead.
mana={3}
type=Artifact
[/card]
[card]
name=Bosom Buddy
text=Whenever you play a spell, you may gain ½ life for each word in that spell's name.
mana={3}{W}
@@ -1179,12 +1166,6 @@ mana={2}{U}{U}
type=Sorcery
[/card]
[card]
name=Breathstealer's Crypt
text=If a player would draw a card, instead he or she draws a card and reveals it. If it's a creature card, that player discards it unless he or she pays 3 life.
mana={2}{U}{B}
type=Enchantment
[/card]
[card]
name=Briarbridge Patrol
text=Whenever Briarbridge Patrol deals damage to one or more creatures, investigate. (Put a colorless Clue artifact token onto the battlefield with "{2}, Sacrifice this artifact: Draw a card.") -- At the beginning of each end step, if you sacrificed three or more Clues this turn, you may put a creature card from your hand onto the battlefield.
mana={3}{G}
@@ -1832,13 +1813,6 @@ power=2
toughness=4
[/card]
[card]
name=Cobra Trap
text=If a noncreature permanent under your control was destroyed this turn by a spell or ability an opponent controlled, you may pay {G} rather than pay Cobra Trap's mana cost. -- Put four 1/1 green Snake creature tokens onto the battlefield.
mana={4}{G}{G}
type=Instant
subtype=Trap
[/card]
[card]
name=Cocoon
text=Enchant creature you control -- Enchanted creature doesn't untap during your untap step if Cocoon has a pupa counter on it. -- When Cocoon enters the battlefield, tap enchanted creature and put three pupa counters on Cocoon. -- At the beginning of your upkeep, remove a pupa counter from Cocoon. If you can't, sacrifice it, put a +1/+1 counter on enchanted creature, and that creature gains flying. (This effect lasts indefinitely.)
mana={G}
@@ -2009,13 +1983,6 @@ type=Enchantment
subtype=Aura
[/card]
[card]
name=Corpse Dance
buyback={2}{B}{2}
text=Buyback {2} (You may pay an additional {2} as you cast this spell. If you do, put this card into your hand as it resolves.) -- Return the top creature card of your graveyard to the battlefield. That creature gains haste until end of turn. Exile it at the beginning of the next end step.
mana={2}{B}
type=Instant
[/card]
[card]
name=Corpsejack Menace
text=If one or more +1/+1 counters would be placed on a creature you control, twice that many +1/+1 counters are placed on it instead.
mana={2}{B}{G}
@@ -2040,15 +2007,6 @@ power=2
toughness=2
[/card]
[card]
name=Cosi's Trickster
text=Whenever an opponent shuffles his or her library, you may put a +1/+1 counter on Cosi's Trickster.
mana={U}
type=Creature
subtype=Merfolk Wizard
power=1
toughness=1
[/card]
[card]
name=Council Guardian
text=Will of the council — When Council Guardian enters the battlefield, starting with you, each player votes for blue, black, red, or green. Council Guardian gains protection from each color with the most votes or tied for most votes.
mana={5}{W}
@@ -2134,13 +2092,6 @@ mana={4}{R}{G}
type=Enchantment
[/card]
[card]
name=Cranial Extraction
text=Name a nonland card. Search target player's graveyard, hand, and library for all cards with that name and exile them. Then that player shuffles his or her library.
mana={3}{B}
type=Sorcery
subtype=Arcane
[/card]
[card]
name=Crawlspace
text=No more than two creatures can attack you each combat.
mana={3}
@@ -2798,12 +2749,6 @@ power=1
toughness=1
[/card]
[card]
name=Doomsday
text=Search your library and graveyard for five cards and exile the rest. Put the chosen cards on top of your library in any order. You lose half your life, rounded up.
mana={B}{B}{B}
type=Sorcery
[/card]
[card]
name=Double Cross
text=Choose another player. Look at that player's hand and choose one of those cards other than a basic land. He or she discards that card. At the beginning of the next game with the player, look at the player's hand and choose one of those cards other than a basic land. He or she discards that card.
mana={3}{B}{B}
@@ -3304,12 +3249,6 @@ mana={2}{B}{B}
type=Sorcery
[/card]
[card]
name=Exclusion Ritual
text=Imprint — When Exclusion Ritual enters the battlefield, exile target nonland permanent. -- Players can't cast spells with the same name as the exiled card.
mana={4}{W}{W}
type=Enchantment
[/card]
[card]
name=Experiment Kraj
text=Experiment Kraj has all activated abilities of each other creature with a +1/+1 counter on it. -- {T}: Put a +1/+1 counter on target creature.
mana={2}{G}{G}{U}{U}
@@ -3570,12 +3509,6 @@ mana={1}{G}
type=Instant
[/card]
[card]
name=Flaming Gambit
text=Flaming Gambit deals X damage to target player. That player may choose a creature he or she controls and have Flaming Gambit deal that damage to it instead. -- Flashback {X}{R}{R} (You may cast this card from your graveyard for its flashback cost. Then exile it.)
mana={X}{R}
type=Instant
[/card]
[card]
name=Flaring Pain
text=Damage can't be prevented this turn. -- Flashback {R} (You may cast this card from your graveyard for its flashback cost. Then exile it.)
mana={1}{R}
@@ -3658,12 +3591,6 @@ mana={2}{G}
type=Enchantment
[/card]
[card]
name=Forbidden Ritual
text=Sacrifice a nontoken permanent. If you do, target opponent loses 2 life unless he or she sacrifices a permanent or discards a card. You may repeat this process any number of times.
mana={2}{B}{B}
type=Sorcery
[/card]
[card]
name=Force Bubble
text=If damage would be dealt to you, put that many depletion counters on Force Bubble instead. -- When there are four or more depletion counters on Force Bubble, sacrifice it. -- At the beginning of each end step, remove all depletion counters from Force Bubble.
mana={2}{W}{W}
@@ -4284,15 +4211,6 @@ mana={5}{R}{R}
type=Sorcery
[/card]
[card]
name=Goblin Grenadiers
text=Whenever Goblin Grenadiers attacks and isn't blocked, you may sacrifice it. If you do, destroy target creature and target land.
mana={3}{R}
type=Creature
subtype=Goblin
power=2
toughness=2
[/card]
[card]
name=Goblin Haberdasher
text=Menace (This creature can't be blocked except by two or more creatures.) -- Other creatures you control wearing hats in their art have menace.
mana={2}{R}
@@ -4363,16 +4281,6 @@ mana={4}
type=Artifact
[/card]
[card]
name=Gomazoa
abilities=defender,flying
text=Defender, flying -- {T}: Put Gomazoa and each creature it's blocking on top of their owners' libraries, then those players shuffle their libraries.
mana={2}{U}
type=Creature
subtype=Jellyfish
power=0
toughness=3
[/card]
[card]
name=Goryo's Vengeance
text=Return target legendary creature card from your graveyard to the battlefield. That creature gains haste. Exile it at the beginning of the next end step. -- Splice onto Arcane {2}{B} (As you cast an Arcane spell, you may reveal this card from your hand and pay its splice cost. If you do, add this card's effects to that spell.)
mana={1}{B}
@@ -5572,15 +5480,6 @@ power=3
toughness=2
[/card]
[card]
name=Kalitas, Bloodchief of Ghet
text={B}{B}{B}, {T}: Destroy target creature. If that creature dies this way, put a black Vampire creature token onto the battlefield. Its power is equal to that creature's power and its toughness is equal to that creature's toughness.
mana={5}{B}{B}
type=Legendary Creature
subtype=Vampire Warrior
power=5
toughness=5
[/card]
[card]
name=Kamahl's Summons
text=Each player may reveal any number of creature cards from his or her hand. Then each player puts a 2/2 green Bear creature token onto the battlefield for each card he or she revealed this way.
mana={3}{G}
@@ -6686,21 +6585,6 @@ mana={4}{R}
type=Instant
[/card]
[card]
name=Meletis Charlatan
text={2}{U}, {T}: The controller of target instant or sorcery spell copies it. That player may choose new targets for the copy.
mana={2}{U}
type=Creature
subtype=Human Wizard
power=2
toughness=3
[/card]
[card]
name=Memoricide
text=Name a nonland card. Search target player's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.
mana={3}{B}
type=Sorcery
[/card]
[card]
name=Memory Crystal
text=Buyback costs cost {2} less.
mana={3}
@@ -6731,15 +6615,6 @@ power=3
toughness=3
[/card]
[card]
name=Merieke Ri Berit
text=Merieke Ri Berit doesn't untap during your untap step. -- {T}: Gain control of target creature for as long as you control Merieke Ri Berit. When Merieke Ri Berit leaves the battlefield or becomes untapped, destroy that creature. It can't be regenerated.
mana={W}{U}{B}
type=Legendary Creature
subtype=Human
power=1
toughness=1
[/card]
[card]
name=Merseine
text=Enchant creature -- Merseine enters the battlefield with three net counters on it. -- Enchanted creature doesn't untap during its controller's untap step if Merseine has a net counter on it. -- Pay enchanted creature's mana cost: Remove a net counter from Merseine. Any player may activate this ability, but only if he or she controls the enchanted creature.
mana={2}{U}{U}
@@ -6848,13 +6723,6 @@ mana={5}{R}
type=Sorcery
[/card]
[card]
name=Mindbreak Trap
text=If an opponent cast three or more spells this turn, you may pay {0} rather than pay Mindbreak Trap's mana cost. -- Exile any number of target spells.
mana={2}{U}{U}
type=Instant
subtype=Trap
[/card]
[card]
name=Mindlock Orb
text=Players can't search libraries.
mana={3}{U}
@@ -7607,16 +7475,6 @@ text=(An ongoing scheme remains face up until it's abandoned.) -- If a source an
type=Ongoing Scheme
[/card]
[card]
name=Notion Thief
abilities=flash
text=Flash -- If an opponent would draw a card except the first one he or she draws in each of his or her draw steps, instead that player skips that draw and you draw a card.
mana={2}{U}{B}
type=Creature
subtype=Human Rogue
power=3
toughness=1
[/card]
[card]
name=Nova Pentacle
text={3}, {T}: The next time a source of your choice would deal damage to you this turn, that damage is dealt to target creature of an opponent's choice instead.
mana={4}
@@ -8559,12 +8417,6 @@ mana={3}{U}{U}
type=Enchantment
[/card]
[card]
name=Psychic Intrusion
text=Target opponent reveals his or her hand. You choose a nonland card from that player's graveyard or hand and exile it. You may cast that card for as long as it remains exiled, and you may spend mana as though it were mana of any color to cast that spell.
mana={3}{U}{B}
type=Sorcery
[/card]
[card]
name=Psychic Network
text=Each player reveals the top card of his or her library to all other players by continuously holding it against his or her forehead. This does not allow a player to look at his or her own card. (That card still counts as the top card of your library. Whenever you draw a card, draw that one and replace it with the next card of your library.)
mana={U}
@@ -8584,24 +8436,12 @@ mana={1}{U}
type=Instant
[/card]
[card]
name=Psychic Surgery
text=Whenever an opponent shuffles his or her library, you may look at the top two cards of that library. You may exile one of those cards. Then put the rest on top of that library in any order.
mana={1}{U}
type=Enchantment
[/card]
[card]
name=Psychic Theft
text=Target player reveals his or her hand. You choose an instant or sorcery card from it and exile that card. You may cast that card for as long as it remains exiled. At the beginning of the next end step, if you haven't cast the card, return it to its owner's hand.
mana={1}{U}
type=Sorcery
[/card]
[card]
name=Psychogenic Probe
text=Whenever a spell or ability causes a player to shuffle his or her library, Psychogenic Probe deals 2 damage to him or her.
mana={2}
type=Artifact
[/card]
[card]
name=Puca's Mischief
text=At the beginning of your upkeep, you may exchange control of target nonland permanent you control and target nonland permanent an opponent controls with an equal or lesser converted mana cost.
mana={3}{U}
@@ -8677,12 +8517,6 @@ power=0
toughness=0
[/card]
[card]
name=Pyromancer Ascension
text=Whenever you cast an instant or sorcery spell that has the same name as a card in your graveyard, you may put a quest counter on Pyromancer Ascension. -- Whenever you cast an instant or sorcery spell while Pyromancer Ascension has two or more quest counters on it, you may copy that spell. You may choose new targets for the copy.
mana={1}{R}
type=Enchantment
[/card]
[card]
name=Question Elemental?
abilities=flying
text=Flying -- Are you aware that when you say something that isn't a question, the player who first points out this fact gains control of Question Elemental?
@@ -9093,13 +8927,6 @@ mana={R}
type=Enchantment
[/card]
[card]
name=Ricochet Trap
text=If an opponent cast a blue spell this turn, you may pay {R} rather than pay Ricochet Trap's mana cost. -- Change the target of target spell with a single target.
mana={3}{R}
type=Instant
subtype=Trap
[/card]
[card]
name=Riftsweeper
text=When Riftsweeper enters the battlefield, choose target face-up exiled card. Its owner shuffles it into his or her library.
mana={1}{G}
@@ -9240,12 +9067,6 @@ power=1
toughness=1
[/card]
[card]
name=Rumbling Aftershocks
text=Whenever you cast a kicked spell, you may have Rumbling Aftershocks deal damage to target creature or player equal to the number of times that spell was kicked.
mana={4}{R}
type=Enchantment
[/card]
[card]
name=Runed Halo
text=As Runed Halo enters the battlefield, name a card. -- You have protection from the chosen name. (You can't be targeted, dealt damage, or enchanted by anything with that name.)
mana={W}{W}
@@ -9894,12 +9715,6 @@ mana={1}{U}
type=Instant
[/card]
[card]
name=Silumgar's Command
text=Choose two — -- • Counter target noncreature spell. -- • Return target permanent to its owner's hand. -- • Target creature gets -3/-3 until end of turn. -- • Destroy target planeswalker.
mana={3}{U}{B}
type=Instant
[/card]
[card]
name=Silver Wyvern
abilities=flying
text=Flying -- {U}: Change the target of target spell or ability that targets only Silver Wyvern. The new target must be a creature.
@@ -9995,12 +9810,6 @@ type=Plane
subtype=Kaldheim
[/card]
[card]
name=Slaughter Games
text=Slaughter Games can't be countered by spells or abilities. -- Name a nonland card. Search target opponent's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.
mana={2}{B}{R}
type=Sorcery
[/card]
[card]
name=Slaying Mantis
text=Just a second (As long as this spell is on the stack, players can't move cards on the battlefield.) -- Slaying Mantis enters the battlefield by being thrown from a distance of at least three feet. -- When Slaying Mantis enters the battlefield, it fights each creature an opponent controls that it touched as it entered.
mana={5}{G}{G}
@@ -10579,12 +10388,6 @@ mana={3}
type=Artifact
[/card]
[card]
name=Stain the Mind
text=Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.) -- Name a nonland card. Search target player's graveyard, hand, and library for any number of cards with that name and exile them. Then that player shuffles his or her library.
mana={4}{B}
type=Sorcery
[/card]
[card]
name=Stairs to Infinity
text=Players have no maximum hand size. -- Whenever you roll the planar die, draw a card. -- Whenever you roll {K}, reveal the top card of your planar deck. You may put it on the bottom of your planar deck.
type=Plane
@@ -10923,13 +10726,6 @@ power=0
toughness=4
[/card]
[card]
name=Summoning Trap
text=If a creature spell you cast this turn was countered by a spell or ability an opponent controlled, you may pay {0} rather than pay Summoning Trap's mana cost. -- Look at the top seven cards of your library. You may put a creature card from among them onto the battlefield. Put the rest on the bottom of your library in any order.
mana={4}{G}{G}
type=Instant
subtype=Trap
[/card]
[card]
name=Suncleanser
text=When Suncleanser enters the battlefield, choose one — -- • Remove all counters from target creature. It can't have counters put on it for as long as Suncleanser remains on the battlefield. -- • Target opponent loses all counters. That player can't get counters for as long as Suncleanser remains on the battlefield.
mana={1}{W}
@@ -11130,12 +10926,6 @@ type=Artifact
subtype=Contraption
[/card]
[card]
name=Tariff
text=Each player sacrifices the creature he or she controls with the highest converted mana cost unless he or she pays that creature's mana cost. If two creatures a player controls are tied for highest cost, that player chooses one.
mana={1}{W}
type=Sorcery
[/card]
[card]
name=Tawnos's Coffin
text=You may choose not to untap Tawnos's Coffin during your untap step. -- {3}, {T}: Exile target creature and all Auras attached to it. Note the number and kind of counters that were on that creature. When Tawnos's Coffin leaves the battlefield or becomes untapped, return the exiled card to the battlefield under its owner's control tapped with the noted number and kind of counters on it, and if you do, return the exiled Aura cards to the battlefield under their owner's control attached to that permanent.
mana={4}
@@ -12628,15 +12418,6 @@ power=3
toughness=3
[/card]
[card]
name=Wood Sage
text={T}: Name a creature card. Reveal the top four cards of your library and put all of them with that name into your hand. Put the rest into your graveyard.
mana={G}{U}
type=Creature
subtype=Human Druid
power=1
toughness=1
[/card]
[card]
name=Woodland Guidance
text=Return target card from your graveyard to your hand. Clash with an opponent. If you win, untap all Forests you control. (Each clashing player reveals the top card of his or her library, then puts that card on the top or bottom. A player wins if his or her card had a higher converted mana cost.) -- Exile Woodland Guidance.
mana={3}{G}

View File

@@ -166,7 +166,7 @@ public:
bool limitOnceATurn;
int triggeredTurn;
TrCardAddedToZone(GameObserver* observer, int id, MTGCardInstance * source, TargetZoneChooser * toTcZone, TargetChooser * toTcCard,
TargetZoneChooser * fromTcZone = NULL, TargetChooser * fromTcCard = NULL,bool once = false,bool sourceUntapped = false,bool isSuspended = false, bool limitOnceATurn = false) :
TargetZoneChooser * fromTcZone = NULL, TargetChooser * fromTcCard = NULL, bool once = false, bool sourceUntapped = false, bool isSuspended = false, bool limitOnceATurn = false) :
Trigger(observer, id, source, once), toTcZone(toTcZone), fromTcZone(fromTcZone), toTcCard(toTcCard), fromTcCard(fromTcCard),sourceUntapped(sourceUntapped),isSuspended(isSuspended),limitOnceATurn(limitOnceATurn)
{
triggeredTurn = -1;
@@ -368,11 +368,11 @@ public:
bool attackBlockedTrigger;
bool blockingTrigger;
TrCombatTrigger(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,TargetChooser * fromTc = NULL,
bool once = false,bool limitOnceATurn = false,bool sourceUntapped = false,bool opponentPoisoned = false,
bool attackingTrigger = false,bool attackedAloneTrigger = false,bool notBlockedTrigger = false,bool attackBlockedTrigger = false,bool blockingTrigger = false) :
Trigger(observer, id, source,once, tc), fromTc(fromTc),limitOnceATurn(limitOnceATurn),sourceUntapped(sourceUntapped),opponentPoisoned(opponentPoisoned),
attackingTrigger(attackingTrigger),attackedAloneTrigger(attackedAloneTrigger),notBlockedTrigger(notBlockedTrigger),
attackBlockedTrigger(attackBlockedTrigger),blockingTrigger(blockingTrigger)
bool once = false, bool limitOnceATurn = false, bool sourceUntapped = false, bool opponentPoisoned = false,
bool attackingTrigger = false, bool attackedAloneTrigger = false, bool notBlockedTrigger = false, bool attackBlockedTrigger = false, bool blockingTrigger = false) :
Trigger(observer, id, source, once, tc), fromTc(fromTc), limitOnceATurn(limitOnceATurn), sourceUntapped(sourceUntapped), opponentPoisoned(opponentPoisoned),
attackingTrigger(attackingTrigger), attackedAloneTrigger(attackedAloneTrigger), notBlockedTrigger(notBlockedTrigger),
attackBlockedTrigger(attackBlockedTrigger), blockingTrigger(blockingTrigger)
{
triggeredTurn = -1;
}
@@ -471,11 +471,12 @@ public:
return NEW TrCombatTrigger(*this);
}
};
class TrplayerEnergized: public Trigger
{
public:
bool thiscontroller, thisopponent;
TrplayerEnergized(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false, bool thiscontroller = false, bool thisopponent = false) :
TrplayerEnergized(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool thiscontroller = false, bool thisopponent = false) :
Trigger(observer, id, source,once, tc),thiscontroller(thiscontroller),thisopponent(thisopponent)
{
}
@@ -499,11 +500,12 @@ public:
return NEW TrplayerEnergized(*this);
}
};
class TrplayerExperienced: public Trigger
{
public:
bool thiscontroller, thisopponent;
TrplayerExperienced(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false, bool thiscontroller = false, bool thisopponent = false) :
TrplayerExperienced(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool thiscontroller = false, bool thisopponent = false) :
Trigger(observer, id, source,once, tc),thiscontroller(thiscontroller),thisopponent(thisopponent)
{
}
@@ -527,12 +529,13 @@ public:
return NEW TrplayerExperienced(*this);
}
};
class TrplayerMonarch: public Trigger
{
public:
bool thiscontroller, thisopponent;
TrplayerMonarch(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false, bool thiscontroller = false, bool thisopponent = false) :
Trigger(observer, id, source,once, tc),thiscontroller(thiscontroller),thisopponent(thisopponent)
TrplayerMonarch(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool thiscontroller = false, bool thisopponent = false) :
Trigger(observer, id, source, once, tc), thiscontroller(thiscontroller), thisopponent(thisopponent)
{
}
@@ -556,13 +559,42 @@ public:
}
};
class TrplayerShuffled: public Trigger
{
public:
bool thiscontroller, thisopponent;
TrplayerShuffled(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool thiscontroller = false, bool thisopponent = false) :
Trigger(observer, id, source, once, tc), thiscontroller(thiscontroller), thisopponent(thisopponent)
{
}
int triggerOnEventImpl(WEvent * event)
{
WEventplayerShuffled * e = dynamic_cast<WEventplayerShuffled *> (event);
if (!e) return 0;
if (!tc->canTarget(e->player)) return 0;
if(thiscontroller)
if(e->player != source->controller())
return 0;
if(thisopponent)
if(e->player == source->controller())
return 0;
return 1;
}
TrplayerShuffled * clone() const
{
return NEW TrplayerShuffled(*this);
}
};
class TrcardDrawn: public Trigger
{
public:
bool thiscontroller, thisopponent;
bool limitOnceATurn;
int triggeredTurn;
TrcardDrawn(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false, bool thiscontroller = false, bool thisopponent = false, bool limitOnceATurn = false) :
TrcardDrawn(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool thiscontroller = false, bool thisopponent = false, bool limitOnceATurn = false) :
Trigger(observer, id, source,once, tc),thiscontroller(thiscontroller),thisopponent(thisopponent),limitOnceATurn(limitOnceATurn)
{
triggeredTurn = -1;
@@ -596,7 +628,7 @@ class TrCardMutated: public Trigger
public:
bool limitOnceATurn;
int triggeredTurn;
TrCardMutated(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false,bool limitOnceATurn = false) :
TrCardMutated(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool limitOnceATurn = false) :
Trigger(observer, id, source,once, tc),limitOnceATurn(limitOnceATurn)
{
triggeredTurn = -1;
@@ -624,7 +656,7 @@ class TrCardExplored: public Trigger
public:
bool limitOnceATurn;
int triggeredTurn;
TrCardExplored(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false,bool limitOnceATurn = false) :
TrCardExplored(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool limitOnceATurn = false) :
Trigger(observer, id, source,once, tc),limitOnceATurn(limitOnceATurn)
{
}
@@ -651,7 +683,7 @@ class TrCardBoasted: public Trigger
public:
bool limitOnceATurn;
int triggeredTurn;
TrCardBoasted(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false,bool limitOnceATurn = false) :
TrCardBoasted(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool limitOnceATurn = false) :
Trigger(observer, id, source,once, tc),limitOnceATurn(limitOnceATurn)
{
}
@@ -678,7 +710,7 @@ class TrCardSurveiled: public Trigger
public:
bool limitOnceATurn;
int triggeredTurn;
TrCardSurveiled(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false,bool limitOnceATurn = false) :
TrCardSurveiled(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool limitOnceATurn = false) :
Trigger(observer, id, source,once, tc),limitOnceATurn(limitOnceATurn)
{
}
@@ -705,7 +737,7 @@ class TrCardForetold: public Trigger
public:
bool limitOnceATurn;
int triggeredTurn;
TrCardForetold(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false,bool limitOnceATurn = false) :
TrCardForetold(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool limitOnceATurn = false) :
Trigger(observer, id, source,once, tc),limitOnceATurn(limitOnceATurn)
{
}
@@ -732,7 +764,7 @@ class TrCardScryed: public Trigger
public:
bool limitOnceATurn;
int triggeredTurn;
TrCardScryed(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false,bool limitOnceATurn = false) :
TrCardScryed(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool limitOnceATurn = false) :
Trigger(observer, id, source,once, tc),limitOnceATurn(limitOnceATurn)
{
}
@@ -865,7 +897,7 @@ class TrTokenCreated: public Trigger
{
public:
bool thiscontroller, thisopponent;
TrTokenCreated(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false) :
TrTokenCreated(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false) :
Trigger(observer, id, source,once, tc)
{
}
@@ -887,7 +919,7 @@ public:
class TrCardSacrificed: public Trigger
{
public:
TrCardSacrificed(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false) :
TrCardSacrificed(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false) :
Trigger(observer, id, source, once, tc)
{
}
@@ -924,7 +956,7 @@ class TrCardDiscarded: public Trigger
{
public:
bool cycledTrigger;
TrCardDiscarded(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc,bool once = false, bool cycledTrigger = false) :
TrCardDiscarded(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool cycledTrigger = false) :
Trigger(observer, id, source, once, tc),cycledTrigger(cycledTrigger)
{
}
@@ -964,7 +996,7 @@ public:
int triggeredTurn;
bool thiscontroller;
bool thisopponent;
TrDamaged(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, TargetChooser * fromTc = NULL, int type = 0,bool sourceUntapped = false,bool limitOnceATurn = false,bool once = false, bool thiscontroller = false, bool thisopponent = false) :
TrDamaged(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, TargetChooser * fromTc = NULL, int type = 0, bool sourceUntapped = false, bool limitOnceATurn = false, bool once = false, bool thiscontroller = false, bool thisopponent = false) :
Trigger(observer, id, source, once, tc), fromTc(fromTc), type(type) , sourceUntapped(sourceUntapped),limitOnceATurn(limitOnceATurn),thiscontroller(thiscontroller),thisopponent(thisopponent)
{
triggeredTurn = -1;
@@ -1024,7 +1056,7 @@ public:
bool limitOnceATurn;
int triggeredTurn;
MTGCardInstance * gainException; //added exception to avid a gainlife loop (eg. Angels of Vitality)
TrLifeGained(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, TargetChooser * fromTc = NULL, int type = 0,bool sourceUntapped = false,bool once = false, bool thiscontroller = false, bool thisopponent = false, bool limitOnceATurn = false, MTGCardInstance * gainException = NULL) :
TrLifeGained(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, TargetChooser * fromTc = NULL, int type = 0, bool sourceUntapped = false, bool once = false, bool thiscontroller = false, bool thisopponent = false, bool limitOnceATurn = false, MTGCardInstance * gainException = NULL) :
Trigger(observer, id, source, once , tc), fromTc(fromTc), type(type) , sourceUntapped(sourceUntapped), thiscontroller(thiscontroller), thisopponent(thisopponent), limitOnceATurn(limitOnceATurn), gainException(gainException)
{
triggeredTurn = -1;
@@ -1073,7 +1105,7 @@ class TrVampired: public Trigger
{
public:
TargetChooser * fromTc;
TrVampired(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, TargetChooser * fromTc = NULL,bool once = false) :
TrVampired(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, TargetChooser * fromTc = NULL, bool once = false) :
Trigger(observer, id, source, once, tc), fromTc(fromTc)
{
}
@@ -1112,7 +1144,7 @@ class TrTargeted: public Trigger
public:
TargetChooser * fromTc;
int type;
TrTargeted(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, TargetChooser * fromTc = NULL, int type = 0,bool once = false) :
TrTargeted(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, TargetChooser * fromTc = NULL, int type = 0, bool once = false) :
Trigger(observer, id, source, once, tc), fromTc(fromTc), type(type)
{
}
@@ -1749,7 +1781,7 @@ public:
string nbcardsStr;
bool noReplace;
AADrawer(GameObserver* observer, int _id, MTGCardInstance * card, Targetable * _target, ManaCost * _cost,string nbcardsStr, int who =
TargetChooser::UNSET,bool noReplace = false);
TargetChooser::UNSET, bool noReplace = false);
int resolve();
const string getMenuText();
AADrawer * clone() const;
@@ -2216,7 +2248,7 @@ class ACantBeBlockerOf: public MTGAbility
public:
TargetChooser * fromTc;
bool thisCard;
ACantBeBlockerOf(GameObserver* observer, int id, MTGCardInstance * _source, MTGCardInstance * _target, TargetChooser *fromTc,bool aThis) :
ACantBeBlockerOf(GameObserver* observer, int id, MTGCardInstance * _source, MTGCardInstance * _target, TargetChooser *fromTc, bool aThis) :
MTGAbility(observer, id, _source, _target), fromTc(fromTc),thisCard(aThis)
{
@@ -2263,7 +2295,7 @@ public:
string PT;
bool nonstatic;
bool cda;
APowerToughnessModifier(GameObserver* observer, int id, MTGCardInstance * _source, MTGCardInstance * _target, WParsedPT * wppt,string PT,bool nonstatic) :
APowerToughnessModifier(GameObserver* observer, int id, MTGCardInstance * _source, MTGCardInstance * _target, WParsedPT * wppt,string PT, bool nonstatic) :
MTGAbility(observer, id, _source, _target), wppt(wppt),PT(PT),nonstatic(nonstatic)
{
aType = MTGAbility::STANDARD_PUMP;
@@ -2676,7 +2708,7 @@ public:
bool miniFound, maxiFound, compareZone;
int amount[2];
AAsLongAs(GameObserver* observer, int _id, MTGCardInstance * _source, Damageable * _target, TargetChooser * _tc, int _includeSelf,
MTGAbility * ability, int mini = 0, int maxi = 0,bool miniFound = false,bool maxiFound = false,bool compareZone = false) :
MTGAbility * ability, int mini = 0, int maxi = 0, bool miniFound = false, bool maxiFound = false, bool compareZone = false) :
ListMaintainerAbility(observer, _id, _source, _target), NestedAbility(ability), mini(mini), maxi(maxi),miniFound(miniFound),maxiFound(maxiFound),compareZone(compareZone)
{
for (int j = 0; j < 2; j++)
@@ -3163,7 +3195,7 @@ public:
string cID;
//by id
ATokenCreator(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable *, ManaCost * _cost, int tokenId,string starfound, WParsedInt * multiplier = NULL,
int who = 0,bool aLivingWeapon = false) :
int who = 0, bool aLivingWeapon = false) :
ActivatedAbility(observer, _id, _source, _cost, 0), tokenId(tokenId), starfound(starfound),multiplier(multiplier), who(who),aLivingWeapon(aLivingWeapon)
{
if (!multiplier) this->multiplier = NEW WParsedInt(1);
@@ -3188,8 +3220,8 @@ public:
}
//by construction
ATokenCreator(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable *, ManaCost * _cost, string sname, string stypes, int _power, int _toughness,
string sabilities, string starfound,WParsedInt * multiplier = NULL, int _who = 0,bool aLivingWeapon = false,string spt = "", string tnum = "") :
ActivatedAbility(observer, _id, _source, _cost, 0),sabilities(sabilities),starfound(starfound), multiplier(multiplier), who(_who),aLivingWeapon(aLivingWeapon),spt(spt)
string sabilities, string starfound, WParsedInt * multiplier = NULL, int _who = 0, bool aLivingWeapon = false, string spt = "", string tnum = "") :
ActivatedAbility(observer, _id, _source, _cost, 0), sabilities(sabilities), starfound(starfound), multiplier(multiplier), who(_who), aLivingWeapon(aLivingWeapon), spt(spt)
{
power = _power;
toughness = _toughness;
@@ -4296,7 +4328,7 @@ bool retarget;
bool reequip;
bool newhook;
int mutation;
AANewTarget(GameObserver* observer, int id, MTGCardInstance * card, MTGCardInstance * _target,bool retarget = false, ManaCost * _cost = NULL, bool reequip = false, bool newhook = false, int mutation = 0);
AANewTarget(GameObserver* observer, int id, MTGCardInstance * card, MTGCardInstance * _target, bool retarget = false, ManaCost * _cost = NULL, bool reequip = false, bool newhook = false, int mutation = 0);
int resolve();
const string getMenuText();
AANewTarget * clone() const;
@@ -4728,9 +4760,9 @@ public:
bool UYNT;
int myCurrentTurn;
string menutext; //this overrides the previous.
ATransformer(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, string stypes, string sabilities,string newpower,bool newpowerfound,string newtoughness,bool newtoughnessfound,vector<string> newAbilitiesList,bool newAbilityFound = false,bool aForever = false ,bool UYNT = false,string menutext = "");
ATransformer(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, string stypes, string sabilities,string newpower, bool newpowerfound,string newtoughness, bool newtoughnessfound,vector<string> newAbilitiesList, bool newAbilityFound = false, bool aForever = false , bool UYNT = false,string menutext = "");
int addToGame();
int reapplyCountersBonus(MTGCardInstance * rtarget= NULL,bool powerapplied=false,bool toughnessapplied=false);
int reapplyCountersBonus(MTGCardInstance * rtarget= NULL, bool powerapplied=false, bool toughnessapplied=false);
int testDestroy();
int destroy();
const string getMenuText();
@@ -4754,7 +4786,7 @@ public:
bool UYNT;
string menu;
ATransformerInstant(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, string types = "", string abilities = "",string newpower = "",bool newpowerfound = false,string newtoughness = "",bool newtoughnessfound = false,vector<string>newAbilitiesList = vector<string>(),bool newAbilityFound = false,bool aForever = false, bool UYNT = false,string menutext = "");
ATransformerInstant(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, string types = "", string abilities = "",string newpower = "", bool newpowerfound = false, string newtoughness = "", bool newtoughnessfound = false, vector<string>newAbilitiesList = vector<string>(), bool newAbilityFound = false, bool aForever = false, bool UYNT = false, string menutext = "");
int resolve();
const string getMenuText();
ATransformerInstant * clone() const;
@@ -4770,7 +4802,7 @@ public:
string s;
bool nonstatic;
WParsedPT * newWppt;
PTInstant(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, WParsedPT * wppt,string s = "",bool nonstatic = false);
PTInstant(GameObserver* observer, int id, MTGCardInstance * source, MTGCardInstance * target, WParsedPT * wppt, string s = "", bool nonstatic = false);
int resolve();
const string getMenuText();
PTInstant * clone() const;
@@ -5003,7 +5035,7 @@ public:
ManaCost * backupMana;
AUpkeep(GameObserver* observer, int _id, MTGCardInstance * card, MTGAbility * a, ManaCost * _cost, int restrictions = 0, int _phase =
MTG_PHASE_UPKEEP, int _once = 0,bool Cumulative = false);
MTG_PHASE_UPKEEP, int _once = 0, bool Cumulative = false);
int receiveEvent(WEvent * event);
void Update(float dt);
int isReactingToClick(MTGCardInstance * card, ManaCost * mana = NULL);
@@ -5032,7 +5064,7 @@ public:
Player * abilityOwner;
APhaseAction(GameObserver* observer, int _id, MTGCardInstance * card, MTGCardInstance * target, string sAbility, int restrictions = 0, int _phase =
MTG_PHASE_UPKEEP,bool forcedestroy = false,bool next = true,bool myturn = true,bool opponentturn = true,bool once = false, bool checkexile = false);
MTG_PHASE_UPKEEP, bool forcedestroy = false, bool next = true, bool myturn = true, bool opponentturn = true, bool once = false, bool checkexile = false);
void Update(float dt);
int resolve();
const string getMenuText();
@@ -5047,7 +5079,7 @@ public:
string sAbility;
APhaseAction * ability;
APhaseActionGeneric(GameObserver* observer, int _id, MTGCardInstance * card, MTGCardInstance * target, string sAbility, int restrictions = 0, int _phase =
MTG_PHASE_UPKEEP,bool forcedestroy = false,bool next = true,bool myturn = false,bool opponentturn = false,bool once = false,bool checkexile = false);
MTG_PHASE_UPKEEP, bool forcedestroy = false, bool next = true, bool myturn = false, bool opponentturn = false, bool once = false, bool checkexile = false);
int resolve();
const string getMenuText();
APhaseActionGeneric * clone() const;
@@ -5208,7 +5240,7 @@ public:
bool blinkhand;
ABlink * ability;
MTGAbility * stored;
ABlinkGeneric(GameObserver* observer, int _id, MTGCardInstance * card, MTGCardInstance * _target,bool blinkueot=false,bool blinkForSource = false,bool blinkhand = false,MTGAbility * stored = NULL);
ABlinkGeneric(GameObserver* observer, int _id, MTGCardInstance * card, MTGCardInstance * _target, bool blinkueot=false, bool blinkForSource = false, bool blinkhand = false, MTGAbility * stored = NULL);
int resolve();
const string getMenuText();
ABlinkGeneric * clone() const;
@@ -6467,7 +6499,7 @@ public:
int kicked;
int costx;
bool flipped;
AACastCard(GameObserver* observer, int _id, MTGCardInstance * _source, MTGCardInstance * _target,bool restricted,bool copied,bool _asNormal,string nameCard,string abilityName,bool _noEvent, bool putinplay,bool asNormalMadness = false,bool alternative = false,int kicked = 0,int costx = 0,bool flipped = false);
AACastCard(GameObserver* observer, int _id, MTGCardInstance * _source, MTGCardInstance * _target, bool restricted, bool copied, bool _asNormal, string nameCard, string abilityName, bool _noEvent, bool putinplay, bool asNormalMadness = false, bool alternative = false, int kicked = 0, int costx = 0, bool flipped = false);
int testDestroy(){return 0;};
void Update(float dt);
@@ -6487,7 +6519,7 @@ class ASpiritLinkAbility: public MTGAbility
public:
MTGCardInstance * source;
bool combatonly;
ASpiritLinkAbility(GameObserver* observer, int _id, MTGCardInstance * _source,bool combatonly = false) :
ASpiritLinkAbility(GameObserver* observer, int _id, MTGCardInstance * _source, bool combatonly = false) :
MTGAbility(observer, _id, _source),source(_source),combatonly(combatonly)
{
}
@@ -6631,7 +6663,7 @@ public:
bool ANonWall;
bool ANonBasicLand;
bool ANonLand;
GenericChooseTypeColorName(GameObserver* observer, int id, MTGCardInstance * source, Targetable * target, string toAdd = "", bool chooseColor = false,bool chooseName = false, bool chooseOppName = false, bool nonwall = false, bool nonbasicland = false, bool nonland = false, ManaCost * cost = NULL);
GenericChooseTypeColorName(GameObserver* observer, int id, MTGCardInstance * source, Targetable * target, string toAdd = "", bool chooseColor = false, bool chooseName = false, bool chooseOppName = false, bool nonwall = false, bool nonbasicland = false, bool nonland = false, ManaCost * cost = NULL);
int resolve();
const string getMenuText();
GenericChooseTypeColorName * clone() const;

View File

@@ -50,6 +50,7 @@ public:
int monarch;
int surveilOffset;
int devotionOffset;
int lastShuffleTurn;
int epic;
int forcefield;
int dealsdamagebycombat;

View File

@@ -369,6 +369,14 @@ struct WEventplayerMonarch : public WEvent {
virtual Targetable * getTarget(Player * player);
};
//shuffle event
struct WEventplayerShuffled : public WEvent {
WEventplayerShuffled(Player * player);
Player * player;
using WEvent::getTarget;
virtual Targetable * getTarget(Player * player);
};
//boast event
struct WEventCardBoasted : public WEventCardUpdate {
WEventCardBoasted(MTGCardInstance * card);

View File

@@ -1194,35 +1194,43 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell
//energized player - controller of card
if (TargetChooser * tc = parseSimpleTC(s, "energizedof", card))
return NEW TrplayerEnergized(observer, id, card, tc,once,true,false);
return NEW TrplayerEnergized(observer, id, card, tc, once, true, false);
//energized player - opponent of card controller
if (TargetChooser * tc = parseSimpleTC(s, "energizedfoeof", card))
return NEW TrplayerEnergized(observer, id, card, tc,once,false,true);
return NEW TrplayerEnergized(observer, id, card, tc, once, false, true);
//experienced player - controller of card
if (TargetChooser * tc = parseSimpleTC(s, "experiencedof", card))
return NEW TrplayerExperienced(observer, id, card, tc,once,true,false);
return NEW TrplayerExperienced(observer, id, card, tc, once, true, false);
//experienced player - opponent of card controller
if (TargetChooser * tc = parseSimpleTC(s, "experiencedfoeof", card))
return NEW TrplayerExperienced(observer, id, card, tc,once,false,true);
return NEW TrplayerExperienced(observer, id, card, tc, once, false, true);
//becomes monarch - controller of card
if (TargetChooser * tc = parseSimpleTC(s, "becomesmonarchof", card))
return NEW TrplayerMonarch(observer, id, card, tc,once,true,false);
return NEW TrplayerMonarch(observer, id, card, tc, once, true, false);
//becomes monarch - opponent of card controller
if (TargetChooser * tc = parseSimpleTC(s, "becomesmonarchfoeof", card))
return NEW TrplayerMonarch(observer, id, card, tc,once,false,true);
return NEW TrplayerMonarch(observer, id, card, tc, once, false, true);
//shuffled library - controller of card
if (TargetChooser * tc = parseSimpleTC(s, "shuffledof", card))
return NEW TrplayerShuffled(observer, id, card, tc, once, true, false);
//shuffled library - opponent of card controller
if (TargetChooser * tc = parseSimpleTC(s, "shuffledfoeof", card))
return NEW TrplayerShuffled(observer, id, card, tc, once, false, true);
//drawn player - controller of card - dynamic version drawof(player) -> returns current controller even with exchange of card controller
if (TargetChooser * tc = parseSimpleTC(s, "drawof", card))
return NEW TrcardDrawn(observer, id, card, tc,once,true,false,limitOnceATurn);
return NEW TrcardDrawn(observer, id, card, tc, once, true, false, limitOnceATurn);
//drawn player - opponent of card controller - dynamic version drawfoeof(player) -> returns current opponent even with exchange of card controller
if (TargetChooser * tc = parseSimpleTC(s, "drawfoeof", card))
return NEW TrcardDrawn(observer, id, card, tc,once,false,true,limitOnceATurn);
return NEW TrcardDrawn(observer, id, card, tc, once, false, true, limitOnceATurn);
//Card card is drawn - static version - drawn(player) - any player; drawn(controller) - owner forever; drawn(opponent) - opponent forever
if (TargetChooser * tc = parseSimpleTC(s, "drawn", card))
@@ -7166,7 +7174,7 @@ ostream& ListMaintainerAbility::toString(ostream& out) const
return MTGAbility::toString(out) << ")";
}
TriggerAtPhase::TriggerAtPhase(GameObserver* observer, int id, MTGCardInstance * source, Targetable * target, int _phaseId, int who, bool sourceUntapped, bool sourceTap,bool lifelost,int lifeamount,bool once) :
TriggerAtPhase::TriggerAtPhase(GameObserver* observer, int id, MTGCardInstance * source, Targetable * target, int _phaseId, int who, bool sourceUntapped, bool sourceTap, bool lifelost, int lifeamount, bool once) :
TriggeredAbility(observer, id, source, target), phaseId(_phaseId), who(who), sourceUntapped(sourceUntapped), sourceTap(sourceTap),lifelost(lifelost),lifeamount(lifeamount),once(once)
{
activeTrigger = true;
@@ -7252,7 +7260,7 @@ TriggerAtPhase* TriggerAtPhase::clone() const
return NEW TriggerAtPhase(*this);
}
TriggerNextPhase::TriggerNextPhase(GameObserver* observer, int id, MTGCardInstance * source, Targetable * target, int _phaseId, int who,bool sourceUntapped, bool sourceTap,bool once) :
TriggerNextPhase::TriggerNextPhase(GameObserver* observer, int id, MTGCardInstance * source, Targetable * target, int _phaseId, int who, bool sourceUntapped, bool sourceTap, bool once) :
TriggerAtPhase(observer, id, source, target, _phaseId, who, sourceUntapped, sourceTap, once)
{
destroyActivated = 0;
@@ -7277,7 +7285,7 @@ TriggerNextPhase* TriggerNextPhase::clone() const
return NEW TriggerNextPhase(*this);
}
TriggerRebound::TriggerRebound(GameObserver* observer, int id, MTGCardInstance * source, Targetable * target, int _phaseId, int who,bool sourceUntapped, bool sourceTap,bool once) :
TriggerRebound::TriggerRebound(GameObserver* observer, int id, MTGCardInstance * source, Targetable * target, int _phaseId, int who, bool sourceUntapped, bool sourceTap, bool once) :
TriggerAtPhase(observer, id, source, target, _phaseId, who, sourceUntapped, sourceTap, once)
{
destroyActivated = 0;
@@ -7441,7 +7449,7 @@ GenericTriggeredAbility* GenericTriggeredAbility::clone() const
*/
AManaProducer::AManaProducer(GameObserver* observer, int id, MTGCardInstance * card, Targetable * t, ManaCost * _output, ManaCost * _cost,
int who,string producing,bool doesntEmpty) :
int who,string producing, bool doesntEmpty) :
ActivatedAbilityTP(observer, id, card, t, _cost, who)
{

View File

@@ -1197,6 +1197,11 @@ void MTGGameZone::cleanupPhase()
void MTGGameZone::shuffle()
{
owner->getObserver()->getRandomGenerator()->random_shuffle(cards.begin(), cards.end());
if(this == owner->game->library){
owner->lastShuffleTurn = owner->getObserver()->turn;
WEvent * e = NEW WEventplayerShuffled(owner); //Added to trigger an event when a player shuffles his/her library.
owner->getObserver()->receiveEvent(e);
}
}
void MTGGameZone::addCard(MTGCardInstance * card)

View File

@@ -42,6 +42,7 @@ Player::Player(GameObserver *observer, string file, string fileSmall, MTGDeck *
monarch = 0;
surveilOffset = 0;
devotionOffset = 0;
lastShuffleTurn = -1;
epic = 0;
forcefield = 0;
dealsdamagebycombat = 0;

View File

@@ -297,6 +297,11 @@ WEventplayerMonarch::WEventplayerMonarch(Player * player) :
{
}
WEventplayerShuffled::WEventplayerShuffled(Player * player) :
player(player)
{
}
WEventCardBoasted::WEventCardBoasted(MTGCardInstance * card) :
WEventCardUpdate(card)
{
@@ -622,6 +627,12 @@ Targetable * WEventplayerMonarch::getTarget(Player * player)
return NULL;
}
Targetable * WEventplayerShuffled::getTarget(Player * player)
{
if (player) return player;
return NULL;
}
std::ostream& WEvent::toString(std::ostream& out) const
{
return out << "EVENT";

View File

@@ -1303,6 +1303,10 @@ void WParsedInt::extendedParse(string s, Spell * spell, MTGCardInstance * card)
{
intValue = (s == "pexperience")?card->controller()->experienceCount:card->controller()->opponent()->experienceCount;
}
else if (s == "plastshlturn" || s == "olastshlturn")
{
intValue = (s == "plastshlturn")?card->controller()->lastShuffleTurn:card->controller()->opponent()->lastShuffleTurn;
}
else if(!intValue)//found nothing, try parsing a atoi
{
intValue = atoi(s.c_str());