diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/LTC.txt b/projects/mtg/bin/Res/missing_cards_by_sets/LTC.txt index 00f79dd79..6a031a2eb 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/LTC.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/LTC.txt @@ -1,4 +1,32 @@ [card] +name=Elrond of the White Council +text=Secret council - When Elrond of the White Council enters the battlefield, each player secretly votes for fellowship or aid, then those votes are revealed. For each fellowship vote, the voter chooses a creature they control. You gain control of each creature chosen this way, and they gain "This creature can't attack its owner." Then for each aid vote, put a +1/+1 counter on each creature you control. +mana={3}{G}{U} +type=Legendary Creature +subtype=Elf Noble +power=3 +toughness=3 +[/card] +[card] +name=Cirdan the Shipwright +abilities=vigilance +text=Vigilance -- Secret council - Whenever Cirdan the Shipwright enters the battlefield or attacks, each player secretly votes for a player, then those votes are revealed. Each player draws a card for each vote they received. Each player who received no votes may put a permanent card from their hand onto the battlefield. +mana={3}{G}{U} +type=Legendary Creature +subtype=Elf Noble +power=3 +toughness=4 +[/card] +[card] +name=Erestor of the Council +text=Whenever players finish voting, each opponent who voted for a choice you voted for creates a Treasure token. You scry X, where X is the number of opponents who voted for a choice you didn't vote for. Draw a card. +mana={1}{G}{U} +type=Legendary Creature +subtype=Elf Noble +power=2 +toughness=4 +[/card] +[card] name=Harsh Mentor text=Whenever an opponent activates an ability of an artifact, creature, or land on the battlefield, if it isn't a mana ability, Harsh Mentor deals 2 damage to that player. mana={1}{R} @@ -8,18 +36,73 @@ power=2 toughness=2 [/card] [card] +name=Travel Through Caradhras +text=Council's dilemma - Starting with you, each player votes for Redhorn Pass or Mines of Moria. For each Redhorn Pass vote, search your library for a basic land card and put it onto the battlefield tapped. If you search your library this way, shuffle. For each Mines of Moria vote, return a card from your graveyard to your hand. -- Exile Travel Through Caradhras. +mana={5}{G} +type=Sorcery +[/card] +[card] +name=Trap the Trespassers +text=Secret council - Each player secretly votes for a creature you don't control, then those votes are revealed. For each creature with one or more votes, put that many stun counters on it, then tap it. (If a permanent with a stun counter would become untapped, remove one from it instead.) +mana={2}{U} +type=Instant +[/card] +[card] +name=Galadriel, Elven-Queen +text=Will of the council - At the beginning of combat on your turn, if another Elf entered the battlefield under your control this turn, starting with you, each player votes for dominion or guidance. If dominion gets more votes, the Ring tempts you, then you put a +1/+1 counter on your Ring-bearer. If guidance gets more votes or the vote is tied, draw a card. +mana={2}{G}{U} +type=Legendary Creature +subtype=Elf Noble +power=4 +toughness=5 +[/card] +[card] name=Rings of Brighthearth text=Whenever you activate an ability, if it isn't a mana ability, you may pay {2}. If you do, copy that ability. You may choose new targets for the copy. mana={3} type=Artifact [/card] [card] +name=Sail into the West +text=Will of the council - Starting with you, each player votes for return or embark. If return gets more votes, each player returns up to two cards from their graveyard to their hand, then you exile Sail into the West. If embark gets more votes or the vote is tied, each player may discard their hand and draw seven cards. +mana={2}{G}{U} +type=Instant +[/card] +[card] name=The Ozolith text=Whenever a creature you control leaves the battlefield, if it had counters on it, put those counters on The Ozolith. -- At the beginning of combat on your turn, if The Ozolith has counters on it, you may move all counters from The Ozolith onto target creature. mana={1} type=Legendary Artifact [/card] [card] +name=Erestor of the Council +text=Whenever players finish voting, each opponent who voted for a choice you voted for creates a Treasure token. You scry X, where X is the number of opponents who voted for a choice you didn't vote for. Draw a card. +mana={1}{G}{U} +type=Legendary Creature +subtype=Elf Noble +power=2 +toughness=4 +[/card] +[card] +name=Elrond of the White Council +text=Secret council - When Elrond of the White Council enters the battlefield, each player secretly votes for fellowship or aid, then those votes are revealed. For each fellowship vote, the voter chooses a creature they control. You gain control of each creature chosen this way, and they gain "This creature can't attack its owner." Then for each aid vote, put a +1/+1 counter on each creature you control. +mana={3}{G}{U} +type=Legendary Creature +subtype=Elf Noble +power=3 +toughness=3 +[/card] +[card] +name=Cirdan the Shipwright +abilities=vigilance +text=Vigilance -- Secret council - Whenever Cirdan the Shipwright enters the battlefield or attacks, each player secretly votes for a player, then those votes are revealed. Each player draws a card for each vote they received. Each player who received no votes may put a permanent card from their hand onto the battlefield. +mana={3}{G}{U} +type=Legendary Creature +subtype=Elf Noble +power=3 +toughness=4 +[/card] +[card] name=Selfless Squire abilities=flash text=Flash -- When Selfless Squire enters the battlefield, prevent all damage that would be dealt to you this turn. -- Whenever damage that would be dealt to you is prevented, put that many +1/+1 counters on Selfless Squire. @@ -30,8 +113,44 @@ power=1 toughness=1 [/card] [card] +name=Travel Through Caradhras +text=Council's dilemma - Starting with you, each player votes for Redhorn Pass or Mines of Moria. For each Redhorn Pass vote, search your library for a basic land card and put it onto the battlefield tapped. If you search your library this way, shuffle. For each Mines of Moria vote, return a card from your graveyard to your hand. -- Exile Travel Through Caradhras. +mana={5}{G} +type=Sorcery +[/card] +[card] +name=Galadriel, Elven-Queen +text=Will of the council - At the beginning of combat on your turn, if another Elf entered the battlefield under your control this turn, starting with you, each player votes for dominion or guidance. If dominion gets more votes, the Ring tempts you, then you put a +1/+1 counter on your Ring-bearer. If guidance gets more votes or the vote is tied, draw a card. +mana={2}{G}{U} +type=Legendary Creature +subtype=Elf Noble +power=4 +toughness=5 +[/card] +[card] +name=Trap the Trespassers +text=Secret council - Each player secretly votes for a creature you don't control, then those votes are revealed. For each creature with one or more votes, put that many stun counters on it, then tap it. (If a permanent with a stun counter would become untapped, remove one from it instead.) +mana={2}{U} +type=Instant +[/card] +[card] +name=Sail into the West +text=Will of the council - Starting with you, each player votes for return or embark. If return gets more votes, each player returns up to two cards from their graveyard to their hand, then you exile Sail into the West. If embark gets more votes or the vote is tied, each player may discard their hand and draw seven cards. +mana={2}{G}{U} +type=Instant +[/card] +[card] name=Plea for Power text=Will of the council - Starting with you, each player votes for time or knowledge. If time gets more votes, take an extra turn after this one. If knowledge gets more votes or the vote is tied, draw three cards. mana={3}{U} type=Sorcery [/card] +[card] +name=Galadriel, Elven-Queen +text=Will of the council - At the beginning of combat on your turn, if another Elf entered the battlefield under your control this turn, starting with you, each player votes for dominion or guidance. If dominion gets more votes, the Ring tempts you, then you put a +1/+1 counter on your Ring-bearer. If guidance gets more votes or the vote is tied, draw a card. +mana={2}{G}{U} +type=Legendary Creature +subtype=Elf Noble +power=4 +toughness=5 +[/card] diff --git a/projects/mtg/bin/Res/sets/primitives/_macros.txt b/projects/mtg/bin/Res/sets/primitives/_macros.txt index 86146d894..fbb539d77 100644 --- a/projects/mtg/bin/Res/sets/primitives/_macros.txt +++ b/projects/mtg/bin/Res/sets/primitives/_macros.txt @@ -22,7 +22,7 @@ #AUTO_DEFINE _PARTNER_ may name(Put partner in hand) moveto(myhand) target(*[partname]|mylibrary) # Goad -#AUTO_DEFINE _GOAD_ transforms((,newability[counter(0/0.1.Goaded)],newability[this(counter{0/0.1.Goaded}>0) mustattack],newability[phaseaction[endofturn next once sourceinplay] removeallcounters(0/0.-1.Goaded)])) forever +#AUTO_DEFINE _GOAD_ transforms((,newability[counter(0/0.1.Goaded) notrg],newability[this(counter{0/0.1.Goaded}>0) mustattack],newability[phaseaction[endofturn next once sourceinplay] counter(0/0.-hascntgoaded.Goaded) notrg])) forever # Rebound #AUTO_DEFINE _REBOUND_ if rebound then all(this|mystack) moveto(exile) and!( transforms((,newability[@rebounded:may name(Cast rebounded card) activate castcard(normal)])) forever )! diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index f63747557..18e9a5a45 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -1,7 +1,7 @@ grade=borderline #Bordeline Primitives Pack for Wagic the Homebrew. #Please keep these card alphabetized, and try to have the "name=" line at the top of each card -#I sorted this programmatically - Thanks to Vitty85 06-07-2023 +#I sorted this programmatically - Thanks to Vitty85 07-07-2023 [card] name=+2 Mace auto={3}:equip @@ -7599,6 +7599,14 @@ toughness=4 color=green [/card] [card] +name=Beast Rad +color=green +type=Creature +subtype=Beast +power=3 +toughness=3 +[/card] +[card] name=Beast Saw type=Creature subtype=Beast @@ -8259,6 +8267,18 @@ type=Legendary Artifact subtype=Equipment [/card] [card] +name=Bilbo, Birthday Celebrant +abilities=lifefaker +auto=@lifeof(player) from(*[-lifefaker]|*):life:1 controller +auto=this(variable{lifetotal}>=111) {2}{W}{B}{G}{T}{E}:name(Search library) name(Search library) target(creature|mylibrary) moveto(myBattlefield) and!( shuffle )! +text=If you would gain life, you gain that much life plus 1 instead. -- {2}{W}{B}{G}, {T}, Exile Bilbo, Birthday Celebrant: Search your library for any number of creature cards, put them onto the battlefield, then shuffle. Activate only if you have 111 or more life. +mana={W}{B}{G} +type=Legendary Creature +subtype=Halfling Rogue +power=2 +toughness=3 +[/card] +[card] name=Bilbo, Retired Burglar auto=@combatdamaged(player) from(this):name(Create treasure) token(Treasure) auto=name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller @@ -11172,6 +11192,18 @@ mana={1}{U} type=Instant [/card] [card] +name=Boromir, Gondor's Hope +aicode=activate transforms((,newability[if type(human[zpos<=6]|mylibrary)~morethan~0 then target(human[zpos<=6]|mylibrary) moveto(myhand) and!( all(*[zpos<=6]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!],newability[if type(human[zpos<=6]|mylibrary)~equalto~0 then if type(artifact[zpos<=6]|mylibrary)~morethan~0 then target(artifact[zpos<=6]|mylibrary) moveto(myhand) and!( all(*[zpos<=6]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!],newability[if type(human[zpos<=6]|mylibrary)~equalto~0 then if type(artifact[zpos<=6]|mylibrary)~equalto~0 then all(*[zpos<=6]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot +auto=name(Look top 6 cards) reveal:6 optionone name(Get human or artifact) target(*[human;artifact]|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto=_ATTACKING_ name(Look top 6 cards) reveal:6 optionone name(Get human or artifact) target(*[human;artifact]|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +text=Whenever Boromir, Gondor's Hope enters the battlefield or attacks, look at the top six cards of your library. You may reveal a Human or 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}{U} +type=Legendary Creature +subtype=Human Warrior +power=3 +toughness=4 +[/card] +[card] name=Boromir, Warden of the Tower abilities=vigilance auto=@movedTo(*|opponentstack):name(Counter if no mana spent) all(trigger[to]) name(Counter if no mana spent) transforms((,newability[if compare(totmanaspent)~equalto~0 then name(Counter spell) name(Counter spell) ability$!name(Counter spell) name(Counter spell) target(*|opponentstack) fizzle!$ opponent])) oneshot @@ -13211,8 +13243,7 @@ toughness=2 [/card] [card] name=Call for Aid -#MISSING: You can't sacrifice those creatures this turn. -auto=all(creature|opponentbattlefield) transforms((,newability[moveTo(opponentbattlefield)],newability[phaseaction[endofturn sourceinplay] moveTo(ownerbattlefield)],newability[untap],newability[haste])) ueot +auto=all(creature|opponentbattlefield) transforms((,newability[moveTo(opponentbattlefield)],newability[phaseaction[endofturn sourceinplay] moveTo(ownerbattlefield)],newability[untap],newability[haste],newability[unsacrificable])) ueot auto=emblem transforms((,newability[lord(creature|myBattlefield) cantattack],newability[lord(creature|myBattlefield) cantpwattack])) ueot text=Gain control of all creatures target opponent controls until end of turn. Untap those creatures. They gain haste until end of turn. You can't attack that player this turn. You can't sacrifice those creatures this turn. mana={4}{R} @@ -15095,6 +15126,38 @@ power=1 toughness=4 [/card] [card] +name=Champions of Minas Tirith +auto=_MONARCH_CONTROLLER_ +auto=@each opponent combatbegins restriction{compare(pmonarch)~morethan~0}:name(Opponent creatures can't attack) name(Opponent creatures can't attack) all(creature|opponentbattlefield) name(Opponent creatures can't attack) transforms((,newability[cantattack],newability[cantpwattack])) ueot +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~0}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 0) all(creature|myBattlefield) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~1}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 1) pay({1}) name(Pay 1) all(creature|myBattlefield) name(Pay 1) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~2}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 2) pay({2}) name(Pay 2) all(creature|myBattlefield) name(Pay 2) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~3}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 3) pay({3}) name(Pay 3) all(creature|myBattlefield) name(Pay 3) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~4}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 4) pay({4}) name(Pay 4) all(creature|myBattlefield) name(Pay 4) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~5}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 5) pay({5}) name(Pay 5) all(creature|myBattlefield) name(Pay 5) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~6}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 6) pay({6}) name(Pay 6) all(creature|myBattlefield) name(Pay 6) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~7}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 7) pay({7}) name(Pay 7) all(creature|myBattlefield) name(Pay 7) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~8}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 8) pay({8}) name(Pay 8) all(creature|myBattlefield) name(Pay 8) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~9}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 9) pay({9}) name(Pay 9) all(creature|myBattlefield) name(Pay 9) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~10}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 10) pay({10}) name(Pay 10) all(creature|myBattlefield) name(Pay 10) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~11}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 11) pay({11}) name(Pay 11) all(creature|myBattlefield) name(Pay 11) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~12}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 12) pay({12}) name(Pay 12) all(creature|myBattlefield) name(Pay 12) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~13}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 13) pay({13}) name(Pay 13) all(creature|myBattlefield) name(Pay 13) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~14}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 14) pay({14}) name(Pay 14) all(creature|myBattlefield) name(Pay 14) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~15}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 15) pay({15}) name(Pay 15) all(creature|myBattlefield) name(Pay 15) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~16}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 16) pay({16}) name(Pay 16) all(creature|myBattlefield) name(Pay 16) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~17}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 17) pay({17}) name(Pay 17) all(creature|myBattlefield) name(Pay 17) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~18}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 18) pay({18}) name(Pay 18) all(creature|myBattlefield) name(Pay 18) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~equalto~19}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 19) pay({19}) name(Pay 19) all(creature|myBattlefield) name(Pay 19) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +auto=@each opponent attackers restriction{compare(pmonarch)~morethan~0,type(creature|opponentbattlefield)~morethan~0,type(*|opponenthand)~morethan~19}:name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) name(Opponent can pay x) ability$!may name(Pay 20) pay({20}) name(Pay 20) all(creature|myBattlefield) name(Pay 20) transforms((,newability[-cantattack],newability[-cantpwattack])) ueot!$ opponent +text=When Champions of Minas Tirith enters the battlefield, you become the monarch. -- At the beginning of combat on each opponent's turn, if you're the monarch, that opponent may pay {X}, where X is the number of cards in their hand. If they don't, they can't attack you this combat. +mana={5}{W} +type=Creature +subtype=Human Soldier +power=4 +toughness=6 +[/card] +[card] name=Chance Encounter auto=@coinflipped(*|battlefield) result(won) from(controller):name(Put chance counter) counter(0/0,1,Chance) auto=@each my upkeep restriction{compare(hascntchance)~morethan~9}:name(Win the game) wingame @@ -19795,6 +19858,17 @@ mana={2}{B} type=Artifact [/card] [card] +name=Crown of Gondor +auto=@movedto(creature[legendary]|mybattlefield) restriction{compare(pmonarch)~equalto~0,compare(omonarch)~equalto~0}:name(Becomes monarch) ability$!_MONARCH_CONTROLLER_!$ controller +auto=this(variable{pmonarch}>0) {1}:name(Equip as monarch) name(Equip as monarch) name(Equip as monarch) rehook target(creature|mybattlefield) +auto={4}:equip +auto=teach(creature) type:creature:mybattlefield/type:creature:mybattlefield nonstatic +text=Equipped creature gets +1/+1 for each creature you control. -- When a legendary creature enters the battlefield under your control, if there is no monarch, you become the monarch. -- Equip {4}. This ability costs {3} less to activate if you're the monarch. +mana={3} +type=Legendary Artifact +subtype=Equipment +[/card] +[card] name=Crown of Skemfar target=creature auto=foreach(elf|mybattlefield) 1/1 @@ -27762,6 +27836,14 @@ power=3 toughness=5 [/card] [card] +name=Elf Warrior +color=green +type=Creature +subtype=Elf Warrior +power=1 +toughness=1 +[/card] +[card] name=Elfhame Druid auto={T}:add{G} auto=this(variable{type:*[haskicker]:myrestrictedcastingzone}>0) {T}:add{G}{G} @@ -29089,6 +29171,17 @@ power=2 toughness=4 [/card] [card] +name=Eowyn, Shieldmaiden +abilities=first strike +auto=@each my combatbegins restriction{type(other human[fresh]|myBattlefield)~morethan~0}:name(Create knights) token(Human Knight)*2 && if type(human|myBattlefield)~morethan~5 then name(Draw a card) name(Draw a card) draw:1 controller +text=First strike -- At the beginning of combat on your turn, if another Human entered the battlefield under your control this turn, create two 2/2 red Human Knight creature tokens with trample and haste. Then if you control six or more Humans, draw a card. +mana={2}{U}{R}{W} +type=Legendary Creature +subtype=Human Knight +power=5 +toughness=4 +[/card] +[card] name=Ephara's Dispersal other={U} name(Target attacking creature) restriction=type(creature|battlefield)~morethan~0 @@ -31865,6 +31958,17 @@ power=3 toughness=3 [/card] [card] +name=Faramir, Steward of Gondor +auto=@movedTo(creature[legendary&manacost>=4]|mybattlefield):name(You become the monarch) ability$!_MONARCH_CONTROLLER_!$ controller +auto=@each my endofturn restriction{compare(pmonarch)~morethan~0}:name(Create humans) name(Create humans) token(Human Soldier,Creature Human Soldier,1/1,white)*2 +text=Whenever a legendary creature with mana value 4 or greater enters the battlefield under your control, you become the monarch. -- At the beginning of your end step, if you're the monarch, create two 1/1 white Human Soldier creature tokens. +mana={1}{W}{U} +type=Legendary Creature +subtype=Human Noble +power=2 +toughness=2 +[/card] +[card] name=Farewell auto=ability$!name(Exile all graveyards) may name(Exile all graveyards) moveto(exile) all(*|graveyard)!$ controller auto=ability$!name(Exile all enchantments) may name(Exile all enchantments) moveto(exile) all(enchantment)!$ controller @@ -32117,6 +32221,19 @@ power=1 toughness=1 [/card] [card] +name=Fealty to the Realm +target=creature +auto=_MONARCH_CONTROLLER_ +auto=teach(creature) transforms((,newability[mustattack],newability[@becomesmonarchfoeof(player):name(Monarch controls enchanted creature) moveto(opponentbattlefield)])) +auto=teach(creature|opponentbattlefield) moveto(mybattlefield) +auto=teach(creature|opponentbattlefield) cantattack +auto=teach(creature|opponentbattlefield) cantpwattack +text=Enchant creature -- When Fealty to the Realm enters the battlefield, you become the monarch. -- The monarch controls enchanted creature. -- Enchanted creature attacks each combat if able and can't attack you. +mana={4}{U} +type=Enchantment +subtype=Aura +[/card] +[card] name=Fear of Death target=creature auto=deplete:2 controller @@ -36213,6 +36330,23 @@ power=2 toughness=4 [/card] [card] +name=Gandalf, Westward Voyager +auto=@movedTo(creature[manacost>=5]|mystack):name(Reveal top card) all(*[zpos=1]|opponentlibrary) name(Reveal top card) moveto(myhand) and!( transforms((,newability[choice name(Don't cast copy) moveto(opponentlibrary) and!( draw:1 controller)!],newability[if cantargetcard(*[creature]|*) then choice name(Cast copy) name(Cast copy) moveto(opponentlibrary) and!( activate castcard(copied) and!( draw:1 opponent )! )!])) oneshot )! +auto=@movedTo(planeswalker[manacost>=5]|mystack):name(Reveal top card) all(*[zpos=1]|opponentlibrary) name(Reveal top card) moveto(myhand) and!( transforms((,newability[choice name(Don't cast copy) moveto(opponentlibrary) and!( draw:1 controller)!],newability[if cantargetcard(*[planeswalker]|*) then choice name(Cast copy) name(Cast copy) moveto(opponentlibrary) and!( activate castcard(copied) and!( draw:1 opponent )! )!])) oneshot )! +auto=@movedTo(tribal[manacost>=5]|mystack):name(Reveal top card) all(*[zpos=1]|opponentlibrary) name(Reveal top card) moveto(myhand) and!( transforms((,newability[choice name(Don't cast copy) moveto(opponentlibrary) and!( draw:1 controller)!],newability[if cantargetcard(*[tribal]|*) then choice name(Cast copy) name(Cast copy) moveto(opponentlibrary) and!( activate castcard(copied) and!( draw:1 opponent )! )!])) oneshot )! +auto=@movedTo(instant[manacost>=5]|mystack):name(Reveal top card) all(*[zpos=1]|opponentlibrary) name(Reveal top card) moveto(myhand) and!( transforms((,newability[choice name(Don't cast copy) moveto(opponentlibrary) and!( draw:1 controller)!],newability[if cantargetcard(*[instant]|*) then choice name(Cast copy) name(Cast copy) moveto(opponentlibrary) and!( activate castcard(copied) and!( draw:1 opponent )! )!])) oneshot )! +auto=@movedTo(sorcery[manacost>=5]|mystack):name(Reveal top card) all(*[zpos=1]|opponentlibrary) name(Reveal top card) moveto(myhand) and!( transforms((,newability[choice name(Don't cast copy) moveto(opponentlibrary) and!( draw:1 controller)!],newability[if cantargetcard(*[sorcery]|*) then choice name(Cast copy) name(Cast copy) moveto(opponentlibrary) and!( activate castcard(copied) and!( draw:1 opponent )! )!])) oneshot )! +auto=@movedTo(enchantment[manacost>=5]|mystack):name(Reveal top card) all(*[zpos=1]|opponentlibrary) name(Reveal top card) moveto(myhand) and!( transforms((,newability[choice name(Don't cast copy) moveto(opponentlibrary) and!( draw:1 controller)!],newability[if cantargetcard(*[enchantment]|*) then choice name(Cast copy) name(Cast copy) moveto(opponentlibrary) and!( activate castcard(copied) and!( draw:1 opponent )! )!])) oneshot )! +auto=@movedTo(artifact[manacost>=5]|mystack):name(Reveal top card) all(*[zpos=1]|opponentlibrary) name(Reveal top card) moveto(myhand) and!( transforms((,newability[choice name(Don't cast copy) moveto(opponentlibrary) and!( draw:1 controller)!],newability[if cantargetcard(*[artifact]|*) then choice name(Cast copy) name(Cast copy) moveto(opponentlibrary) and!( activate castcard(copied) and!( draw:1 opponent )! )!])) oneshot )! +auto=@movedTo(battle[manacost>=5]|mystack):name(Reveal top card) all(*[zpos=1]|opponentlibrary) name(Reveal top card) moveto(myhand) and!( transforms((,newability[choice name(Don't cast copy) moveto(opponentlibrary) and!( draw:1 controller)!],newability[if cantargetcard(*[battle]|*) then choice name(Cast copy) name(Cast copy) moveto(opponentlibrary) and!( activate castcard(copied) and!( draw:1 opponent )! )!])) oneshot )! +text=Whenever you cast a spell with mana value 5 or greater, each opponent reveals the top card of their library. If any of those cards shares a card type with that spell, copy that spell, you may choose new targets for the copy, and each opponent draws a card. Otherwise, you draw a card. (A copy of a permanent spell becomes a token.) +mana={3}{G}{U} +type=Legendary Creature +subtype=Avatar Wizard +power=5 +toughness=5 +[/card] +[card] name=Gandalf, White Rider abilities=vigilance auto=@movedTo(*|mystack):name(Scry 1) _SCRY1_ @@ -37680,6 +37814,16 @@ power=1 toughness=3 [/card] [card] +name=Gilraen, Dunedain Protector +auto={2}{T}:name(Exile other creature) target(other creature|myBattlefield) moveto(myexile) and!( transforms((,newability[choice name(Return to battlefield) moveto(ownerbattlefield)],newability[choice name(Don't return now) transforms((,newability[@each endofturn:name(Return on battlefield) moveto(ownerbattlefield) and!( transforms((,newability[counter(0/0.1.Lifelink)],newability[this(counter{0/0.1.Lifelink}>0) lifelink],newability[counter(0/0.1.Vigilance)],newability[this(counter{0/0.1.Vigilance}>0) vigilance])) forever )! ])) forever])) forever )! +text={2}, {T}: Exile another target creature you control. You may return that card to the battlefield under its owner's control. If you don't, at the beginning of the next end step, return that card to the battlefield under its owner's control with a vigilance counter and a lifelink counter on it. +mana={2}{W} +type=Legendary Creature +subtype=Human Noble +power=2 +toughness=3 +[/card] +[card] name=Gilt-Blade Prowler auto=@discarded(*|myHand) turnlimited:all(this) transforms((,newability[{1}{T}{L:1}:draw:1 controller])) ueot text={1}, {T}, Pay 1 life: Draw a card. Activate only if you've discarded a card this turn. @@ -40962,6 +41106,19 @@ power=3 toughness=2 [/card] [card] +name=Grey Host Reinforcements +abilities=flying +auto=_WARD_(3) +auto=choice name(Exile opponent graveyard) all(*|opponentgraveyard) moveto(opponentexile) and!( if cantargetcard(*[creature]|*) then name(Put 1/1 counter) name(Put 1/1 counter) all(this) counter(1/1) )! +auto=choice name(Exile your graveyard) all(*|mygraveyard) moveto(myexile) and!( if cantargetcard(*[creature]|*) then name(Put 1/1 counter) name(Put 1/1 counter) all(this) counter(1/1) )! +text=Flying, ward {3} -- When Grey Host Reinforcements enters the battlefield, exile target player's graveyard. Put a number of +1/+1 counters on Grey Host Reinforcements equal to the number of creature cards exiled this way. +mana={3}{W} +type=Creature +subtype=Spirit Soldier +power=1 +toughness=1 +[/card] +[card] name=Grief abilities=menace other={E(*[black]|myhand)} name(Evoke) @@ -41113,6 +41270,18 @@ power=1 toughness=4 [/card] [card] +name=Grima, Saruman's Footman +abilities=unblockable +auto=@combatdamagefoeof(player) from(this):name(Exile cards) name(Exile cards) transforms((,newability[all(*[zpos=oppofindfirsttypenonpermanent]|opponentlibrary) moveto(myexile) and!( transforms((tobegri,newability[all(*[zpos<=oppofindfirsttypenonpermanent]|opponentlibrary) moveto(opponentexile) and!( bottomoflibrary )!],newability[name(Cast exiled spell) target(tobegri|myexile) transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) moveto(opponentexile) and!( bottomoflibrary )!])) oneshot])) oneshot )!])) oneshot +auto=@combatdamageof(player) from(this):name(Exile cards) name(Exile cards) transforms((,newability[all(*[zpos=findfirsttypenonpermanent]|mylibrary) moveto(myexile) and!( transforms((tobegri,newability[all(*[zpos<=findfirsttypenonpermanent]|mylibrary) moveto(myexile) and!( bottomoflibrary )!],newability[name(Cast exiled spell) target(tobegri|myexile) transforms((,newability[choice name(Cast card) activate castcard(normal)],newability[choice name(Don't cast card) bottomoflibrary])) oneshot])) oneshot )!])) oneshot +text=Grima, Saruman's Footman can't be blocked. -- Whenever Grima deals combat damage to a player, that player exiles cards from the top of their library until they exile an instant or sorcery card. You may cast that card without paying its mana cost. Then that player puts the exiled cards that weren't cast this way on the bottom of their library in a random order. +mana={2}{U}{B} +type=Legendary Creature +subtype=Human Advisor +power=1 +toughness=4 +[/card] +[card] name=Grimclimb Pathway auto={T}:add{B} text={T}: Add {B}. // Brightclimb Pathway @@ -41966,6 +42135,18 @@ power=4 toughness=4 [/card] [card] +name=Gwaihir, Greatest of the Eagles +abilities=flying +auto=_ATTACKING_name(Creature gains flying) target(creature[attacking]|battlefield) transforms((,newability[flying])) ueot +auto=@each endofturn restriction{compare(lifegain)~morethan~2}:name(Create bird) name(Create bird) token(Bird,Creature Bird,3/3,white,flying) and!( transforms((,newability[_ATTACKING_name(Creature gains flying) target(creature[attacking]|battlefield) transforms((,newability[flying])) ueot])) forever )! +text=Flying -- Whenever Gwaihir attacks, target attacking creature gains flying until end of turn. -- At the beginning of each end step, if you gained 3 or more life this turn, create a 3/3 white Bird creature token with flying and "Whenever this creature attacks, target attacking creature gains flying until end of turn." +mana={4}{W} +type=Legendary Creature +subtype=Bird Noble +power=5 +toughness=5 +[/card] +[card] name=Gwenna, Eyes of Gaea auto=this(variable{type:creature:myrestrictedcastingzone}>0) {T}:name(Add 2 mana) thisforeach(variable{2}) ability$!name(Choose one) choice name(Add white) add{W} _ choice name(Add black) add{B} _ choice name(Add green) add{G} _ choice name(Add blue) add{U} _ choice name(Add red) add{R}!$ controller auto=this(variable{type:creature:mybattlefield}>1) {T}:name(Add 2 mana) thisforeach(variable{2}) ability$!name(Choose one) choice name(Add white) add{W} _ choice name(Add black) add{B} _ choice name(Add green) add{G} _ choice name(Add blue) add{U} _ choice name(Add red) add{R}!$ controller @@ -44705,6 +44886,15 @@ mana={1}{U} type=Instant [/card] [card] +name=Hithlain Rope +abilities=unsacrificable +auto={1}{T}:name(Search Land) moveto(opponentBattlefield) and!( ability$!name(Search Land) target(land[basic]|mylibrary) moveto(mybattlefield) and!( transforms((,newability[tap(noevent)],newability[shuffle])) oneshot )!!$ opponent )! +auto={2}{T}:name(Draw a card) moveto(opponentBattlefield) and!( ability$!draw:1 controller!$ opponent )! +text=Hithlain Rope can't be sacrificed. -- {1}, {T}: Search your library for a basic land card, put it onto the battlefield tapped, then shuffle. The player to your right gains control of Hithlain Rope. -- {2}, {T}: Draw a card. The player to your right gains control of Hithlain Rope. +mana={2} +type=Artifact +[/card] +[card] name=Hive Mind auto=@movedto(*[instant;sorcery]|mystack):ability$!name(Copy spell) name(Copy spell) all(*[instant;sorcery]|opponentstack) activate castcard(copied noevent)!$ opponent auto=@movedto(*[instant;sorcery]|opponentstack):ability$!name(Copy spell) name(Copy spell) all(*[instant;sorcery]|opponentstack) activate castcard(copied noevent)!$ controller @@ -45704,6 +45894,16 @@ mana={2}{G}{G} type=Enchantment [/card] [card] +name=Human Knight +abilities=trample,haste +text=Trample -- Haste +color=red +type=Creature +subtype=Human Knight +power=2 +toughness=2 +[/card] +[card] name=Human Monk auto={T}:name(Add green) add{G} text={T}: Add {G}. @@ -45714,6 +45914,14 @@ power=1 toughness=1 [/card] [card] +name=Human Soldier +color=white +type=Creature +subtype=Human Soldier +power=1 +toughness=1 +[/card] +[card] name=Human Soldier Bas type=Creature subtype=Human Soldier @@ -47257,6 +47465,20 @@ mana={G}{G} type=Enchantment [/card] [card] +name=In the Darkness Bind Them +auto=counter(0/0,1,Lore) +auto=@each my firstmain:counter(0/0,1,Lore) +auto=name(Create wraith) token(Wraith,Creature Wraith,3/3,black,menace) and!( ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller )! +auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~lessthan~4}:name(Create wraith) name(Create wraith) token(Wraith,Creature Wraith,3/3,black,menace) and!( ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller )! +auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~4}:name(Sacrifice) name(Sacrifice) sacrifice +auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~4}:name(The ring tempts you) name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~4}:may name(Gain control of creature) name(Gain control of creature) target(creature|opponentbattlefield) moveTo(mybattlefield) and!( transforms((,newability[phaseaction[endofturn sourceinplay] moveTo(ownerbattlefield)],newability[untap],newability[haste])) ueot )! +text=(As this Saga enters and after your draw step, add a lore counter. Sacrifice after IV.) -- I, II, III- Create a 3/3 black Wraith creature token with menace. The Ring tempts you. -- IV- For each opponent, gain control of up to one target creature that player controls until end of turn. Untap those creatures. They gain haste until end of turn. The Ring tempts you. +mana={2}{U}{B}{R} +type=Enchantment +subtype=Saga +[/card] +[card] name=In the Trenches auto=lord(creature|myBattlefield) +1/+1 auto=this(cantargetcard(*[-effectdone]) {5}{W}:name(Exile nonland permanent) name(Exile nonland permanent) becomes(effectdone) forever && transforms((,newability[name(Exile nonland permanent) (blink)forsrc target(*[-land]|opponentbattlefield)])) forever asSorcery @@ -55649,6 +55871,15 @@ power=4 toughness=4 [/card] [card] +name=Lidless Gaze +auto=all(*[zpos=1]|opponentlibrary) moveto(myexile) and!( transforms((,newability[anytypeofmana uynt],newability[canplayfromexile uynt],newability[@each my untap:name(Put back) moveto(opponentexile)])) forever )! +auto=all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[anytypeofmana uynt],newability[canplayfromexile uynt],newability[@each my untap:name(Put back) moveto(myreveal) and!( moveto(myexile) )!])) forever )! +flashback={2}{B}{R} +text=Exile the top card of each player's library. Until the end of your next turn, you may play those cards, and mana of any type can be spent to cast them. -- Flashback {2}{B}{R} (You may cast this card from your graveyard for its flashback cost. Then exile it.) +mana={2}{B}{R} +type=Sorcery +[/card] +[card] name=Lier, Disciple of the Drowned auto=lord(*|stack) nofizzle auto=lord(instant,sorcery|mygraveyard) tempflashback @@ -56943,6 +57174,18 @@ power=6 toughness=6 [/card] [card] +name=Lord of the Nazgul +abilities=flying +auto=lord(wraith|myBattlefield) protection from(*[ringbearer]) +auto=@movedTo(*[instant;sorcery]|mystack):name(Create wraith) token(Wraith,Creature Wraith,3/3,black,menace) and!( if type(wraith|myBattlefield)~morethan~8 then all(wraith|myBattlefield) transforms((,setpower=9,settoughness=9)) ueot )! +text=Flying -- Wraiths you control have protection from Ring-bearers. -- Whenever you cast an instant or sorcery spell, create a 3/3 black Wraith creature token with menace. Then if you control nine or more Wraiths, Wraiths you control have base power and toughness 9/9 until end of turn. +mana={3}{U}{B} +type=Legendary Creature +subtype=Wraith Noble +power=4 +toughness=3 +[/card] +[card] name=Lord of the Ulvenwald abilities=nightbound backside=Kessig Naturalist @@ -57147,6 +57390,16 @@ mana={W}{W} type=Instant [/card] [card] +name=Lothlorien Blade +auto=teach(creature) transforms((,newability[@combat(attacking) source(this):name(Damage creature) target(creature|opponentbattlefield) damage:power])) +auto=aslongas(elf|myBattlefield) {2}:name(Equip elf) name(Equip elf) name(Equip elf) rehook target(creature[elf]|mybattlefield) +auto={5}:equip +text=Whenever equipped creature attacks, it deals damage equal to its power to target creature defending player controls. -- Equip Elf {2} -- Equip {5} +mana={3} +type=Artifact +subtype=Equipment +[/card] +[card] name=Lothlorien Lookout auto=_ATTACKING_ name(Scry 1) _SCRY1_ text=Whenever Lothlorien Lookout attacks, scry 1. @@ -60299,6 +60552,19 @@ power=2 toughness=2 [/card] [card] +name=Merry, Warden of Isengard +abilities=partner +partner=Pippin, Warden of Isengard +auto=_PARTNER_ +auto=@movedto(artifact|mybattlefield) turnlimited:name(Create soldier) token(Soldier,Creature Soldier,1/1,white,lifelink) +text=Partner with Pippin, Warden of Isengard (When this creature enters the battlefield, target player may put Pippin into their hand from their library, then shuffle.) -- Whenever one or more artifacts enter the battlefield under your control, create a 1/1 white Soldier creature token with lifelink. This ability triggers only once each turn. +mana={1}{G}{W} +type=Legendary Creature +subtype=Halfling Advisor +power=1 +toughness=4 +[/card] +[card] name=Mesa Cavalier abilities=flying auto=life:2 @@ -61205,6 +61471,17 @@ power=1 toughness=1 [/card] [card] +name=Mirkwood Trapper +auto=@each opponent blockers restriction{type(creature[attacking]|opponentbattlefield)~morethan~0}:name(Attacking creature gains -2/0) name(Attacking creature gains -2/0) target(creature[attacking]|opponentbattlefield) -2/0 ueot +auto=@combatdamaged(*[planeswalker;battle]|mybattlefield) from(creature[attacking]|opponentbattlefield):name(Attacking creature gains 2/0) name(Attacking creature gains 2/0) ability$!name(Attacking creature gains 2/0) target(creature[attacking]|mybattlefield) 2/0 ueot!$ opponent +text=Whenever a player attacks you, target attacking creature gets -2/-0 until end of turn. -- Whenever a player attacks, if they aren't attacking you, that player chooses an attacking creature. It gets +2/+0 until end of turn. +mana={1}{G}{U} +type=Creature +subtype=Elf Scout +power=1 +toughness=4 +[/card] +[card] name=Mirran Banesplitter abilities=flash auto=name(Attach to creature) rehook target(creature|mybattlefield) @@ -62065,6 +62342,18 @@ power=0 toughness=0 [/card] [card] +name=Model of Unity +#MISSING: Voting +auto={T}:add{W} +auto={T}:add{U} +auto={T}:add{B} +auto={T}:add{R} +auto={T}:add{G} +text=Whenever players finish voting, you and each opponent who voted for a choice you voted for may scry 2. -- {T}: Add one mana of any color. +mana={3} +type=Artifact +[/card] +[card] name=Moderation auto=maxCast(*)1 auto=@movedTo(*|mystack):name(Draw a card) draw:1 controller @@ -62384,6 +62673,17 @@ mana={3}{G} type=Artifact [/card] [card] +name=Monstrosity of the Lake +autohand={2}{cycle}:name(Search island) target(island|myLibrary) moveTo(myHand) and!( shuffle )! +auto=may name(Pay 5 and tap) pay({5}) name(Pay 5 and tap) all(creature|opponentBattlefield) name(Pay 5 and tap) transforms((,newability[tap],newability[counter(0/0.1.Stun)])) oneshot +text=When Monstrosity of the Lake enters the battlefield, you may pay {5}. If you do, tap all creatures your opponents control, then put a stun counter on each of those creatures. (If a permanent with a stun counter would become untapped, remove one from it instead.) -- Islandcycling {2} ({2}, Discard this card: Search your library for an Island card, reveal it, put it into your hand, then shuffle.) +mana={4}{U} +type=Legendary Creature +subtype=Kraken +power=4 +toughness=6 +[/card] +[card] name=Monstrous Onslaught auto=if compare(power:highest:*:mybattlefield)~equalto~1 then ability$!name(Choose a creature) damage:1 target(creature)!$ controller auto=if compare(power:highest:*:mybattlefield)~equalto~2 then thisforeach(variable{2}) ability$!name(Choose a creature) damage:1 target(creature)!$ controller @@ -62724,6 +63024,17 @@ power=1 toughness=1 [/card] [card] +name=Moria Scavenger +abilities=deathtouch,haste +auto={T}:name(Discard and draw) target(*|myhand) transforms((,newability[reject and!( draw:1 controller )!],newability[if cantargetcard(*[creature]|*) then name(Amass orcs 1) name(Amass orcs 1) ability$!name(Amass orcs 1) _AMASSORC1_!$ controller])) oneshot +text=Deathtouch, haste -- {T}, Discard a card: Draw a card. If the discarded card was a creature card, amass Orcs 1. (Put a +1/+1 counter on an Army you control. It's also an Orc. If you don't control an Army, create a 0/0 black Orc Army creature token first.) +mana={1}{B}{R} +type=Creature +subtype=Orc Rogue +power=1 +toughness=4 +[/card] +[card] name=Moritte of the Frost abilities=changeling auto=if type(creature|mybattlefield)~morethan~0 then choice name(Becomes a copy of creature) name(Becomes a copy of creature) target(creature|mybattlefield) copy and!( transforms((Legendary Snow,newability[counter(1/1.2)],newability[changeling])) forever )! @@ -66327,6 +66638,20 @@ power=2 toughness=4 [/card] [card] +name=Oath of Eorl +auto=counter(0/0,1,Lore) +auto=@each my firstmain:counter(0/0,1,Lore) +auto=name(Create soldier) token(Human Soldier)*2 +auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~2}:name(Create knight) name(Create knight) token(Human Knight)*2 +auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~3}:name(Sacrifice) name(Sacrifice) sacrifice +auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~3}:name(You become the monarch) name(You become the monarch) ability$!_MONARCH_CONTROLLER_!$ controller +auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~3}:may name(Put indestructible counter) name(Put indestructible counter) target(human|mybattlefield) transforms((,newability[counter(0/0.1.Indestructible)],newability[this(counter{0/0.1.Indestructible}>0) indestructible])) forever +text=(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.) -- I- Create two 1/1 white Human Soldier creature tokens. -- II- Create two 2/2 red Human Knight creature tokens with trample and haste. -- III- Put an indestructible counter on up to one target Human. You become the monarch. +mana={3}{R}{W} +type=Enchantment +subtype=Saga +[/card] +[card] name=Oath of Kaya auto=damage:3 target(player,creature,planeswalker) auto=life:3 controller @@ -70953,6 +71278,20 @@ power=2 toughness=2 [/card] [card] +name=Pippin, Warden of Isengard +abilities=partner +partner=Merry, Warden of Isengard +auto=_PARTNER_ +auto={1}{T}:name(Create food) token(Food) +auto={T}{S(food|mybattlefield)}{S(food|mybattlefield)}{S(food|mybattlefield)}{S(food|mybattlefield)}:name(Creatures gain 3/3 and haste) all(other creature|myBattlefield) transforms((,newability[3/3],newability[haste])) ueot assorcery +text=Partner with Merry, Warden of Isengard (When this creature enters the battlefield, target player may put Merry into their hand from their library, then shuffle) -- {1}, {T}: Create a Food token. -- {T}, Sacrifice four Foods: Other creatures you control get +3/+3 and gain haste until end of turn. Activate only as a sorcery. +mana={B}{G} +type=Legendary Creature +subtype=Halfling Advisor +power=2 +toughness=2 +[/card] +[card] name=Pir's Whim aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(land|myLibrary) auto=name(Search land) reveal:plibrarycount optionone name(choose card) target(land|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) and!(tap(noevent))!)! afterrevealedend revealend @@ -74389,6 +74728,18 @@ power=2 toughness=5 [/card] [card] +name=Radagast, Wizard of Wilds +auto=_WARD_(1) +auto=@targeted(bird|mybattlefield) from(*|opponentzones):choice name(This spell costs 1 more) name(This spell costs 1 more) target(*|opponentzones) transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?fizzle])) oneshot +auto=@movedTo(*[manacost>=5]|mystack):name(Choose one) transforms((,newability[choice name(Create beast) token(Beast Rad)],newability[choice name(Create bird) token(Bird^Creature Brid^2/2^blue^flying)])) oneshot +text=Ward {1} -- Beasts and Birds you control have ward {1}. -- Whenever you cast a spell with mana value 5 or greater, choose one -- Create a 3/3 green Beast creature token. -- Create a 2/2 blue Bird creature token with flying. +mana={2}{G}{U} +type=Legendary Creature +subtype=Avatar Wizard +power=3 +toughness=5 +[/card] +[card] name=Radha, Coalition Warlord auto=@tapped(this):target(other creature|myBattlefield) pbasiclandtypes/pbasiclandtypes ueot text=Domain - Whenever Radha, Coalition Warlord becomes tapped, another target creature you control gets +X/+X until end of turn, where X is the number of basic land types among lands you control. @@ -77004,6 +77355,14 @@ mana={3} type=Artifact [/card] [card] +name=Relic of Sauron +auto={T}:name(Add 2 mana) thisforeach(variable{2}) ability$!name(Choose one) choice add{U} _ choice add{B} _ choice add{R}!$ controller +auto={3}{T}:name(Draw and discard) draw:2 controller && ability$!name(Discard a card) reject notatarget(*|myhand)!$ controller +text={T}: Add two mana in any combination of {U}, {B} and/or {R}. -- {3}, {T}: Draw two cards, then discard a card. +mana={4} +type=Artifact +[/card] +[card] name=Rem Karolus, Stalwart Slayer abilities=flying,haste auto=preventalldamage to(controller) from(*|stack) @@ -78157,6 +78516,18 @@ mana={G}{U} type=Instant [/card] [card] +name=Riders of Rohan +other={4}{R}{W} name(Dash) +auto=if paid(alternative) then transforms((,newability[haste],newability[phaseaction[endofturn sourceinplay] moveto(ownerhand) all(this)])) forever +auto=name(Create knight) token(Human Knight)*2 +text=When Riders of Rohan enters the battlefield, create two 2/2 red Human Knight creature tokens with trample and haste. -- Dash {4}{R}{W} (You may cast this spell for its dash cost. If you do, it gains haste, and it's returned from the battlefield to its owner's hand at the beginning of the next end step.) +mana={3}{R}{W} +type=Creature +subtype=Human Knight +power=4 +toughness=4 +[/card] +[card] name=Rielle, the Everwise auto=foreach(*[instant;sorcery]|myGraveyard) 1/0 auto=@discarded(*|myHand) turnlimited:draw:1 controller @@ -89260,6 +89631,21 @@ mana={1}{G}{U}{R} type=Enchantment [/card] [card] +name=Song of Earendil +aicode=activate transforms((,newability[draw:2 controller])) oneshot +auto=counter(0/0,1,Lore) +auto=@each my firstmain:counter(0/0,1,Lore) +auto=name(Scry 2) scry:2 scrycore delayed dontshow draw:2 controller scrycoreend scryend +auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~2}:name(Create bird) name(Create bird) token(Bird,Creature Brid,2/2,blue,flying) +auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~2}:name(Create treasure) name(Create treasure) token(Treasure) +auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~3}:name(Sacrifice) name(Sacrifice) sacrifice +auto=@counteradded(0/0,1,Lore) from(this) restriction{compare(hascntlore)~equalto~3}:name(Put flying counter) name(Put flying counter) all(creature[-flying]|mybattlefield) transforms((,newability[counter(0/0.1.Flying)],newability[this(counter{0/0.1.Flying}>0) flying])) forever +text=(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.) -- I- Scry 2, then draw two cards. -- II- Create a Treasure token and a 2/2 blue Bird creature token with flying. -- III- Put a flying counter on each creature you control without flying. +mana={3}{G}{U} +type=Enchantment +subtype=Saga +[/card] +[card] name=Song of Freyalise auto=counter(0/0,1,Lore) auto=@each my firstmain:counter(0/0,1,Lore) @@ -93642,6 +94028,99 @@ type=Instant subtype=Trap [/card] [card] +name=Summons of Saruman +otherrestriction=type(army|mybattlefield)~morethan~0 +restriction=type(army|mybattlefield)~equalto~0 +other={X}{U}{R} +flashback={3}{U}{R} +autograveyard=this(variable{type:army:mybattlefield}=0) {3}{U}{R}:name(Flashback) name(Flashback) activate castcard(flashback) +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~0 then name(Put 1/1 counter) name(Put 1/1 counter) name(Put 1/1 counter) name(Put 1/1 counter) notatarget(army|myBattlefield) transforms((Orc,newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=0]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~1 then name(Put 1/1 counter) name(Put 1/1 counter) name(Put 1/1 counter) name(Put 1/1 counter) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1)],newability[deplete:1 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=1]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~2 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.2)],newability[deplete:2 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=2]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~3 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.3)],newability[deplete:3 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=3]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~4 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.4)],newability[deplete:4 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=4]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~5 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.5)],newability[deplete:5 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=5]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~6 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.6)],newability[deplete:6 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=6]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~7 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.7)],newability[deplete:7 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=7]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~8 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.8)],newability[deplete:8 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=8]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~9 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.9)],newability[deplete:9 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=9]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~10 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.10)],newability[deplete:10 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=10]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~11 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.11)],newability[deplete:11 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=11]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~12 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.12)],newability[deplete:12 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=12]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~13 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.13)],newability[deplete:13 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=13]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~14 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.14)],newability[deplete:14 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=14]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~15 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.15)],newability[deplete:15 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=15]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~16 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.16)],newability[deplete:16 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=16]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~17 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.17)],newability[deplete:17 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=17]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~18 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.18)],newability[deplete:18 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=18]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~equalto~19 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.19)],newability[deplete:19 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=19]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then if paid(alternative) then if compare(fullpaid)~morethan~19 then name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.20)],newability[deplete:20 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=20]|mygraveyard) activate castcard(normal)!$ controller])) forever +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~0 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=1]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~1 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.1) notatarget(army|myBattlefield)],newability[deplete:1 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=1]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~2 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.2) notatarget(army|myBattlefield)],newability[deplete:2 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=2]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~3 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.3) notatarget(army|myBattlefield)],newability[deplete:3 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=3]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~4 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.4) notatarget(army|myBattlefield)],newability[deplete:4 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=4]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~5 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.5) notatarget(army|myBattlefield)],newability[deplete:5 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=5]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~6 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.6) notatarget(army|myBattlefield)],newability[deplete:6 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=6]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~7 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.7) notatarget(army|myBattlefield)],newability[deplete:7 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=7]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~8 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.8) notatarget(army|myBattlefield)],newability[deplete:8 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=8]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~9 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.9) notatarget(army|myBattlefield)],newability[deplete:9 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=9]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~10 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.10) notatarget(army|myBattlefield)],newability[deplete:10 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=10]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~11 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.11) notatarget(army|myBattlefield)],newability[deplete:11 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=11]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~12 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.12) notatarget(army|myBattlefield)],newability[deplete:12 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=12]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~13 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.13) notatarget(army|myBattlefield)],newability[deplete:13 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=13]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~14 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.14) notatarget(army|myBattlefield)],newability[deplete:14 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=14]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~15 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.15) notatarget(army|myBattlefield)],newability[deplete:15 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=15]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~16 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.16) notatarget(army|myBattlefield)],newability[deplete:16 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=16]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~17 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.17) notatarget(army|myBattlefield)],newability[deplete:17 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=17]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~18 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.18) notatarget(army|myBattlefield)],newability[deplete:18 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=18]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~equalto~19 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.19) notatarget(army|myBattlefield)],newability[deplete:19 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=19]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=ifnot paid(flashback) then ifnot paid(alternative) then if compare(fullpaid)~morethan~19 then name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[name(Put 1/1 counters) name(Put 1/1 counters) counter(1/1.20) notatarget(army|myBattlefield)],newability[deplete:20 controller],newability[ability$!name(Cast instant or sorcery) target(*[-permanent&manacost<=20]|mygraveyard) activate castcard(normal)!$ controller])) oneshot )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~0 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 1 card) name(Exile 1 card) name(Exile 1 card) name(Exile 1 card) activate castcard(copied noevent alternative costx!:1:! named!:Summons of Saruman:!) and!( ability$!name(Exile 1 card) target(<1>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~1 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 2 cards) name(Exile 2 cards) name(Exile 2 cards) name(Exile 2 cards) activate castcard(copied noevent alternative costx!:2:! named!:Summons of Saruman:!) and!( ability$!name(Exile 2 cards) target(<2>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~2 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 3 cards) name(Exile 3 cards) name(Exile 3 cards) name(Exile 3 cards) activate castcard(copied noevent alternative costx!:3:! named!:Summons of Saruman:!) and!( ability$!name(Exile 3 cards) target(<3>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~3 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 4 cards) name(Exile 4 cards) name(Exile 4 cards) name(Exile 4 cards) activate castcard(copied noevent alternative costx!:4:! named!:Summons of Saruman:!) and!( ability$!name(Exile 4 cards) target(<4>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~4 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 5 cards) name(Exile 5 cards) name(Exile 5 cards) name(Exile 5 cards) activate castcard(copied noevent alternative costx!:5:! named!:Summons of Saruman:!) and!( ability$!name(Exile 5 cards) target(<5>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~5 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 6 cards) name(Exile 6 cards) name(Exile 6 cards) name(Exile 6 cards) activate castcard(copied noevent alternative costx!:6:! named!:Summons of Saruman:!) and!( ability$!name(Exile 6 cards) target(<6>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~6 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 7 cards) name(Exile 7 cards) name(Exile 7 cards) name(Exile 7 cards) activate castcard(copied noevent alternative costx!:7:! named!:Summons of Saruman:!) and!( ability$!name(Exile 7 cards) target(<7>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~7 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 8 cards) name(Exile 8 cards) name(Exile 8 cards) name(Exile 8 cards) activate castcard(copied noevent alternative costx!:8:! named!:Summons of Saruman:!) and!( ability$!name(Exile 8 cards) target(<8>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~8 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 9 cards) name(Exile 9 cards) name(Exile 9 cards) name(Exile 9 cards) activate castcard(copied noevent alternative costx!:9:! named!:Summons of Saruman:!) and!( ability$!name(Exile 9 cards) target(<9>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~9 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 10 cards) name(Exile 10 cards) name(Exile 10 cards) name(Exile 10 cards) activate castcard(copied noevent alternative costx!:10:! named!:Summons of Saruman:!) and!( ability$!name(Exile 10 cards) target(<10>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~10 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 11 cards) name(Exile 11 cards) name(Exile 11 cards) name(Exile 11 cards) activate castcard(copied noevent alternative costx!:11:! named!:Summons of Saruman:!) and!( ability$!name(Exile 11 cards) target(<11>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~11 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 12 cards) name(Exile 12 cards) name(Exile 12 cards) name(Exile 12 cards) activate castcard(copied noevent alternative costx!:12:! named!:Summons of Saruman:!) and!( ability$!name(Exile 12 cards) target(<12>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~12 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 13 cards) name(Exile 13 cards) name(Exile 13 cards) name(Exile 13 cards) activate castcard(copied noevent alternative costx!:13:! named!:Summons of Saruman:!) and!( ability$!name(Exile 13 cards) target(<13>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~13 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 14 cards) name(Exile 14 cards) name(Exile 14 cards) name(Exile 14 cards) activate castcard(copied noevent alternative costx!:14:! named!:Summons of Saruman:!) and!( ability$!name(Exile 14 cards) target(<14>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~14 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 15 cards) name(Exile 15 cards) name(Exile 15 cards) name(Exile 15 cards) activate castcard(copied noevent alternative costx!:15:! named!:Summons of Saruman:!) and!( ability$!name(Exile 15 cards) target(<15>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~15 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 16 cards) name(Exile 16 cards) name(Exile 16 cards) name(Exile 16 cards) activate castcard(copied noevent alternative costx!:16:! named!:Summons of Saruman:!) and!( ability$!name(Exile 16 cards) target(<16>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~16 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 17 cards) name(Exile 17 cards) name(Exile 17 cards) name(Exile 17 cards) activate castcard(copied noevent alternative costx!:17:! named!:Summons of Saruman:!) and!( ability$!name(Exile 17 cards) target(<17>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~17 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 18 cards) name(Exile 18 cards) name(Exile 18 cards) name(Exile 18 cards) activate castcard(copied noevent alternative costx!:18:! named!:Summons of Saruman:!) and!( ability$!name(Exile 18 cards) target(<18>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~18 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 19 cards) name(Exile 19 cards) name(Exile 19 cards) name(Exile 19 cards) activate castcard(copied noevent alternative costx!:19:! named!:Summons of Saruman:!) and!( ability$!name(Exile 19 cards) target(<19>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~19 then if type(army|mybattlefield)~morethan~0 then choice name(Exile 20 cards) name(Exile 20 cards) name(Exile 20 cards) name(Exile 20 cards) activate castcard(copied noevent alternative costx!:20:! named!:Summons of Saruman:!) and!( ability$!name(Exile 20 cards) target(<20>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~0 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 1 card) name(Exile 1 card) name(Exile 1 card) name(Exile 1 card) activate castcard(copied noevent costx!:1:! named!:Summons of Saruman:!) and!( ability$!name(Exile 1 card) target(<1>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~1 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 2 cards) name(Exile 2 cards) name(Exile 2 cards) name(Exile 2 cards) activate castcard(copied noevent costx!:2:! named!:Summons of Saruman:!) and!( ability$!name(Exile 2 cards) target(<2>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~2 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 3 cards) name(Exile 3 cards) name(Exile 3 cards) name(Exile 3 cards) activate castcard(copied noevent costx!:3:! named!:Summons of Saruman:!) and!( ability$!name(Exile 3 cards) target(<3>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~3 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 4 cards) name(Exile 4 cards) name(Exile 4 cards) name(Exile 4 cards) activate castcard(copied noevent costx!:4:! named!:Summons of Saruman:!) and!( ability$!name(Exile 4 cards) target(<4>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~4 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 5 cards) name(Exile 5 cards) name(Exile 5 cards) name(Exile 5 cards) activate castcard(copied noevent costx!:5:! named!:Summons of Saruman:!) and!( ability$!name(Exile 5 cards) target(<5>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~5 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 6 cards) name(Exile 6 cards) name(Exile 6 cards) name(Exile 6 cards) activate castcard(copied noevent costx!:6:! named!:Summons of Saruman:!) and!( ability$!name(Exile 6 cards) target(<6>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~6 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 7 cards) name(Exile 7 cards) name(Exile 7 cards) name(Exile 7 cards) activate castcard(copied noevent costx!:7:! named!:Summons of Saruman:!) and!( ability$!name(Exile 7 cards) target(<7>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~7 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 8 cards) name(Exile 8 cards) name(Exile 8 cards) name(Exile 8 cards) activate castcard(copied noevent costx!:8:! named!:Summons of Saruman:!) and!( ability$!name(Exile 8 cards) target(<8>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~8 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 9 cards) name(Exile 9 cards) name(Exile 9 cards) name(Exile 9 cards) activate castcard(copied noevent costx!:9:! named!:Summons of Saruman:!) and!( ability$!name(Exile 9 cards) target(<9>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~9 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 10 cards) name(Exile 10 cards) name(Exile 10 cards) name(Exile 10 cards) activate castcard(copied noevent costx!:10:! named!:Summons of Saruman:!) and!( ability$!name(Exile 10 cards) target(<10>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~10 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 11 cards) name(Exile 11 cards) name(Exile 11 cards) name(Exile 11 cards) activate castcard(copied noevent costx!:11:! named!:Summons of Saruman:!) and!( ability$!name(Exile 11 cards) target(<11>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~11 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 12 cards) name(Exile 12 cards) name(Exile 12 cards) name(Exile 12 cards) activate castcard(copied noevent costx!:12:! named!:Summons of Saruman:!) and!( ability$!name(Exile 12 cards) target(<12>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~12 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 13 cards) name(Exile 13 cards) name(Exile 13 cards) name(Exile 13 cards) activate castcard(copied noevent costx!:13:! named!:Summons of Saruman:!) and!( ability$!name(Exile 13 cards) target(<13>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~13 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 14 cards) name(Exile 14 cards) name(Exile 14 cards) name(Exile 14 cards) activate castcard(copied noevent costx!:14:! named!:Summons of Saruman:!) and!( ability$!name(Exile 14 cards) target(<14>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~14 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 15 cards) name(Exile 15 cards) name(Exile 15 cards) name(Exile 15 cards) activate castcard(copied noevent costx!:15:! named!:Summons of Saruman:!) and!( ability$!name(Exile 15 cards) target(<15>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~15 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 16 cards) name(Exile 16 cards) name(Exile 16 cards) name(Exile 16 cards) activate castcard(copied noevent costx!:16:! named!:Summons of Saruman:!) and!( ability$!name(Exile 16 cards) target(<16>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~16 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 17 cards) name(Exile 17 cards) name(Exile 17 cards) name(Exile 17 cards) activate castcard(copied noevent costx!:17:! named!:Summons of Saruman:!) and!( ability$!name(Exile 17 cards) target(<17>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~17 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 18 cards) name(Exile 18 cards) name(Exile 18 cards) name(Exile 18 cards) activate castcard(copied noevent costx!:18:! named!:Summons of Saruman:!) and!( ability$!name(Exile 18 cards) target(<18>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~18 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 19 cards) name(Exile 19 cards) name(Exile 19 cards) name(Exile 19 cards) activate castcard(copied noevent costx!:19:! named!:Summons of Saruman:!) and!( ability$!name(Exile 19 cards) target(<19>*|mygraveyard) moveto(myexile)!$ controller )! +auto=if paid(flashback) then if type(*|mygraveyard)~morethan~19 then if type(army|mybattlefield)~equalto~0 then choice name(Exile 20 cards) name(Exile 20 cards) name(Exile 20 cards) name(Exile 20 cards) activate castcard(copied noevent costx!:20:! named!:Summons of Saruman:!) and!( ability$!name(Exile 20 cards) target(<20>*|mygraveyard) moveto(myexile)!$ controller )! +text=Amass Orcs X. Mill X cards. You may cast an instant or sorcery spell with mana value X or less from among them without paying its mana cost. (To amass Orcs X, put X +1/+1 counters on an Army you control. It's also an Orc. If you don't control an Army, create a 0/0 black Orc Army creature token first.) -- Flashback-{3}{U}{R}, Exile X cards from your graveyard. +mana={X}{U}{R} +type=Sorcery +[/card] +[card] name=Sun Sentinel abilities=vigilance text=Vigilance (Attacking doesn't cause this creature to tap.) @@ -95991,6 +96470,14 @@ mana={U} type=Sorcery [/card] [card] +name=Taunt from the Rampart +auto=all(creature|opponentBattlefield) _GOAD_ +auto=all(creature|opponentBattlefield) transforms((,newability[counter(0/0.1.Cantblock) notrg],newability[this(counter{0/0.1.Cantblock}>0) cantblock],newability[phaseaction[endofturn next once sourceinplay] counter(0/0.-hascntcantblock.Cantblock) notrg])) forever +text=Goad all creatures your opponents control. Until your next turn, those creatures can't block. (Until your next turn, those creatures attack each combat if able and attack a player other than you if able.) +mana={3}{R}{W} +type=Sorcery +[/card] +[card] name=Taunting Arbormage kicker={3} auto=if paid(kicker) then target(creature) lure ueot @@ -97164,6 +97651,18 @@ type=Land subtype=Sphere [/card] [card] +name=The Balrog of Moria +abilities=haste,trample,cycling +autohand=__CYCLING__({3}{R}) && token(Treasure)*2 +auto=_DIES_ may name(Exile balrog) all(trigger[to]) moveto(exile) and!( ability$!name(Exile opponent creature) target(creature|opponentBattlefield) moveto(exile)!$ controller )! +text=Trample, haste -- When The Balrog of Moria dies, you may exile it. When you do, for each opponent, exile up to one target creature that player controls. -- Cycling {3}{R} ({3}{R}, Discard this card: Draw a card.) -- When you cycle The Balrog of Moria, create two Treasure tokens. +mana={4}{B}{B}{R} +type=Legendary Creature +subtype=Avatar Demon +power=8 +toughness=8 +[/card] +[card] name=The Balrog, Durin's Bane abilities=haste anyzone=@sacrificed(*|battlefield):name(Cost 1 less) transforms((,newability[changecost(colorless:-1)])) ueot @@ -97275,6 +97774,18 @@ mana={2}{B} type=Sorcery [/card] [card] +name=The Black Gate +auto=tap(noevent) +auto=may name(Pay 3 life) pay({L:3}) name(Pay 3 life) untap +auto={T}:add{B} +auto={1}{B}{T} restriction{compare(lifetotal)~lessthan~compare(opponentlifetotal)}:name(Target creature can't be blocked) name(Target creature can't be blocked) target(creature|mybattlefield) transforms((,newability[unblockable])) ueot +auto={1}{B}{T} restriction{compare(lifetotal)~equalto~compare(opponentlifetotal)}:name(Target creature can't be blocked) name(Target creature can't be blocked) target(creature|battlefield) transforms((,newability[unblockable])) ueot +auto={1}{B}{T} restriction{compare(lifetotal)~morethan~compare(opponentlifetotal)}:name(Target creature can't be blocked) name(Target creature can't be blocked) target(creature|opponentbattlefield) transforms((,newability[unblockable])) ueot +text=As The Black Gate enters the battlefield, you may pay 3 life. If you don't, it enters the battlefield tapped. -- {T}: Add {B}. -- {1}{B}, {T}: Choose a player with the most life or tied for most life. Target creature can't be blocked by creatures that player controls this turn. +type=Legendary Land +subtype=Gate +[/card] +[card] name=The Blackstaff of Waterdeep abilities=doesnotuntap auto=@each my untap:if cantargetcard(*[tapped]|mybattlefield) then may name(Untap Blackstaff of Waterdeep) name(Untap Blackstaff of Waterdeep) untap @@ -100268,6 +100779,14 @@ power=2 toughness=3 [/card] [card] +name=Too Greedily, Too Deep +target=creature|graveyard +auto=name(Return on battlefield) moveto(mybattlefield) and!( transforms((,newability[name(Deal damage) damage:power all(other creature|battlefield)])) oneshot )! +text=Put target creature card from a graveyard onto the battlefield under your control. That creature deals damage equal to its power to each other creature. +mana={5}{B}{R} +type=Sorcery +[/card] +[card] name=Took Reaper auto=_DIES_ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller text=When Took Reaper dies, the Ring tempts you. @@ -101197,6 +101716,19 @@ text={T}: Add {C}. -- {X}{X}, {T}, Sacrifice Treasure Vault: Create X Treasure t type=Artifact Land [/card] [card] +name=Treebeard, Gracious Host +abilities=trample +auto=_WARD_(2) +auto=name(Create foods) token(Food)*2 +auto=@lifeof(player):name(Put 1/1 counters) target(*[halfling;treefolk]|battlefield) counter(1/1,thatmuch) +text=Trample, ward {2} -- When Treebeard, Gracious Host enters the battlefield, create two Food tokens. -- Whenever you gain life, put that many +1/+1 counters on target Halfling or Treefolk. +mana={2}{G}{W} +type=Legendary Creature +subtype=Treefolk +power=0 +toughness=5 +[/card] +[card] name=Treefolk Umbra abilities=totemarmor target=creature @@ -106703,6 +107235,14 @@ power=2 toughness=2 [/card] [card] +name=Wake the Dragon +auto=name(Create dragon) token(Dragon,Creature Dragon,6/6,black,red,flying,menace) and!( transforms((,newability[@combatdamageof(player) from(this):name(Gain control of artifact) target(artifact|mybattlefield) moveto(mybattlefield)],newability[@combatdamagefoeof(player) from(this):name(Gain control of artifact) target(artifact|opponentBattlefield) moveto(mybattlefield)])) forever )! +flashback={6}{B}{R} +text=Create a 6/6 black and red Dragon creature token with flying, menace, and "Whenever this creature deals combat damage to a player, gain control of target artifact that player controls." -- Flashback {6}{B}{R} (You may cast this card from your graveyard for its flashback cost. Then exile it.) +mana={4}{B}{R} +type=Sorcery +[/card] +[card] name=Wake the Past auto=all(artifact|mygraveyard) moveto(mybattlefield) and!( transforms((,newability[haste])) ueot )! text=Return all artifact cards from your graveyard to the battlefield. They gain haste until end of turn. @@ -108654,6 +109194,15 @@ power=3 toughness=3 [/card] [card] +name=Windswift Slice +target=creature|mybattlefield +auto=emblem transforms((,newability[@damaged(creature|opponentbattlefield) from(creature|mybattlefield) once:name(Create warriors) token(Elf Warrior)*excessdamage])) ueot +auto=transforms((,newability[name(Damage opponent creature) damage:power target(creature|opponentbattlefield)])) ueot +text=Target creature you control deals damage equal to its power to target creature you don't control. Create a number of 1/1 green Elf Warrior creature tokens equal to the amount of excess damage dealt this way. +mana={2}{G} +type=Instant +[/card] +[card] name=Wing Commando abilities=flying auto=@movedTo(*[-creature]|mystack):1/1 ueot diff --git a/projects/mtg/bin/Res/sets/primitives/unsupported.txt b/projects/mtg/bin/Res/sets/primitives/unsupported.txt index 85f35ca6f..5f2837044 100644 --- a/projects/mtg/bin/Res/sets/primitives/unsupported.txt +++ b/projects/mtg/bin/Res/sets/primitives/unsupported.txt @@ -2,7 +2,7 @@ grade=unsupported #The cards in this file are not implemented/incomplete yet. #Updated Card lists not in primitives (Borderline, Crappy, Unsupported and Missing Cards) #Please keep these card alphabetized, and try to have the "name=" line at the top of each card -#I sorted this programatically - Vitty85 06-07-2023 +#I sorted this programatically - Vitty85 07-07-2023 [card] name="Ach! Hans, Run!" text=At the beginning of your upkeep, you may say "Ach Hans, run It's the . . ." and name a creature card. If you do, search your library for the named card, put it into play, then shuffle your library. That creature has haste. Remove it from the game at end of turn. @@ -1663,6 +1663,16 @@ mana={1}{W} type=Enchantment [/card] [card] +name=Cirdan the Shipwright +abilities=vigilance +text=Vigilance -- Secret council - Whenever Cirdan the Shipwright enters the battlefield or attacks, each player secretly votes for a player, then those votes are revealed. Each player draws a card for each vote they received. Each player who received no votes may put a permanent card from their hand onto the battlefield. +mana={3}{G}{U} +type=Legendary Creature +subtype=Elf Noble +power=3 +toughness=4 +[/card] +[card] name=City in a Bottle text=Whenever a nontoken permanent from the Arabian Nights expansion other than City in a Bottle is on the battlefield, its controller sacrifices it. -- Players can't play cards from the Arabian Nights expansion. mana={2} @@ -2837,6 +2847,15 @@ type=Plane subtype=Shandalar [/card] [card] +name=Elrond of the White Council +text=Secret council - When Elrond of the White Council enters the battlefield, each player secretly votes for fellowship or aid, then those votes are revealed. For each fellowship vote, the voter chooses a creature they control. You gain control of each creature chosen this way, and they gain "This creature can't attack its owner." Then for each aid vote, put a +1/+1 counter on each creature you control. +mana={3}{G}{U} +type=Legendary Creature +subtype=Elf Noble +power=3 +toughness=3 +[/card] +[card] name=Elspeth's Talent target=planeswalker auto=teach(creature) Enchant planeswalker @@ -3024,6 +3043,15 @@ mana={2}{W} type=Instant [/card] [card] +name=Erestor of the Council +text=Whenever players finish voting, each opponent who voted for a choice you voted for creates a Treasure token. You scry X, where X is the number of opponents who voted for a choice you didn't vote for. Draw a card. +mana={1}{G}{U} +type=Legendary Creature +subtype=Elf Noble +power=2 +toughness=4 +[/card] +[card] name=Errand of Duty text=Put a 1/1 white Knight creature token with banding onto the battlefield. (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.) mana={1}{W} @@ -3681,6 +3709,15 @@ power=* toughness=* [/card] [card] +name=Galadriel, Elven-Queen +text=Will of the council - At the beginning of combat on your turn, if another Elf entered the battlefield under your control this turn, starting with you, each player votes for dominion or guidance. If dominion gets more votes, the Ring tempts you, then you put a +1/+1 counter on your Ring-bearer. If guidance gets more votes or the vote is tied, draw a card. +mana={2}{G}{U} +type=Legendary Creature +subtype=Elf Noble +power=4 +toughness=5 +[/card] +[card] name=Game Preserve text=At the beginning of your upkeep, each player reveals the top card of his or her library. If all cards revealed this way are creature cards, put those cards onto the battlefield under their owners' control. mana={2}{G} @@ -8841,6 +8878,12 @@ type=Enchantment subtype=Aura [/card] [card] +name=Sail into the West +text=Will of the council - Starting with you, each player votes for return or embark. If return gets more votes, each player returns up to two cards from their graveyard to their hand, then you exile Sail into the West. If embark gets more votes or the vote is tied, each player may discard their hand and draw seven cards. +mana={2}{G}{U} +type=Instant +[/card] +[card] name=Saint Traft and Rem Karolus auto=@tapped(this):create(human:creature human:1/1:red) auto=@movedTo(|mystack):untap saint traft && rem karolus @@ -11225,6 +11268,18 @@ mana={U}{U} type=Sorcery [/card] [card] +name=Trap the Trespassers +text=Secret council - Each player secretly votes for a creature you don't control, then those votes are revealed. For each creature with one or more votes, put that many stun counters on it, then tap it. (If a permanent with a stun counter would become untapped, remove one from it instead.) +mana={2}{U} +type=Instant +[/card] +[card] +name=Travel Through Caradhras +text=Council's dilemma - Starting with you, each player votes for Redhorn Pass or Mines of Moria. For each Redhorn Pass vote, search your library for a basic land card and put it onto the battlefield tapped. If you search your library this way, shuffle. For each Mines of Moria vote, return a card from your graveyard to your hand. -- Exile Travel Through Caradhras. +mana={5}{G} +type=Sorcery +[/card] +[card] name=Traveling Plague text=Enchant creature -- At the beginning of each upkeep, put a plague counter on Traveling Plague. -- Enchanted creature gets -1/-1 for each plague counter on Traveling Plague. -- When enchanted creature leaves the battlefield, that creature's controller returns Traveling Plague from its owner's graveyard to the battlefield. mana={3}{B}{B} diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index 0e457497c..96794ea84 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -7143,7 +7143,8 @@ 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); + bool flashback; + 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, bool flashback = false); int testDestroy(){return 0;}; void Update(float dt); diff --git a/projects/mtg/include/CardDescriptor.h b/projects/mtg/include/CardDescriptor.h index df1792835..c1cb08a55 100644 --- a/projects/mtg/include/CardDescriptor.h +++ b/projects/mtg/include/CardDescriptor.h @@ -54,6 +54,7 @@ class CardDescriptor: public MTGCardInstance int modified; int toxicity; int hasPartner; + int isPermanent; int hasXCost; int anyCounter; int init(); @@ -66,6 +67,7 @@ class CardDescriptor: public MTGCardInstance void unsecureSetModified(int k); void unsecureSetHasToxic(int k); void unsecureSetHasPartner(int k); + void unsecureSetIsPermanent(int k); void unsecureSetTapped(int i); void unsecuresetfresh(int k); void unsecuresetrecent(int j); diff --git a/projects/mtg/include/MTGDefinitions.h b/projects/mtg/include/MTGDefinitions.h index 0709a82ba..3d257f8b6 100644 --- a/projects/mtg/include/MTGDefinitions.h +++ b/projects/mtg/include/MTGDefinitions.h @@ -361,7 +361,8 @@ class Constants POISONNINETOXIC = 233, POISONTENTOXIC = 234, EQPASINST = 235, - NB_BASIC_ABILITIES = 236, + UNSACRIFICABLE = 236, + NB_BASIC_ABILITIES = 237, RARITY_S = 'S', //Special Rarity RARITY_M = 'M', //Mythics diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index 1d496f3ea..0a308cd6f 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -4404,6 +4404,7 @@ int AASacrificeCard::resolve() MTGCardInstance * _target = (MTGCardInstance *) target; if (_target) { + if(_target->has(Constants::UNSACRIFICABLE)) return 0; // The card cannot be sacrified (e.g. "Hithlain Rope") if(_target->mutation && _target->parentCards.size() > 0) return 0; // Mutated down cards cannot be sacrificed or exploited, they will follow the fate of top-card Player * p = _target->controller(); MTGCardInstance * beforeCard = _target; @@ -9628,7 +9629,7 @@ void ABlink::returnCardIntoPlay(MTGCardInstance* _target) { } }*/ //replaced with castcard(putinplay) - MTGAbility *a = NEW AACastCard(game, game->mLayers->actionLayer()->getMaxId(), Blinker, Blinker,false,false,false,"","Return to Play",false,true); + MTGAbility *a = NEW AACastCard(game, game->mLayers->actionLayer()->getMaxId(), Blinker, Blinker, false, false, false, "", "Return to Play", false, true); a->oneShot = false; a->canBeInterrupted = false; a->addToGame(); @@ -10012,8 +10013,8 @@ AEquip * AEquip::clone() const } // casting a card for free, or casting a copy of a card. -AACastCard::AACastCard(GameObserver* observer, int _id, MTGCardInstance * _source, MTGCardInstance * _target,bool _restricted,bool _copied,bool asNormal,string _namedCard,string _name,bool _noEvent,bool putinplay,bool madness, bool alternative, int kicked, int costx, bool flipped) : - MTGAbility(observer, _id, _source),restricted(_restricted),asCopy(_copied),normal(asNormal),cardNamed(_namedCard),nameThis(_name),noEvent(_noEvent),putinplay(putinplay), asNormalMadness(madness), alternative(alternative), kicked(kicked), costx(costx), flipped(flipped) +AACastCard::AACastCard(GameObserver* observer, int _id, MTGCardInstance * _source, MTGCardInstance * _target, bool _restricted, bool _copied, bool asNormal, string _namedCard, string _name, bool _noEvent, bool putinplay, bool madness, bool alternative, int kicked, int costx, bool flipped, bool flashback) : + MTGAbility(observer, _id, _source), restricted(_restricted), asCopy(_copied), normal(asNormal), cardNamed(_namedCard), nameThis(_name), noEvent(_noEvent), putinplay(putinplay), asNormalMadness(madness), alternative(alternative), kicked(kicked), costx(costx), flipped(flipped), flashback(flashback) { target = _target; andAbility = NULL; @@ -10134,12 +10135,6 @@ void AACastCard::Update(float dt) return; } } - /*if(!toCheck->hasType(Subtypes::TYPE_INSTANT) && !(game->getCurrentGamePhase() == MTG_PHASE_FIRSTMAIN || game->getCurrentGamePhase() == MTG_PHASE_SECONDMAIN)) - { - processed = true; - this->forceDestroy = 1; - return; - }*/ } MTGCardInstance * toCheck = (MTGCardInstance*)target; if(theNamedCard) @@ -10275,7 +10270,6 @@ int AACastCard::resolveSpell() processed = true; return 1; } - if(theNamedCard) { Spell * spell = NULL; @@ -10318,6 +10312,8 @@ int AACastCard::resolveSpell() copy->isToken = 1; // Fixed a bug when using copied option with namedcard option. if(alternative) copy->alternateCostPaid[ManaCost::MANA_PAID_WITH_ALTERNATIVE] = 1; + if(flashback) + copy->alternateCostPaid[ManaCost::MANA_PAID_WITH_FLASHBACK] = 1; if(kicked > 0){ copy->alternateCostPaid[ManaCost::MANA_PAID_WITH_KICKER] = 1; copy->kicked = kicked; @@ -10372,7 +10368,6 @@ int AACastCard::resolveSpell() processed = true; return 1; } - Spell * spell = NULL; MTGCardInstance * copy = NULL; if ((normal || asNormalMadness) || !_target->isSorceryorInstant()) @@ -10413,6 +10408,8 @@ int AACastCard::resolveSpell() copy->isToken = 1; // Fixed a bug when using copied option for permanent. if(alternative) copy->alternateCostPaid[ManaCost::MANA_PAID_WITH_ALTERNATIVE] = 1; + if(flashback) + copy->alternateCostPaid[ManaCost::MANA_PAID_WITH_FLASHBACK] = 1; if(kicked > 0){ copy->alternateCostPaid[ManaCost::MANA_PAID_WITH_KICKER] = 1; copy->kicked = kicked; diff --git a/projects/mtg/src/CardDescriptor.cpp b/projects/mtg/src/CardDescriptor.cpp index a3d3cac7d..454194f7e 100644 --- a/projects/mtg/src/CardDescriptor.cpp +++ b/projects/mtg/src/CardDescriptor.cpp @@ -31,6 +31,7 @@ CardDescriptor::CardDescriptor() hasFlashbackCost = 0; hasBackSide = 0; hasPartner = 0; + isPermanent = 0; modified = 0; toxicity = 0; hasXCost = 0; @@ -106,6 +107,11 @@ void CardDescriptor::unsecureSetHasPartner(int k) hasPartner = k; } +void CardDescriptor::unsecureSetIsPermanent(int k) +{ + isPermanent = k; +} + void CardDescriptor::unsecureSetTapped(int i) { tapped = i; @@ -383,6 +389,11 @@ MTGCardInstance * CardDescriptor::match(MTGCardInstance * card) match = NULL; } + if ((isPermanent == -1 && card->isPermanent()) || (isPermanent == 1 && !card->isPermanent())) + { + match = NULL; + } + if ((hasXCost == -1 && card->getManaCost()->hasX()) || (hasXCost == 1 && !card->getManaCost()->hasX())) { match = NULL; diff --git a/projects/mtg/src/CardGui.cpp b/projects/mtg/src/CardGui.cpp index 6cedb7e4f..2c1dcac0b 100644 --- a/projects/mtg/src/CardGui.cpp +++ b/projects/mtg/src/CardGui.cpp @@ -1594,6 +1594,18 @@ bool CardGui::FilterCard(MTGCard * _card,string filter) cd.unsecureSetHasPartner(1); } } + //Is a permanent + else if (attribute.find("permanent") != string::npos) + { + if (minus) + { + cd.unsecureSetIsPermanent(-1); + } + else + { + cd.unsecureSetIsPermanent(1); + } + } //Token else if (attribute.find("token") != string::npos) { diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 660db012c..0786f65d2 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -4093,6 +4093,7 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG bool sendNoEvent = splitCastCard[1].find("noevent") != string::npos; bool putinplay = splitCastCard[1].find("putinplay") != string::npos; bool alternative = splitCastCard[1].find("alternative") != string::npos; + bool flashback = splitCastCard[1].find("flashback") != string::npos; bool flipped = splitCastCard[1].find("flipped") != string::npos; string nameCard = ""; if(splitCastCard[1].find("named!:") != string::npos) @@ -4123,7 +4124,7 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG costx = val->getValue(); } } - MTGAbility *a = NEW AACastCard(observer, id, card, target,withRestrictions,asCopy,asNormal,nameCard,newName,sendNoEvent,putinplay, asNormalMadness, alternative, kicked, costx, flipped); + MTGAbility *a = NEW AACastCard(observer, id, card, target, withRestrictions, asCopy, asNormal, nameCard, newName, sendNoEvent, putinplay, asNormalMadness, alternative, kicked, costx, flipped, flashback); a->oneShot = false; if(splitCastCard[1].find("trigger[to]") != string::npos) { @@ -4135,12 +4136,12 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG storedAndAbility.clear(); ((AACastCard*)a)->andAbility = parseMagicLine(stored, id, spell, card); } - MTGCardInstance * _target = NULL; - if (spell) - _target = spell->getNextCardTarget(); - if(!_target) - _target = target; - a->target = _target; + MTGCardInstance * _target = NULL; + if (spell) + _target = spell->getNextCardTarget(); + if(!_target) + _target = target; + a->target = _target; return a; } diff --git a/projects/mtg/src/MTGDefinitions.cpp b/projects/mtg/src/MTGDefinitions.cpp index 6c27608b1..3e842a078 100644 --- a/projects/mtg/src/MTGDefinitions.cpp +++ b/projects/mtg/src/MTGDefinitions.cpp @@ -266,7 +266,8 @@ const char* Constants::MTGBasicAbilities[] = { "poisoneighttoxic", // Card has toxic 8 "poisonninetoxic", // Card has toxic 9 "poisontentoxic", // Card has toxic 10 - "eqpasinst" // Can equip as instant + "eqpasinst", // Can equip as instant + "unsacrificable" // The card cannot be sacrified (e.g. "Hithlain Rope"). }; map Constants::MTGBasicAbilitiesMap; diff --git a/projects/mtg/src/TargetChooser.cpp b/projects/mtg/src/TargetChooser.cpp index 03bfb892f..5fd830c8c 100644 --- a/projects/mtg/src/TargetChooser.cpp +++ b/projects/mtg/src/TargetChooser.cpp @@ -689,6 +689,18 @@ TargetChooser * TargetChooserFactory::createTargetChooser(string s, MTGCardInsta cd->unsecureSetHasPartner(1); } } + //Is a permanent + else if (attribute.find("permanent") != string::npos) + { + if (minus) + { + cd->unsecureSetIsPermanent(-1); + } + else + { + cd->unsecureSetIsPermanent(1); + } + } //Token else if (attribute.find("token") != string::npos) {