Fixed/refactored primitives after the parser has been improved in order to allow the usage of "^" instead of "," char in a lot of abilities (e.g. to use the token, flip, rampage, phasealter, becomes keywords inside transforms or to target a card with a "," char in its name).

This commit is contained in:
Vittorio Alfieri
2021-01-15 00:43:13 +01:00
parent 91d19e2852
commit 77c48dc1d5
6 changed files with 100 additions and 78 deletions
@@ -131,7 +131,7 @@ toughness=2
[/card] [/card]
[card] [card]
name=Acclaimed Contender name=Acclaimed Contender
auto=restriction type(other creature[knight]|mybattlefield)~morethan~0:reveal:5 optionone name(Get card) target(aura,knight,equipment,legenday artifact|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<5>*|reveal) bottomoflibrary optiontwoend revealend auto=restriction type(other creature[knight]|mybattlefield)~morethan~0:reveal:5 optionone name(Get card) target(*[aura;knight;equipment;legenday artifact]|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<5>*|reveal) bottomoflibrary optiontwoend revealend
text=When Acclaimed Contender enters the battlefield, if you control another Knight, look at the top five cards of your library. You may reveal a Knight, Aura, Equipment, or legendary artifact card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. text=When Acclaimed Contender enters the battlefield, if you control another Knight, look at the top five cards of your library. You may reveal a Knight, Aura, Equipment, or legendary artifact card from among them and put it into your hand. Put the rest on the bottom of your library in a random order.
mana={2}{W} mana={2}{W}
type=Creature type=Creature
@@ -151,7 +151,7 @@ toughness=3
[/card] [/card]
[card] [card]
name=Acolyte of Affliction name=Acolyte of Affliction
auto=deplete:2 controller && may moveTo(myHand) target(*[-sorcery,-instant,-land]|myGraveyard) oneshot auto=deplete:2 controller && may moveTo(myHand) target(*[-sorcery;-instant]|myGraveyard) oneshot
text=When Acolyte of Affliction enters the battlefield, put the top two cards of your library into your graveyard, then you may return a permanent card from your graveyard to your hand. text=When Acolyte of Affliction enters the battlefield, put the top two cards of your library into your graveyard, then you may return a permanent card from your graveyard to your hand.
mana={2}{B}{G} mana={2}{B}{G}
type=Creature type=Creature
@@ -650,8 +650,8 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Ajani's Aid name=Ajani's Aid
auto=moveto(myhand) target(Ajani, Valiant Protector|mylibrary) auto=moveto(myhand) target(Ajani^ Valiant Protector|mylibrary)
auto=moveto(myhand) target(Ajani, Valiant Protector|mygraveyard) auto=moveto(myhand) target(Ajani^ Valiant Protector|mygraveyard)
auto={S}:target(creature) preventAllCombatDamage to(mytgt) ueot auto={S}:target(creature) preventAllCombatDamage to(mytgt) ueot
text=When Ajani's Aid enters the battlefield, you may search your library and/or graveyard for a card named Ajani, Valiant Protector, reveal it, and put it into your hand. If you search your library this way, shuffle it. -- Sacrifice Ajani's Aid: Prevent all combat damage a creature of your choice would deal this turn. text=When Ajani's Aid enters the battlefield, you may search your library and/or graveyard for a card named Ajani, Valiant Protector, reveal it, and put it into your hand. If you search your library this way, shuffle it. -- Sacrifice Ajani's Aid: Prevent all combat damage a creature of your choice would deal this turn.
mana={2}{G}{W} mana={2}{G}{W}
@@ -1556,7 +1556,7 @@ name=Angrath's Fury
target=creature target=creature
auto=destroy auto=destroy
auto=ability$!name(Deal 3 damages) name(Deal 3 damages) damage:3 target(player,planeswalker)!$ controller auto=ability$!name(Deal 3 damages) name(Deal 3 damages) damage:3 target(player,planeswalker)!$ controller
auto=may name(Move Angrath, Minotaur Pirate to hand) name(Move Angrath, Minotaur Pirate to hand) moveto(myhand) target(Angrath, Minotaur Pirate|mylibrary,mygraveyard) auto=may name(Move Angrath, Minotaur Pirate to hand) name(Move Angrath, Minotaur Pirate to hand) moveto(myhand) target(Angrath^ Minotaur Pirate|mylibrary,mygraveyard)
text=Destroy target creature. Angrath's Fury deals 3 damage to target player or planeswalker. You may search your library and/or graveyard for a card named Angrath, Minotaur Pirate, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Destroy target creature. Angrath's Fury deals 3 damage to target player or planeswalker. You may search your library and/or graveyard for a card named Angrath, Minotaur Pirate, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={3}{B}{R} mana={3}{B}{R}
type=Sorcery type=Sorcery
@@ -2588,7 +2588,7 @@ type=Enchantment
[/card] [/card]
[card] [card]
name=Ashiok's Forerunner name=Ashiok's Forerunner
auto=may moveto(myHand) target(Ashiok, Sculptor of Fears|mylibrary,mygraveyard) && shuffle auto=may moveto(myHand) target(Ashiok^ Sculptor of Fears|mylibrary,mygraveyard) && shuffle
text=Flash -- When Ashiok's Forerunner enters the battlefield, you may search your library and/or graveyard for a card named Ashiok, Sculptor of Fears, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Flash -- When Ashiok's Forerunner enters the battlefield, you may search your library and/or graveyard for a card named Ashiok, Sculptor of Fears, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={3}{U}{B} mana={3}{U}{B}
type=Creature type=Creature
@@ -3639,8 +3639,8 @@ toughness=3
name=Basri's Aegis name=Basri's Aegis
target=<upto:2>creature target=<upto:2>creature
auto=counter(1/1,1) auto=counter(1/1,1)
auto=choice name(Search Library) may moveto(myhand) target(Basri, Devoted Paladin|myLibrary) && shuffle auto=choice name(Search Library) may moveto(myhand) target(Basri^ Devoted Paladin|myLibrary) && shuffle
auto=choice name(Search Graveyard) may moveto(myhand) target(Basri, Devoted Paladin|myGraveyard) auto=choice name(Search Graveyard) may moveto(myhand) target(Basri^ Devoted Paladin|myGraveyard)
text=Put a +1/+1 counter on each of up to two target creatures. You may search your library and/or graveyard for a card named Basri, Devoted Paladin, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Put a +1/+1 counter on each of up to two target creatures. You may search your library and/or graveyard for a card named Basri, Devoted Paladin, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={2}{W}{W} mana={2}{W}{W}
type=Sorcery type=Sorcery
@@ -5643,8 +5643,8 @@ type=Sorcery
[card] [card]
name=Brallin, Skyshark Rider name=Brallin, Skyshark Rider
abilities=hiddenface,partner abilities=hiddenface,partner
aicode=activate moveTo(myhand) target(Shabraz, the Skyshark|mylibrary) aicode=activate moveTo(myhand) target(Shabraz^ the Skyshark|mylibrary)
auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Shabraz, the Skyshark|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Shabraz, the Skyshark|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Shabraz^ the Skyshark|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Shabraz^ the Skyshark|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
auto=@discarded(*|myHand):all(this) counter(1/1,1) && damage:1 opponent auto=@discarded(*|myHand):all(this) counter(1/1,1) && damage:1 opponent
auto={R}:target(creature[Shark]) trample ueot auto={R}:target(creature[Shark]) trample ueot
text=Partner with Shabraz, the Skyshark (When this creature enters the battlefield, target player may put Shabraz into their hand from their library, then shuffle.) -- Whenever you discard a card, put a +1/+1 counter on Brallin, Skyshark Rider and it deals 1 damage to each opponent. -- {R}: Target Shark gains trample until end of turn. text=Partner with Shabraz, the Skyshark (When this creature enters the battlefield, target player may put Shabraz into their hand from their library, then shuffle.) -- Whenever you discard a card, put a +1/+1 counter on Brallin, Skyshark Rider and it deals 1 damage to each opponent. -- {R}: Target Shark gains trample until end of turn.
@@ -7241,8 +7241,8 @@ toughness=4
[card] [card]
name=Cazur, Ruthless Stalker name=Cazur, Ruthless Stalker
abilities=hiddenface,partner abilities=hiddenface,partner
aicode=activate moveTo(myhand) target(Ukkima, Stalking Shadow|mylibrary) aicode=activate moveTo(myhand) target(Ukkima^ Stalking Shadow|mylibrary)
auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Ukkima, Stalking Shadow|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Ukkima, Stalking Shadow|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Ukkima^ Stalking Shadow|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Ukkima^ Stalking Shadow|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
auto=@combatdamaged(player) from(creature|myBattlefield):all(trigger[from]) counter(1/1) auto=@combatdamaged(player) from(creature|myBattlefield):all(trigger[from]) counter(1/1)
text=Partner with Ukkima, Stalking Shadow (When this creature enters the battlefield, target player may put Ukkima into their hand from their library, then shuffle.) -- Whenever a creature you control deals combat damage to a player, put a +1/+1 counter on that creature. text=Partner with Ukkima, Stalking Shadow (When this creature enters the battlefield, target player may put Ukkima into their hand from their library, then shuffle.) -- Whenever a creature you control deals combat damage to a player, put a +1/+1 counter on that creature.
mana={3}{G} mana={3}{G}
@@ -7589,8 +7589,8 @@ toughness=2
[card] [card]
name=Chandra's Firemaw name=Chandra's Firemaw
abilities=haste abilities=haste
auto=choice name(Search Library) may moveto(myhand) target(Chandra, Flame's Catalyst|myLibrary) && shuffle auto=choice name(Search Library) may moveto(myhand) target(Chandra^ Flame's Catalyst|myLibrary) && shuffle
auto=choice name(Search Graveyard) may moveto(myhand) target(Chandra, Flame's Catalyst|myGraveyard) auto=choice name(Search Graveyard) may moveto(myhand) target(Chandra^ Flame's Catalyst|myGraveyard)
text=Haste -- When Chandra's Firemaw enters the battlefield, you may search your library and/or graveyard for a card named Chandra, Flame's Catalyst, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Haste -- When Chandra's Firemaw enters the battlefield, you may search your library and/or graveyard for a card named Chandra, Flame's Catalyst, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={3}{R}{R} mana={3}{R}{R}
type=Creature type=Creature
@@ -12638,7 +12638,7 @@ type=Sorcery
[card] [card]
name=Domri's Nodorog name=Domri's Nodorog
abilities=trample abilities=trample
auto=may moveTo(myhand) target(Domri, City Smasher|myLibrary,myGraveyard) auto=may moveTo(myhand) target(Domri^ City Smasher|myLibrary,myGraveyard)
text=Trample -- When Domri's Nodorog enters the battlefield, you may search your library and/or graveyard for a card named Domri, City Smasher, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Trample -- When Domri's Nodorog enters the battlefield, you may search your library and/or graveyard for a card named Domri, City Smasher, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={3}{R}{G} mana={3}{R}{G}
type=Creature type=Creature
@@ -12763,7 +12763,7 @@ toughness=3
[card] [card]
name=Dovin's Dismissal name=Dovin's Dismissal
auto=may target(creature[tapped]) moveto(ownerlibrary) auto=may target(creature[tapped]) moveto(ownerlibrary)
auto=ability$!name(Choose one) choice name(Don't search) donothing _ choice name(Search library) moveto(myhand) target(Dovin, Architect of Law|mylibrary) _ choice name(Search graveyard) moveto(myhand) target(Dovin, Architect of Law|mygraveyard)!$ controller auto=ability$!name(Choose one) choice name(Don't search) donothing _ choice name(Search library) moveto(myhand) target(Dovin^ Architect of Law|mylibrary) _ choice name(Search graveyard) moveto(myhand) target(Dovin^ Architect of Law|mygraveyard)!$ controller
text=Put up to one target tapped creature on top of its owner's library. You may search your library and/or graveyard for a card named Dovin, Architect of Law, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Put up to one target tapped creature on top of its owner's library. You may search your library and/or graveyard for a card named Dovin, Architect of Law, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={2}{W}{U} mana={2}{W}{U}
type=Instant type=Instant
@@ -14064,7 +14064,7 @@ subtype=Saga
[/card] [/card]
[card] [card]
name=Elspeth's Devotee name=Elspeth's Devotee
auto=may moveto(myHand) target(Elspeth, Undaunted Hero|mylibrary,mygraveyard) && shuffle auto=may moveto(myHand) target(Elspeth^ Undaunted Hero|mylibrary,mygraveyard) && shuffle
text=When Elspeth's Devotee enters the battlefield, you may search your library and/or graveyard for a card named Elspeth, Undaunted Hero, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=When Elspeth's Devotee enters the battlefield, you may search your library and/or graveyard for a card named Elspeth, Undaunted Hero, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={2}{W}{W} mana={2}{W}{W}
type=Creature type=Creature
@@ -14987,8 +14987,8 @@ type=Enchantment
[card] [card]
name=Ethereal Elk name=Ethereal Elk
abilities=trample abilities=trample
auto=may moveto(myhand) target(Vivien, Nature's Avenger|mylibrary) auto=may moveto(myhand) target(Vivien^ Nature's Avenger|mylibrary)
auto=may moveto(myhand) target(Vivien, Nature's Avenger|mygraveyard) auto=may moveto(myhand) target(Vivien^ Nature's Avenger|mygraveyard)
text=Trample -- When Ethereal Elk enters the battlefield, you may search your library and/or graveyard for a card named Vivien, Nature's Avenger, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Trample -- When Ethereal Elk enters the battlefield, you may search your library and/or graveyard for a card named Vivien, Nature's Avenger, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={3}{G}{G} mana={3}{G}{G}
type=Creature type=Creature
@@ -18170,8 +18170,8 @@ type=Enchantment
[card] [card]
name=Garruk's Warsteed name=Garruk's Warsteed
abilities=vigilance abilities=vigilance
auto=choice name(Search Library) may moveto(myhand) target(Garruk, Savage Herald|myLibrary) && shuffle auto=choice name(Search Library) may moveto(myhand) target(Garruk^ Savage Herald|myLibrary) && shuffle
auto=choice name(Search Graveyard) may moveto(myhand) target(Garruk, Savage Herald|myGraveyard) auto=choice name(Search Graveyard) may moveto(myhand) target(Garruk^ Savage Herald|myGraveyard)
text=Vigilance -- When Garruk's Warsteed enters the battlefield, you may search your library and/or graveyard for a card named Garruk, Savage Herald, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Vigilance -- When Garruk's Warsteed enters the battlefield, you may search your library and/or graveyard for a card named Garruk, Savage Herald, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={3}{G}{G} mana={3}{G}{G}
type=Creature type=Creature
@@ -18717,7 +18717,7 @@ type=Instant
[/card] [/card]
[card] [card]
name=Gideon's Resolve name=Gideon's Resolve
auto=may moveto(myhand) target(Gideon, Martial Paragon|mylibrary) auto=may moveto(myhand) target(Gideon^ Martial Paragon|mylibrary)
auto=lord(creature|mybattlefield) 1/1 auto=lord(creature|mybattlefield) 1/1
text=When Gideon's Resolve enters the battlefield, you may search your library and/or graveyard for a card named Gideon, Martial Paragon, reveal it, and put it into your hand. If you search your library this way, shuffle it. -- Creatures you control get +1/+1. text=When Gideon's Resolve enters the battlefield, you may search your library and/or graveyard for a card named Gideon, Martial Paragon, reveal it, and put it into your hand. If you search your library this way, shuffle it. -- Creatures you control get +1/+1.
mana={4}{W} mana={4}{W}
@@ -19910,8 +19910,8 @@ toughness=4
[card] [card]
name=Goldmane Griffin name=Goldmane Griffin
abilities=flying,vigilance abilities=flying,vigilance
auto=moveto(myhand) target(Ajani, Inspiring Leader|mylibrary) auto=moveto(myhand) target(Ajani^ Inspiring Leader|mylibrary)
auto=moveto(myhand) target(Ajani, Inspiring Leader|mygraveyard) auto=moveto(myhand) target(Ajani^ Inspiring Leader|mygraveyard)
text=Flying, vigilance -- When Goldmane Griffin enters the battlefield, you may search your library and/or graveyard for a card named Ajani, Inspiring Leader, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Flying, vigilance -- When Goldmane Griffin enters the battlefield, you may search your library and/or graveyard for a card named Ajani, Inspiring Leader, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={3}{W}{W} mana={3}{W}{W}
type=Creature type=Creature
@@ -20225,7 +20225,7 @@ type=Enchantment
name=Grasping Current name=Grasping Current
target=<upto:2>creature target=<upto:2>creature
auto=moveto(ownerhand) auto=moveto(ownerhand)
auto=moveto(myhand) target(Jace, Ingenious Mind-Mage|mylibrary) auto=moveto(myhand) target(Jace^ Ingenious Mind-Mage|mylibrary)
text=Return up to two target creatures to their owner's hand. -- Search your library and/or graveyard for a card named Jace, Ingenious Mind-Mage, reveal it, and put it into your hand. If you searched your library this way, shuffle it. text=Return up to two target creatures to their owner's hand. -- Search your library and/or graveyard for a card named Jace, Ingenious Mind-Mage, reveal it, and put it into your hand. If you searched your library this way, shuffle it.
mana={4}{U} mana={4}{U}
type=Sorcery type=Sorcery
@@ -21111,8 +21111,8 @@ toughness=4
[card] [card]
name=Haldan, Avid Arcanist name=Haldan, Avid Arcanist
abilities=hiddenface,canplayfromexile,partner abilities=hiddenface,canplayfromexile,partner
aicode=activate moveTo(myhand) target(Pako, Arcane Retriever|mylibrary) aicode=activate moveTo(myhand) target(Pako^ Arcane Retriever|mylibrary)
auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Pako, Arcane Retriever|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Pako, Arcane Retriever|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Pako^ Arcane Retriever|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Pako^ Arcane Retriever|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
auto=lord(*[-creature]|mycastingzone) transforms((,newability[anytypeofmana])) auto=lord(*[-creature]|mycastingzone) transforms((,newability[anytypeofmana]))
text=Partner with Pako, Arcane Retriever (When this creature enters the battlefield, target player may put Pako into their hand from their library, then shuffle.) -- You may play noncreature cards from exile with fetch counters on them if you exiled them, and you may spend mana as though it were mana of any color to cast those spells. text=Partner with Pako, Arcane Retriever (When this creature enters the battlefield, target player may put Pako into their hand from their library, then shuffle.) -- You may play noncreature cards from exile with fetch counters on them if you exiled them, and you may spend mana as though it were mana of any color to cast those spells.
mana={2}{U} mana={2}{U}
@@ -21598,8 +21598,8 @@ auto=this(variable{type:dragon:myrestrictedcastingzone}>0) {T}:add{R}
auto=this(variable{type:dragon:myrestrictedcastingzone}>0) {T}:add{G} auto=this(variable{type:dragon:myrestrictedcastingzone}>0) {T}:add{G}
auto=this(variable{type:dragon:myrestrictedcastingzone}>0) {T}:add{B} auto=this(variable{type:dragon:myrestrictedcastingzone}>0) {T}:add{B}
auto={2}{T}{S}:name(Move dragon) moveto(myhand) target(creature[dragon]|mygraveyard) auto={2}{T}{S}:name(Move dragon) moveto(myhand) target(creature[dragon]|mygraveyard)
auto={2}{T}{S}:name(Move Ugin, the Ineffable) moveto(myhand) target(Ugin, the Ineffable|mygraveyard) auto={2}{T}{S}:name(Move Ugin, the Ineffable) moveto(myhand) target(Ugin^ the Ineffable|mygraveyard)
auto={2}{T}{S}:name(Move Ugin, the Spirit Dragon) moveto(myhand) target(Ugin, the Spirit Dragon|mygraveyard) auto={2}{T}{S}:name(Move Ugin, the Spirit Dragon) moveto(myhand) target(Ugin^ the Spirit Dragon|mygraveyard)
text={T}: Add {1} to your mana pool. -- {T}: Add one mana of any color to your mana pool. Spend this mana only to cast a Dragon creature spell. -- {2}, {T}, Sacrifice Haven of the Spirit Dragon: Return target Dragon creature card or Ugin planeswalker card from your graveyard to your hand. text={T}: Add {1} to your mana pool. -- {T}: Add one mana of any color to your mana pool. Spend this mana only to cast a Dragon creature spell. -- {2}, {T}, Sacrifice Haven of the Spirit Dragon: Return target Dragon creature card or Ugin planeswalker card from your graveyard to your hand.
type=Land type=Land
[/card] [/card]
@@ -25095,7 +25095,7 @@ type=Sorcery
[card] [card]
name=Jace, Vryn's Prodigy name=Jace, Vryn's Prodigy
auto={T}:draw:1 controller && ability$!name(Discard a card) reject notatarget(*|myhand)!$ controller restriction{type(*|mygraveyard)~lessthan~4} auto={T}:draw:1 controller && ability$!name(Discard a card) reject notatarget(*|myhand)!$ controller restriction{type(*|mygraveyard)~lessthan~4}
auto={T}:draw:1 controller && ability$!name(Discard a card) reject notatarget(*|myhand)!$ controller && moveto(exile) and!( moveto(mybattlefield) and!( haste && counter(0/0,5,Loyalty) && flip(Jace, Telepath Unbound) )! )! restriction{type(*|mygraveyard)~morethan~3} auto={T}:draw:1 controller && ability$!name(Discard a card) reject notatarget(*|myhand)!$ controller && moveto(exile) and!( moveto(mybattlefield) and!( haste && counter(0/0,5,Loyalty) && flip(Jace^ Telepath Unbound) )! )! restriction{type(*|mygraveyard)~morethan~3}
text={T}: Draw a card, then discard a card. If there are five or more cards in your graveyard, exile Jace, Vryn's Prodigy, then return him to the battlefield transformed under his owner's control. text={T}: Draw a card, then discard a card. If there are five or more cards in your graveyard, exile Jace, Vryn's Prodigy, then return him to the battlefield transformed under his owner's control.
mana={1}{U} mana={1}{U}
type=Legendary Creature type=Legendary Creature
@@ -27087,7 +27087,7 @@ toughness=4
[/card] [/card]
[card] [card]
name=Krav, the Unredeemed name=Krav, the Unredeemed
auto=may name(Put partner on your hand) name(Put partner on your hand) moveto(myhand) target(Regna, the Redeemer|mylibrary) auto=may name(Put partner on your hand) name(Put partner on your hand) moveto(myhand) target(Regna^ the Redeemer|mylibrary)
auto={B}{S(creature|myBattlefield)}:name(Sacrifice 1 creature and target yourself) name(Sacrifice 1 creature and target yourself) all(this) counter(1/1,1) && life:1 controller && draw:1 controller auto={B}{S(creature|myBattlefield)}:name(Sacrifice 1 creature and target yourself) name(Sacrifice 1 creature and target yourself) all(this) counter(1/1,1) && life:1 controller && draw:1 controller
auto={B}{S(creature|myBattlefield)}:name(Sacrifice 1 creature and target opponent) name(Sacrifice 1 creature and target opponent) all(this) counter(1/1,1) && life:1 opponent && draw:1 opponent auto={B}{S(creature|myBattlefield)}:name(Sacrifice 1 creature and target opponent) name(Sacrifice 1 creature and target opponent) all(this) counter(1/1,1) && life:1 opponent && draw:1 opponent
auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 2 creatures and target yourself) name(Sacrifice 2 creatures and target yourself) all(this) counter(1/1,2) && life:2 controller && draw:2 controller auto={B}{S(creature|myBattlefield)}{S(creature|myBattlefield)}:name(Sacrifice 2 creatures and target yourself) name(Sacrifice 2 creatures and target yourself) all(this) counter(1/1,2) && life:2 controller && draw:2 controller
@@ -28160,8 +28160,8 @@ type=Enchantment
name=Liberating Combustion name=Liberating Combustion
target=creature target=creature
auto=damage:6 auto=damage:6
auto=moveto(myhand) target(Chandra, Pyrogenius|mylibrary) && shuffle controller auto=moveto(myhand) target(Chandra^ Pyrogenius|mylibrary) && shuffle controller
auto=moveto(myhand) target(Chandra, Pyrogenius|mygraveyard) auto=moveto(myhand) target(Chandra^ Pyrogenius|mygraveyard)
text=Liberating Combustion deals 6 damage to target creature. You may search your library and/or graveyard for a card named Chandra, Pyrogenius, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Liberating Combustion deals 6 damage to target creature. You may search your library and/or graveyard for a card named Chandra, Pyrogenius, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={4}{R} mana={4}{R}
type=Sorcery type=Sorcery
@@ -28451,7 +28451,7 @@ toughness=3
[card] [card]
name=Liliana's Influence name=Liliana's Influence
auto=counter(-1/-1,1) all(creature|opponentbattlefield) auto=counter(-1/-1,1) all(creature|opponentbattlefield)
auto=may moveto(myhand) target(Liliana, Death Wielder|mylibrary) auto=may moveto(myhand) target(Liliana^ Death Wielder|mylibrary,mygraveyard)
text=Put a -1/-1 counter on each creature you don't control. You may search your library and/or graveyard for a card named Liliana, Death Wielder, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Put a -1/-1 counter on each creature you don't control. You may search your library and/or graveyard for a card named Liliana, Death Wielder, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={4}{B}{B} mana={4}{B}{B}
type=Sorcery type=Sorcery
@@ -28468,8 +28468,8 @@ type=Enchantment
name=Liliana's Scorn name=Liliana's Scorn
target=creature target=creature
auto=destroy auto=destroy
auto=choice name(Search Library) may moveto(myhand) target(Liliana, Death Mage|myLibrary) && shuffle auto=choice name(Search Library) may moveto(myhand) target(Liliana^ Death Mage|myLibrary) && shuffle
auto=choice name(Search Graveyard) may moveto(myhand) target(Liliana, Death Mage|myGraveyard) auto=choice name(Search Graveyard) may moveto(myhand) target(Liliana^ Death Mage|myGraveyard)
text=Destroy target creature. You may search your library and/or graveyard for a card named Liliana, Death Mage, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Destroy target creature. You may search your library and/or graveyard for a card named Liliana, Death Mage, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={3}{B}{B} mana={3}{B}{B}
type=Sorcery type=Sorcery
@@ -30318,8 +30318,8 @@ toughness=3
name=Maze's End name=Maze's End
auto=tap(noevent) auto=tap(noevent)
auto={T}:Add {1} auto={T}:Add {1}
aicode=activate moveTo(myBattlefield) target(land[Gate]|myLibrary) aicode=activate
auto={H(this|mybattlefield)}{3}{T}:=name(search a gate) reveal:plibrarycount optionone name(choose gate) target(land[Gate]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield))! afterrevealedend revealend then aslongas(Selesnya Guildgate,Izzet Guildgate,Golgari Guildgate, Dimir Guildgate,Boros Guildgate,Simic Guildgate,Rakdos Guildgate,Orzhov Guildgate,Gruul Guildgate,Azorius Guildgate|myBattlefield) while wingame auto={3}{T}{H(this|mybattlefield)}{3}{T}:name(search a gate) target(land[Gate]|myLibrary) moveTo(myBattlefield) and!( if compare(diffcardcounttypegate)~morethan~9 then wingame controller )!
text=Mazes End enters the battlefield tapped. -- {T}:Add {C}. -- {3},{T},Return Mazes End to its owners hand: Search your library for a Gate card, put it onto the battlefield, then shuffle your library. If you control ten or more Gates with different names, you win the game. text=Mazes End enters the battlefield tapped. -- {T}:Add {C}. -- {3},{T},Return Mazes End to its owners hand: Search your library for a Gate card, put it onto the battlefield, then shuffle your library. If you control ten or more Gates with different names, you win the game.
type=Land type=Land
[/card] [/card]
@@ -32917,7 +32917,7 @@ toughness=2
[card] [card]
name=Nikara, Lair Scavenger name=Nikara, Lair Scavenger
abilities=menace,partner abilities=menace,partner
auto=may moveto(myhand) target(Yannik, Scavenging Sentinel|mylibrary) auto=may moveto(myhand) target(Yannik^ Scavenging Sentinel|mylibrary)
auto=@movedTo(other creature[counter{1/1<anyamount>}]|nonbattlezone) from(mybattlefield):draw:1 && life:-1 controller auto=@movedTo(other creature[counter{1/1<anyamount>}]|nonbattlezone) from(mybattlefield):draw:1 && life:-1 controller
text=Partner with Yannik, Scavenging Sentinel (When this creature enters the battlefield, target player may put Yannik into their hand from their library, then shuffle.) -- Menace -- Whenever another creature you control leaves the battlefield, if it had one or more counters on it, you draw a card and you lose 1 life. text=Partner with Yannik, Scavenging Sentinel (When this creature enters the battlefield, target player may put Yannik into their hand from their library, then shuffle.) -- Menace -- Whenever another creature you control leaves the battlefield, if it had one or more counters on it, you draw a card and you lose 1 life.
mana={2}{B} mana={2}{B}
@@ -33872,8 +33872,8 @@ toughness=3
[card] [card]
name=Oko's Hospitality name=Oko's Hospitality
auto=lord(creature|battlefield) transforms((,setpower=3,settoughness=3)) ueot auto=lord(creature|battlefield) transforms((,setpower=3,settoughness=3)) ueot
auto=moveto(myhand) target(Oko, the Trickster|mylibrary) auto=moveto(myhand) target(Oko^ the Trickster|mylibrary)
auto=moveto(myhand) target(Oko, the Trickster|mygraveyard) auto=moveto(myhand) target(Oko^ the Trickster|mygraveyard)
text=Creatures you control have base power and toughness 3/3 until end of turn. You may search your library and/or graveyard for a card named Oko, the Trickster, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Creatures you control have base power and toughness 3/3 until end of turn. You may search your library and/or graveyard for a card named Oko, the Trickster, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={3}{G}{U} mana={3}{G}{U}
type=Instant type=Instant
@@ -34899,8 +34899,8 @@ toughness=2
[card] [card]
name=Pako, Arcane Retriever name=Pako, Arcane Retriever
abilities=hiddenface,haste,partner abilities=hiddenface,haste,partner
aicode=activate moveTo(myhand) target(Haldan, Avid Arcanist|mylibrary) aicode=activate moveTo(myhand) target(Haldan^ Avid Arcanist|mylibrary)
auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Haldan, Avid Arcanist|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Haldan, Avid Arcanist|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Haldan^ Avid Arcanist|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Haldan^ Avid Arcanist|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
auto=@combat(attacking) source(this):NOTCODED auto=@combat(attacking) source(this):NOTCODED
text=Partner with Haldan, Avid Arcanist -- Haste -- Whenever Pako, Arcane Retriever attacks, exile the top card of each players library and put a fetch counter on each of them. Put a +1/+1 counter on Pako for each noncreature card exiled this way. text=Partner with Haldan, Avid Arcanist -- Haste -- Whenever Pako, Arcane Retriever attacks, exile the top card of each players library and put a fetch counter on each of them. Put a +1/+1 counter on Pako for each noncreature card exiled this way.
mana={3}{R}{G} mana={3}{R}{G}
@@ -38620,12 +38620,12 @@ type=Sorcery
[card] [card]
name=Regna, the Redeemer name=Regna, the Redeemer
abilities=flying,partner abilities=flying,partner
auto=may moveto(myhand) notatarget(krav, the unredeemed|mylibrary) auto=may moveto(myhand) notatarget(krav^ the unredeemed|mylibrary)
auto=@each endofturn restriction{compare(lifegain)~morethan~0}:create(warrior:creature warrior:1/1:white:)*2 auto=@each endofturn restriction{compare(lifegain)~morethan~0}:create(warrior:creature warrior:1/1:white:)*2
text=Partner with Krav, the Unredeemed (When this creature enters the battlefield, target player may put Krav into their hand from their library, then shuffle.) -- Flying -- At the beginning of each end step, if your team gained life this turn, create two 1/1 white Warrior creature tokens. text=Partner with Krav, the Unredeemed (When this creature enters the battlefield, target player may put Krav into their hand from their library, then shuffle.) -- Flying -- At the beginning of each end step, if your team gained life this turn, create two 1/1 white Warrior creature tokens.
mana={5}{W} mana={5}{W}
type=Legendary Creature type=Legendary Creature
subtype=Angel Regna subtype=Angel
power=4 power=4
toughness=4 toughness=4
[/card] [/card]
@@ -40395,8 +40395,8 @@ toughness=3
[/card] [/card]
[card] [card]
name=Rowan's Stalwarts name=Rowan's Stalwarts
auto=moveto(myhand) target(Rowan, Fearless Sparkmage|mylibrary) auto=moveto(myhand) target(Rowan^ Fearless Sparkmage|mylibrary)
auto=moveto(myhand) target(Rowan, Fearless Sparkmage|mygraveyard) auto=moveto(myhand) target(Rowan^ Fearless Sparkmage|mygraveyard)
text=When Rowan's Stalwarts enters the battlefield, you may search your library and/or graveyard for a card named Rowan, Fearless Sparkmage, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=When Rowan's Stalwarts enters the battlefield, you may search your library and/or graveyard for a card named Rowan, Fearless Sparkmage, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={4}{R} mana={4}{R}
type=Creature type=Creature
@@ -42831,8 +42831,8 @@ toughness=2
[card] [card]
name=Shabraz, the Skyshark name=Shabraz, the Skyshark
abilities=hiddenface,partner abilities=hiddenface,partner
aicode=activate moveTo(myhand) target(Brallin, Skyshark Rider|mylibrary) aicode=activate moveTo(myhand) target(Brallin^ Skyshark Rider|mylibrary)
auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Brallin, Skyshark Rider|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Brallin, Skyshark Rider|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Brallin^ Skyshark Rider|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Brallin^ Skyshark Rider|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
auto=@drawof(player:all(this) counter(1/1,1) && life:1 controller auto=@drawof(player:all(this) counter(1/1,1) && life:1 controller
auto={WU}:target(creature[Human]) flying ueot auto={WU}:target(creature[Human]) flying ueot
text=Partner with Shabraz, the Skyshark (When this creature enters the battlefield, target player may put Shabraz into their hand from their library, then shuffle.) -- Whenever you discard a card, put a +1/+1 counter on Brallin, Skyshark Rider and it deals 1 damage to each opponent. -- {R}: Target Shark gains trample until end of turn. text=Partner with Shabraz, the Skyshark (When this creature enters the battlefield, target player may put Shabraz into their hand from their library, then shuffle.) -- Whenever you discard a card, put a +1/+1 counter on Brallin, Skyshark Rider and it deals 1 damage to each opponent. -- {R}: Target Shark gains trample until end of turn.
@@ -43952,8 +43952,8 @@ type=Instant
[card] [card]
name=Silvar, Devourer of the Free name=Silvar, Devourer of the Free
abilities=hiddenface,menace,partner abilities=hiddenface,menace,partner
aicode=activate moveTo(myhand) target(Trynn, Champion of Freedom|mylibrary) aicode=activate moveTo(myhand) target(Trynn^ Champion of Freedom|mylibrary)
auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Trynn, Champion of Freedom|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Trynn, Champion of Freedom|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Trynn^ Champion of Freedom|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Trynn^ Champion of Freedom|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
auto={S(Human|myBattlefield)}:all(this) counter(1/1) && indestructible ueot auto={S(Human|myBattlefield)}:all(this) counter(1/1) && indestructible ueot
text=Partner with Trynn, Champion of Freedom (When this creature enters the battlefield, target player may put Trynn into their hand from their library, then shuffle.) -- Menace -- Sacrifice a Human: Put a +1/+1 counter on Silvar, Devourer of the Free. It gains indestructible until end of turn. text=Partner with Trynn, Champion of Freedom (When this creature enters the battlefield, target player may put Trynn into their hand from their library, then shuffle.) -- Menace -- Sacrifice a Human: Put a +1/+1 counter on Silvar, Devourer of the Free. It gains indestructible until end of turn.
mana={3}{B}{R} mana={3}{B}{R}
@@ -45508,8 +45508,8 @@ subtype=Equipment
[/card] [/card]
[card] [card]
name=Sorin's Guide name=Sorin's Guide
auto=may moveto(myhand) target(Sorin, Vampire Lord|mylibrary) auto=may moveto(myhand) target(Sorin^ Vampire Lord|mylibrary)
auto=may moveto(myhand) target(Sorin, Vampire Lord|mygraveyard) auto=may moveto(myhand) target(Sorin^ Vampire Lord|mygraveyard)
text=When Sorin's Guide enters the battlefield, you may search your library and/or graveyard for a card named Sorin, Vampire Lord, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=When Sorin's Guide enters the battlefield, you may search your library and/or graveyard for a card named Sorin, Vampire Lord, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={3}{B}{B} mana={3}{B}{B}
type=Creature type=Creature
@@ -47992,7 +47992,7 @@ toughness=2
[/card] [/card]
[card] [card]
name=Sun-Blessed Mount name=Sun-Blessed Mount
auto=may moveto(myhand) target(Huatli, Dinosaur Knight|mylibrary,mygraveyard) auto=may moveto(myhand) target(Huatli^ Dinosaur Knight|mylibrary,mygraveyard)
text=When Sun-Blessed Mount enters the battlefield, you may search your library and/or graveyard for a card named Huatli, Dinosaur Knight, reveal it, then put it into your hand. If you searched your library this way, shuffle it. text=When Sun-Blessed Mount enters the battlefield, you may search your library and/or graveyard for a card named Huatli, Dinosaur Knight, reveal it, then put it into your hand. If you searched your library this way, shuffle it.
mana={3}{R}{W} mana={3}{R}{W}
type=Creature type=Creature
@@ -49412,8 +49412,8 @@ type=Enchantment
[card] [card]
name=Teferi's Wavecaster name=Teferi's Wavecaster
abilities=flash abilities=flash
auto=choice name(Search Library) may moveto(myHand) target(Teferi, Timeless Voyager|myLibrary) && shuffle auto=choice name(Search Library) may moveto(myHand) target(Teferi^ Timeless Voyager|myLibrary) && shuffle
auto=choice name(Search Graveyard) may moveto(myHand) target(Teferi, Timeless Voyager|myGraveyard) auto=choice name(Search Graveyard) may moveto(myHand) target(Teferi^ Timeless Voyager|myGraveyard)
text=Flash -- When Teferi's Wavecaster enters the battlefield, you may search your library and/or graveyard for a card named Teferi, Timeless Voyager, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Flash -- When Teferi's Wavecaster enters the battlefield, you may search your library and/or graveyard for a card named Teferi, Timeless Voyager, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={3}{U}{U} mana={3}{U}{U}
type=Creature type=Creature
@@ -49749,8 +49749,8 @@ toughness=4
name=Tezzeret's Betrayal name=Tezzeret's Betrayal
target=creature target=creature
auto=destroy auto=destroy
auto=choice name(Search Library) may moveto(myhand) target(Tezzeret, Master of Metal|myLibrary) && shuffle auto=choice name(Search Library) may moveto(myhand) target(Tezzeret^ Master of Metal|myLibrary) && shuffle
auto=choice name(Search Graveyard) may moveto(myhand) target(Tezzeret, Master of Metal|myGraveyard) auto=choice name(Search Graveyard) may moveto(myhand) target(Tezzeret^ Master of Metal|myGraveyard)
text=Destroy target creature. You may search your library and/or graveyard for a card named Tezzeret, Master of Metal, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Destroy target creature. You may search your library and/or graveyard for a card named Tezzeret, Master of Metal, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={3}{U}{B} mana={3}{U}{B}
type=Sorcery type=Sorcery
@@ -51385,7 +51385,7 @@ toughness=3
[card] [card]
name=Toothy, Imaginary Friend name=Toothy, Imaginary Friend
abilities=partner abilities=partner
auto=may moveto(myhand) notatarget(pir, imaginative rascal|mylibrary) auto=may moveto(myhand) notatarget(pir^ imaginative rascal|mylibrary)
auto=@drawof(player):counter(1/1) auto=@drawof(player):counter(1/1)
auto=@movedTo(this|nonbattlezone) from(myBattlefield):thisforeach(counter{1/1,1}) draw:1 controller auto=@movedTo(this|nonbattlezone) from(myBattlefield):thisforeach(counter{1/1,1}) draw:1 controller
text=Partner with Pir, Imaginative Rascal (When this creature enters the battlefield, target player may put Pir into their hand from their library, then shuffle.) -- Whenever you draw a card, put a +1/+1 counter on Toothy, Imaginary Friend. -- When Toothy leaves the battlefield, draw a card for each +1/+1 counter on it. text=Partner with Pir, Imaginative Rascal (When this creature enters the battlefield, target player may put Pir into their hand from their library, then shuffle.) -- Whenever you draw a card, put a +1/+1 counter on Toothy, Imaginary Friend. -- When Toothy leaves the battlefield, draw a card for each +1/+1 counter on it.
@@ -52169,8 +52169,8 @@ toughness=3
[card] [card]
name=Trynn, Champion of Freedom name=Trynn, Champion of Freedom
abilities=hiddenface,partner abilities=hiddenface,partner
aicode=activate moveTo(myhand) target(Silvar, Devourer of the Free|mylibrary) aicode=activate moveTo(myhand) target(Silvar^ Devourer of the Free|mylibrary)
auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Silvar, Devourer of the Free|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Silvar, Devourer of the Free|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Silvar^ Devourer of the Free|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Silvar^ Devourer of the Free|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
auto=@each my endofturn:if raid then token(Soldier Try) auto=@each my endofturn:if raid then token(Soldier Try)
text=Partner with Silvar, Devourer of the Free (When this creature enters the battlefield, target player may put Silvar into their hand from their library, then shuffle.) -- At the beginning of your end step, if you attacked this turn, create a 1/1 white Human Soldier creature token. text=Partner with Silvar, Devourer of the Free (When this creature enters the battlefield, target player may put Silvar into their hand from their library, then shuffle.) -- At the beginning of your end step, if you attacked this turn, create a 1/1 white Human Soldier creature token.
mana={3}{W} mana={3}{W}
@@ -52567,8 +52567,8 @@ toughness=0
[card] [card]
name=Ukkima, Stalking Shadow name=Ukkima, Stalking Shadow
abilities=hiddenface,unblockable,partner abilities=hiddenface,unblockable,partner
aicode=activate moveTo(myhand) target(Cazur, Ruthless Stalker|mylibrary) aicode=activate moveTo(myhand) target(Cazur^ Ruthless Stalker|mylibrary)
auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Cazur, Ruthless Stalker|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Cazur, Ruthless Stalker|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend auto=name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(Cazur^ Ruthless Stalker|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(Cazur^ Ruthless Stalker|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
auto=@movedto(this|nonbattlezone):damage:storedpower target(opponent) && life:storedpower controller auto=@movedto(this|nonbattlezone):damage:storedpower target(opponent) && life:storedpower controller
text=Partner with Cazur, Ruthless Stalker (When this creature enters the battlefield, target player may put Cazur into their hand from their library, then shuffle.) -- Ukkima, Stalking Shadow cant be blocked. -- When Ukkima leaves the battlefield, it deals X damage to target player and you gain X life, where X is its power. text=Partner with Cazur, Ruthless Stalker (When this creature enters the battlefield, target player may put Cazur into their hand from their library, then shuffle.) -- Ukkima, Stalking Shadow cant be blocked. -- When Ukkima leaves the battlefield, it deals X damage to target player and you gain X life, where X is its power.
mana={1}{U}{B} mana={1}{U}{B}
@@ -53901,8 +53901,8 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Verdant Crescendo name=Verdant Crescendo
aicode=activate target(Nissa, Nature's Artisan|mylibrary,mygraveyard) moveto(myhand) && shuffle auto=target(land[basic]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )!
auto=reveal:plibrarycount optionone name(choose card) target(land[basic]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield) and!(tap(noevent))!)! afterrevealedend revealend && ability$!name(Search Nissa, Nature's Artisan) moveto(myhand) target(Nissa, Nature's Artisan|mylibrary,mygraveyard) && shuffle!$ controller auto=ability$!name(Search Nissa, Nature's Artisan) name(Search Nissa, Nature's Artisan) target(Nissa^ Nature's Artisan|mylibrary,mygraveyard) moveto(myhand) and!( shuffle )! !$ controller
text=Search your library for a basic land card and put it onto the battlefield tapped. Search your library and graveyard for a card named Nissa, Nature's Artisan, reveal it, and put it into your hand. Then shuffle your library. text=Search your library for a basic land card and put it onto the battlefield tapped. Search your library and graveyard for a card named Nissa, Nature's Artisan, reveal it, and put it into your hand. Then shuffle your library.
mana={3}{G} mana={3}{G}
type=Sorcery type=Sorcery
@@ -54357,7 +54357,7 @@ type=Instant
[/card] [/card]
[card] [card]
name=Visage of Bolas name=Visage of Bolas
auto=may moveto(myhand) target(Nicol Bolas, the Deceiver|mylibrary) auto=may moveto(myhand) target(Nicol Bolas^ the Deceiver|mylibrary,mygraveyard) and!( shuffle )!
auto={T}:Add{U} auto={T}:Add{U}
auto={T}:Add{B} auto={T}:Add{B}
auto={T}:Add{R} auto={T}:Add{R}
@@ -54839,7 +54839,7 @@ toughness=2
[card] [card]
name=Vraska's Scorn name=Vraska's Scorn
auto=life:-4 opponent auto=life:-4 opponent
auto=may name(Move Vraska, Scheming Gorgon to hand) name(Move Vraska, Scheming Gorgon to hand) moveto(myhand) target(Vraska, Scheming Gorgon|mylibrary,mygraveyard) && shuffle auto=may name(Move Vraska, Scheming Gorgon to hand) name(Move Vraska, Scheming Gorgon to hand) target(Vraska^ Scheming Gorgon|mylibrary,mygraveyard) moveto(myhand) and!( shuffle )!
text=Target opponent loses 4 life. You may search your library and/or graveyard for a card named Vraska, Scheming Gorgon, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Target opponent loses 4 life. You may search your library and/or graveyard for a card named Vraska, Scheming Gorgon, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={2}{B}{B} mana={2}{B}{B}
type=Sorcery type=Sorcery
@@ -56537,8 +56537,7 @@ toughness=5
[card] [card]
name=Yanling's Harbinger name=Yanling's Harbinger
abilities=flying abilities=flying
auto=moveto(myhand) target(Mu Yanling, Celestial Wind|mylibrary) auto=target(Mu Yanling^ Celestial Wind|mylibrary,mygraveyard) moveto(myhand) and!( shuffle )!
auto=moveto(myhand) target(Mu Yanling, Celestial Wind|mygraveyard)
text=Flying -- When Yanling's Harbinger enters the battlefield, you may search your library and/or graveyard for a card named Mu Yanling, Celestial Wind, reveal it, and put it into your hand. If you search your library this way, shuffle it. text=Flying -- When Yanling's Harbinger enters the battlefield, you may search your library and/or graveyard for a card named Mu Yanling, Celestial Wind, reveal it, and put it into your hand. If you search your library this way, shuffle it.
mana={3}{U}{U} mana={3}{U}{U}
type=Creature type=Creature
@@ -56549,8 +56548,28 @@ toughness=4
[card] [card]
name=Yannik, Scavenging Sentinel name=Yannik, Scavenging Sentinel
abilities=vigilance,partner abilities=vigilance,partner
auto=may moveto(myhand) target(Nikara, Lair Scavenger|mylibrary) auto=may moveto(myhand) target(Nikara^ Lair Scavenger|mylibrary)
auto=(blink)forsrc target(other creature|mybattlefield) && target(creature) counter(1/1,storedpower) auto=if type(creature[power=0]|myBattlefield)~morethan~0 then choice name(Exile creature with power 0) name(Exile creature with power 0) (blink)forsrc target(other creature[power=0]|mybattlefield)
auto=if type(creature[power=1]|myBattlefield)~morethan~0 then choice name(Exile creature with power 1) name(Exile creature with power 1) (blink)forsrc target(other creature[power=1]|mybattlefield) && ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=2]|myBattlefield)~morethan~0 then choice name(Exile creature with power 2) name(Exile creature with power 2) (blink)forsrc target(other creature[power=2]|mybattlefield) && thisforeach(variable{2}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=3]|myBattlefield)~morethan~0 then choice name(Exile creature with power 3) name(Exile creature with power 3) (blink)forsrc target(other creature[power=3]|mybattlefield) && thisforeach(variable{3}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=4]|myBattlefield)~morethan~0 then choice name(Exile creature with power 4) name(Exile creature with power 4) (blink)forsrc target(other creature[power=4]|mybattlefield) && thisforeach(variable{4}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=5]|myBattlefield)~morethan~0 then choice name(Exile creature with power 5) name(Exile creature with power 5) (blink)forsrc target(other creature[power=5]|mybattlefield) && thisforeach(variable{5}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=6]|myBattlefield)~morethan~0 then choice name(Exile creature with power 6) name(Exile creature with power 6) (blink)forsrc target(other creature[power=6]|mybattlefield) && thisforeach(variable{6}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=7]|myBattlefield)~morethan~0 then choice name(Exile creature with power 7) name(Exile creature with power 7) (blink)forsrc target(other creature[power=7]|mybattlefield) && thisforeach(variable{7}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=8]|myBattlefield)~morethan~0 then choice name(Exile creature with power 8) name(Exile creature with power 8) (blink)forsrc target(other creature[power=8]|mybattlefield) && thisforeach(variable{8}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=9]|myBattlefield)~morethan~0 then choice name(Exile creature with power 9) name(Exile creature with power 9) (blink)forsrc target(other creature[power=9]|mybattlefield) && thisforeach(variable{9}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=10]|myBattlefield)~morethan~0 then choice name(Exile creature with power 10) name(Exile creature with power 10) (blink)forsrc target(other creature[power=10]|mybattlefield) && thisforeach(variable{10}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=11]|myBattlefield)~morethan~0 then choice name(Exile creature with power 11) name(Exile creature with power 11) (blink)forsrc target(other creature[power=11]|mybattlefield) && thisforeach(variable{11}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=12]|myBattlefield)~morethan~0 then choice name(Exile creature with power 12) name(Exile creature with power 12) (blink)forsrc target(other creature[power=12]|mybattlefield) && thisforeach(variable{12}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=13]|myBattlefield)~morethan~0 then choice name(Exile creature with power 13) name(Exile creature with power 13) (blink)forsrc target(other creature[power=13]|mybattlefield) && thisforeach(variable{13}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=14]|myBattlefield)~morethan~0 then choice name(Exile creature with power 14) name(Exile creature with power 14) (blink)forsrc target(other creature[power=14]|mybattlefield) && thisforeach(variable{14}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=15]|myBattlefield)~morethan~0 then choice name(Exile creature with power 15) name(Exile creature with power 15) (blink)forsrc target(other creature[power=15]|mybattlefield) && thisforeach(variable{15}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=16]|myBattlefield)~morethan~0 then choice name(Exile creature with power 16) name(Exile creature with power 16) (blink)forsrc target(other creature[power=16]|mybattlefield) && thisforeach(variable{16}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=17]|myBattlefield)~morethan~0 then choice name(Exile creature with power 17) name(Exile creature with power 17) (blink)forsrc target(other creature[power=17]|mybattlefield) && thisforeach(variable{17}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=18]|myBattlefield)~morethan~0 then choice name(Exile creature with power 18) name(Exile creature with power 18) (blink)forsrc target(other creature[power=18]|mybattlefield) && thisforeach(variable{18}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power=19]|myBattlefield)~morethan~0 then choice name(Exile creature with power 19) name(Exile creature with power 19) (blink)forsrc target(other creature[power=19]|mybattlefield) && thisforeach(variable{19}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
auto=if type(creature[power>=20]|myBattlefield)~morethan~0 then choice name(Exile creature with power 20) name(Exile creature with power 20) (blink)forsrc target(other creature[power>=20]|mybattlefield) && thisforeach(variable{20}) ability$!name(Assign 1/1 counter) name(Assign 1/1 counter) target(creature) counter(1/1)!$ controller
text=Partner with Nikara, Lair Scavenger -- Vigilance -- When Yannik, Scavenging Sentinel enters the battlefield, exile another creature you control until Yannik leaves the battlefield. When you do, distribute X +1/+1 counters among any number of target creatures, where X is the exiled creature's power. text=Partner with Nikara, Lair Scavenger -- Vigilance -- When Yannik, Scavenging Sentinel enters the battlefield, exile another creature you control until Yannik leaves the battlefield. When you do, distribute X +1/+1 counters among any number of target creatures, where X is the exiled creature's power.
mana={2}{G}{W} mana={2}{G}{W}
type=Legendary Creature type=Legendary Creature
+2 -5
View File
@@ -15510,10 +15510,7 @@ type=Sorcery
[card] [card]
name=Budoka Gardener name=Budoka Gardener
doublefaced=kamiflip doublefaced=kamiflip
auto={T}:name(Put land in play) name(Put land in play) target(land|myhand) moveto(mybattlefield) && if type(land|mybattlefield)~morethan~9 then all(this) flip(Dokai, Weaver of Life) else all(this) counter(0/0.1.BudokaFlp) auto={T}:all(this) transforms((,newability[if type(land|mybattlefield)~morethan~9 then flip(Dokai^ Weaver of Life)],newability[may moveto(mybattlefield) notatarget(land|myhand)],newability[@movedto(land|mybattlefield) restriction{compare(type:land:mybattlefield)~morethan~9}:flip(Dokai^ Weaver of Life)])) ueot
auto={T}:name(Don't put land in play) name(Don't put land in play) if type(land|mybattlefield)~lessthan~10 then counter(0/0.1.BudokaFlp) else flip(Dokai, Weaver of Life) && counter(0/0.-1.BudokaFlp)
auto=@movedto(land|mybattlefield) restriction{compare(type:land:mybattlefield)~morethan~9}:this(counter{0/0.1.BudokaFlp}>0) flip(Dokai, Weaver of Life) && counter(0/0.-1.BudokaFlp)
auto=@each endofturn:this(counter{0/0.1.BudokaFlp}>0) counter(0/0.-1.BudokaFlp)
text={T}: You may put a land card from your hand onto the battlefield. If you control ten or more lands, flip Budoka Gardener. text={T}: You may put a land card from your hand onto the battlefield. If you control ten or more lands, flip Budoka Gardener.
mana={1}{G} mana={1}{G}
type=Creature type=Creature
@@ -37415,7 +37412,7 @@ type=Land
name=Everglove Courier name=Everglove Courier
abilities=doesnotuntap abilities=doesnotuntap
auto=@each my untap sourcetap:may untap auto=@each my untap sourcetap:may untap
auto={2}{g}{t}:target(elf) grant +2/+2 grantend auto={2}{g}{t}:target(elf) grant transforms((,newability[2/2],newability[trample])) grantend
text=You may choose not to untap Everglove Courier during your untap step. -- {2}{G}, {T}: Target Elf creature gets +2/+2 and has trample for as long as Everglove Courier remains tapped. text=You may choose not to untap Everglove Courier during your untap step. -- {2}{G}, {T}: Target Elf creature gets +2/+2 and has trample for as long as Everglove Courier remains tapped.
mana={2}{G} mana={2}{G}
type=Creature type=Creature
@@ -706,7 +706,7 @@ subtype=Dovin
name=Dovin, Grand Arbiter name=Dovin, Grand Arbiter
auto=counter(0/0,3,loyalty) auto=counter(0/0,3,loyalty)
aicode=activate target(*[zpos<=10]|mylibrary) moveto(myhand) aicode=activate target(*[zpos<=10]|mylibrary) moveto(myhand)
auto={C(0/0,1,Loyalty)}:name(+1: Whenever a creature combat damage, put loyalty counter) all(creature|myBattlefield) transforms((,newability[@combatdamaged(player) from(this):counter(0/0,1,Loyalty) notAtarget(Dovin, Grand Arbiter|myBattlefield)])) ueot oneshot auto={C(0/0,1,Loyalty)}:name(+1: Whenever a creature combat damage, put loyalty counter) all(creature|myBattlefield) transforms((,newability[@combatdamaged(player) from(this):counter(0/0,1,Loyalty) notAtarget(Dovin^ Grand Arbiter|myBattlefield)])) ueot oneshot
auto={C(0/0,-1,Loyalty)}:name(-1: Create a 1/1 Thopter and gain 1 life) token(Thopter,Artifact Creature Thopter,1/1,flying) && life:1 controller auto={C(0/0,-1,Loyalty)}:name(-1: Create a 1/1 Thopter and gain 1 life) token(Thopter,Artifact Creature Thopter,1/1,flying) && life:1 controller
auto={C(0/0,-7,Loyalty)}:name(-7: Look at the top ten and put three in your hand) name(Look ten cards from top of your Library) reveal:10 optionone name(Get three cards) target(<3>*|reveal) moveto(hand) optiononeend optiontwo all(*|reveal) bottomoflibrary optiontwoend revealend auto={C(0/0,-7,Loyalty)}:name(-7: Look at the top ten and put three in your hand) name(Look ten cards from top of your Library) reveal:10 optionone name(Get three cards) target(<3>*|reveal) moveto(hand) optiononeend optiontwo all(*|reveal) bottomoflibrary optiontwoend revealend
text=+1: Until end of turn, whenever a creature you control deals combat damage to a player, put a loyalty counter on Dovin, Grand Arbiter. -- 1: Create a 1/1 colorless Thopter artifact creature token with flying. You gain 1 life. -- 7: Look at the top ten cards of your library. Put three of them into your hand and the rest on the bottom of your library in a random order. text=+1: Until end of turn, whenever a creature you control deals combat damage to a player, put a loyalty counter on Dovin, Grand Arbiter. -- 1: Create a 1/1 colorless Thopter artifact creature token with flying. You gain 1 life. -- 7: Look at the top ten cards of your library. Put three of them into your hand and the rest on the bottom of your library in a random order.
@@ -9184,7 +9184,7 @@ toughness=2
[/card] [/card]
[card] [card]
name=Pir, Imaginative Rascal name=Pir, Imaginative Rascal
auto=may name(Put partner on your hand) name(Put partner on your hand) moveto(myhand) target(Toothy, Imaginary Friend|mylibrary) auto=may name(Put partner on your hand) name(Put partner on your hand) moveto(myhand) target(Toothy^ Imaginary Friend|mylibrary)
text=Partner with Toothy, Imaginary Friend (When this creature enters the battlefield, target player may put Toothy into their hand from their library, then shuffle.) -- If one or more counters would be put on a permanent your team controls, that many plus one of each of those kinds of counters are put on that permanent instead. text=Partner with Toothy, Imaginary Friend (When this creature enters the battlefield, target player may put Toothy into their hand from their library, then shuffle.) -- If one or more counters would be put on a permanent your team controls, that many plus one of each of those kinds of counters are put on that permanent instead.
mana={2}{G} mana={2}{G}
type=Legendary Creature type=Legendary Creature
+5
View File
@@ -2874,6 +2874,7 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
} }
string tokenDesc = splitToken[1]; string tokenDesc = splitToken[1];
replace(tokenDesc.begin(), tokenDesc.end(), '^', ','); // To allow the usage of ^ instead of , char (e.g. using token keyword inside transforms)
vector<string> tokenParameters = split(tokenDesc, ','); vector<string> tokenParameters = split(tokenDesc, ',');
//lets try finding a token by card name. //lets try finding a token by card name.
if (splitToken[1].size() && (tokenParameters.size() ==1||tokenParameters.size() ==2)) if (splitToken[1].size() && (tokenParameters.size() ==1||tokenParameters.size() ==2))
@@ -3800,6 +3801,7 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
vector<string> splitRampage = parseBetween(s, "rampage(", ")"); vector<string> splitRampage = parseBetween(s, "rampage(", ")");
if (splitRampage.size()) if (splitRampage.size())
{ {
replace(splitRampage[1].begin(), splitRampage[1].end(), '^', ','); // To allow the usage of ^ instead of , char (e.g. using rampage keyword inside transforms)
vector<string> rampageParameters = split(splitRampage[1], ','); vector<string> rampageParameters = split(splitRampage[1], ',');
int power, toughness; int power, toughness;
if (!parsePowerToughness(rampageParameters[0], &power, &toughness)) if (!parsePowerToughness(rampageParameters[0], &power, &toughness))
@@ -3885,6 +3887,7 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
if (splitPhaseAlter.size()) if (splitPhaseAlter.size())
{ {
string power, toughness; string power, toughness;
replace(splitPhaseAlter[1].begin(), splitPhaseAlter[1].end(), '^', ','); // To allow the usage of ^ instead of , char (e.g. using phasealter keyword inside transforms)
vector<string>splitPhaseAlter2 = split(splitPhaseAlter[1],','); vector<string>splitPhaseAlter2 = split(splitPhaseAlter[1],',');
if(splitPhaseAlter2.size() < 3) if(splitPhaseAlter2.size() < 3)
return NULL; return NULL;
@@ -4025,6 +4028,7 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
vector<string> splitBecomes = parseBetween(s, "becomes(", ")"); vector<string> splitBecomes = parseBetween(s, "becomes(", ")");
if (splitBecomes.size()) if (splitBecomes.size())
{ {
replace(splitBecomes[1].begin(), splitBecomes[1].end(), '^', ','); // To allow the usage of ^ instead of , char (e.g. using becomes keyword inside transforms)
vector<string> becomesParameters = split(splitBecomes[1], ','); vector<string> becomesParameters = split(splitBecomes[1], ',');
string stypes = becomesParameters[0]; string stypes = becomesParameters[0];
string newPower = ""; string newPower = "";
@@ -4253,6 +4257,7 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
{ {
/*vector<string>FlipStats = split(splitFlipStat[1],'%');*/ /*vector<string>FlipStats = split(splitFlipStat[1],'%');*/
flipStats = splitFlipStat[1]; flipStats = splitFlipStat[1];
replace(flipStats.begin(), flipStats.end(), '^', ','); // To allow the usage of ^ instead of , char (e.g. using flip keyword inside transforms)
} }
vector<string> splitType = parseBetween(s, "forcetype(", ")", true); // Added to flip instants and sorceries as permanents (es. Zendikar Rising Modal Double Faced cards). vector<string> splitType = parseBetween(s, "forcetype(", ")", true); // Added to flip instants and sorceries as permanents (es. Zendikar Rising Modal Double Faced cards).
string forcetype = ""; string forcetype = "";
+1
View File
@@ -391,6 +391,7 @@ TargetChooser * TargetChooserFactory::createTargetChooser(string s, MTGCardInsta
} }
//Advanced cards caracteristics ? //Advanced cards caracteristics ?
replace(typeName.begin(), typeName.end(), '^', ','); // To allow the usage of ^ instead of , char (e.g. target card with ',' char in name)
found = typeName.find("["); found = typeName.find("[");
if (found != string::npos) if (found != string::npos)
{ {