Added new primitives from LTR set, fixed a possible crash on "transforms" deletion from emblems and "ability$", fix source card for token creation inside ability$!!$ keyword.

This commit is contained in:
Vittorio Alfieri
2023-07-03 18:11:17 +02:00
parent fe8144553a
commit eaef6a588d
3 changed files with 375 additions and 11 deletions

View File

@@ -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 30-06-2023
#I sorted this programmatically - Thanks to Vitty85 03-07-2023
[card]
name=+2 Mace
auto={3}:equip
@@ -3185,6 +3185,19 @@ power=3
toughness=6
[/card]
[card]
name=Aragorn, the Uniter
auto=@movedTo(white|mystack):name(Create soldier) token(Human Soldier,Creature Human Soldier,1/1,white)
auto=@movedTo(blue|mystack):name(Scry 2) _SCRY2_
auto=@movedTo(red|mystack):name(Damage opponent) damage:3 opponent
auto=@movedTo(green|mystack):name(Creature gains 4/4) target(creature|battlefield) 4/4 ueot
text=Whenever you cast a white spell, create a 1/1 white Human Soldier creature token. -- Whenever you cast a blue spell, scry 2. -- Whenever you cast a red spell, Aragorn, the Uniter deals 3 damage to target opponent. -- Whenever you cast a green spell, target creature gets +4/+4 until end of turn.
mana={R}{G}{W}{U}
type=Legendary Creature
subtype=Human Noble
power=5
toughness=5
[/card]
[card]
name=Arahbo, Roar of the World
auto=@each my combatbegins:target(other cat|myBattlefield) 3/3 ueot
auto=@combat(attacking) source(other cat|mybattlefield):all(trigger[to]) pay[[{1}{G}{W}]] trample && dynamicability<!mytgt powerpumpboth!>
@@ -8434,6 +8447,17 @@ power=3
toughness=3
[/card]
[card]
name=Bitter Downfall
otherrestriction=type(creature[damaged]|battlefield)~morethan~0
restriction=type(creature[-damaged]|battlefield)~morethan~0
other={B} name(Destroy damaged creature)
auto=if paid(alternative) then name(Destroy creature) name(Destroy creature) target(creature[damaged]|battlefield) destroy and!( damage:2 targetcontroller )!
auto=ifnot paid(alternative) then name(Destroy creature) name(Destroy creature) target(creature[-damaged]|battlefield) destroy and!( damage:2 targetcontroller )!
text=This spell costs {3} less to cast if it targets a creature that was dealt damage this turn. -- Destroy target creature. Its controller loses 2 life.
mana={3}{B}
type=Instant
[/card]
[card]
name=Bitter Reunion
auto=may reject notatarget(*|myhand) and!( draw:2 controller )!
auto={1}{S}:all(creature|myBattlefield) haste ueot
@@ -28762,6 +28786,18 @@ power=5
toughness=5
[/card]
[card]
name=Eowyn, Fearless Knight
abilities=haste
auto=name(Exile creature) target(creature[power=power:highest:creature:opponentbattlefield]|opponentbattlefield) moveto(opponentexile) and!( becomes(eoex) ueot )!
auto=all(creature[legendary]|mybattlefield) transforms((,newability[aslongas(creature[eoex&black]|opponentexile) protection from black],newability[aslongas(creature[eoex&white]|opponentexile) protection from white],newability[aslongas(creature[eoex&green]|opponentexile) protection from green],newability[aslongas(creature[eoex&blue]|opponentexile) protection from blue],newability[aslongas(creature[eoex&red]|opponentexile) protection from red])) ueot
text=Haste -- When Eowyn, Fearless Knight enters the battlefield, exile target creature an opponent controls with greater power. Legendary creatures you control gain protection from each of that creature's colors until end of turn.
mana={2}{R}{W}
type=Legendary Creature
subtype=Human Knight
power=3
toughness=4
[/card]
[card]
name=Ephara's Dispersal
other={U} name(Target attacking creature)
restriction=type(creature|battlefield)~morethan~0
@@ -33414,6 +33450,21 @@ mana={2}{R}
type=Instant
[/card]
[card]
name=Flame of Anor
auto=if type(wizard|mybattlefield)~equalto~0 then choice name(You draw 2 cards) name(You draw 2 cards) draw:2 controller
auto=if type(wizard|mybattlefield)~equalto~0 then choice name(Opponent draws 2 cards) name(Opponent draws 2 cards) draw:2 opponent
auto=if type(wizard|mybattlefield)~equalto~0 then if type(artifact|battlefield)~morethan~0 then choice name(Destroy artifact) name(Destroy artifact) name(Destroy artifact) target(artifact|battlefield) destroy
auto=if type(wizard|mybattlefield)~equalto~0 then if type(creature|battlefield)~morethan~0 then choice name(Deal 5 damage) name(Deal 5 damage) name(Deal 5 damage) target(creature|battlefield) damage:5
auto=if type(wizard|mybattlefield)~morethan~0 then if type(artifact|battlefield)~morethan~0 then choice name(You draw and destroy artifact) name(You draw and destroy artifact) name(You draw and destroy artifact) target(artifact|battlefield) destroy and!( draw:2 controller )!
auto=if type(wizard|mybattlefield)~morethan~0 then if type(artifact|battlefield)~morethan~0 then choice name(Opponent draws and destroy artifact) name(Opponent draws and destroy artifact) name(Opponent draws and destroy artifact) target(artifact|battlefield) destroy and!( draw:2 opponent )!
auto=if type(wizard|mybattlefield)~morethan~0 then if type(creature|battlefield)~morethan~0 then choice name(You draw and damage creature) name(You draw and damage creature) name(You draw and damage creature) target(creature|battlefield) damage:5 && draw:2 controller
auto=if type(wizard|mybattlefield)~morethan~0 then if type(creature|battlefield)~morethan~0 then choice name(Opponent draws and damage creature) name(Opponent draws and damage creature) name(Opponent draws and damage creature) target(creature|battlefield) destroy && draw:2 opponent
auto=if type(wizard|mybattlefield)~morethan~0 then if type(artifact|battlefield)~morethan~0 then if type(creature|battlefield)~morethan~0 then choice name(Destroy artifact and damage creature) name(Destroy artifact and damage creature) name(Destroy artifact and damage creature) name(Destroy artifact and damage creature) target(artifact|battlefield) destroy and!( ability$!name(Damage creature) name(Damage creature) target(creature|battlefield) damage:5!$ controller )!
text=Choose one. If you control a Wizard as you cast this spell, you may choose two instead. -- Target player draws two cards. -- Destroy target artifact. -- Flame of Anor deals 5 damage to target creature.
mana={1}{U}{R}
type=Instant
[/card]
[card]
name=Flame-Blessed Bolt
target=creature,planeswalker
auto=exiledeath ueot
@@ -35721,6 +35772,15 @@ power=4
toughness=5
[/card]
[card]
name=Gandalf's Sanction
target=creature
autostack=emblem transforms((,newability[@damaged(creature|mybattlefield) from(Gandalf's Sanction|myzones) once:name(Damage controller) name(Damage controller) damage:excessdamage controller],newability[@damaged(creature|opponentbattlefield) from(Gandalf's Sanction|myzones) once:name(Damage controller) name(Damage controller) damage:excessdamage opponent])) ueot
auto=damage:pginstantsorcery
text=Gandalf's Sanction deals X damage to target creature, where X is the number of instant and sorcery spells in your graveyard. Excess damage is dealt to that creature's controller instead.
mana={1}{U}{R}
type=Sorcery
[/card]
[card]
name=Gandalf, Friend of the Shire
abilities=flash
auto=lord(sorcery|mycastingzone) asflash
@@ -38039,6 +38099,16 @@ power=2
toughness=1
[/card]
[card]
name=Glorfindel, Dauntless Rescuer
auto=@scryed(*|mybattlefield,mystack):name(Choose one) transforms((,newability[1/1],newability[choice name(Must be blocked by one) becomes(^^oneblocker) ueot],newability[choice name(Must be blocked) transforms((_MUST_BE_BLOCKD_)) ueot])) ueot
text=Whenever you scry, choose one and Glorfindel, Dauntless Rescuer gets +1/+1 until end of turn. -- Glorfindel must be blocked this turn if able. -- Glorfindel can't be blocked by more than one creature each combat this turn.
mana={2}{G}
type=Legendary Creature
subtype=Elf Noble
power=3
toughness=2
[/card]
[card]
name=Glorifier of Dusk
auto={L:2}:flying ueot
auto={L:2}:vigilance ueot
@@ -39458,6 +39528,16 @@ power=3
toughness=2
[/card]
[card]
name=Gorbag of Minas Morgul
auto=@combatdamaged(player) from(*[orc;goblin]|mybattlefield):may name(Sacrifice creature) all(trigger[from]) sacrifice and!( ability$!name(Choose one) choice name(Draw card) draw:1 controller _ choice name(Create treasure) token(Treasure)!$ controller )!
text=Whenever a Goblin or Orc you control deals combat damage to a player, you may sacrifice it. When you do, choose one- -- Draw a card. -- Create a Treasure token. (It's an artifact with "{T}, Sacrifice this artifact: Add one mana of any color.")
mana={1}{B}
type=Legendary Creature
subtype=Orc Soldier
power=2
toughness=2
[/card]
[card]
name=Goreclaw, Terror of Qal Sisma
auto=lord(creature[power>=4]|mycastingzone) altercost(colorless,-2)
auto=_ATTACKING_all(creature[power>=4]|myBattlefield) 1/1 ueot
@@ -39598,6 +39678,17 @@ mana={W}{W}
type=Enchantment
[/card]
[card]
name=Gothmog, Morgul Lieutenant
auto=_AMASSORC1_
auto=lord(creature[token]|myBattlefield) deathtouch
text=When Gothmog, Morgul Lieutenant enters the battlefield, 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.) -- Creature tokens you control have deathtouch.
mana={3}{B}
type=Legendary Creature
subtype=Human Soldier
power=3
toughness=3
[/card]
[card]
name=Gouged Zealot
abilities=reach
auto=@combat(attacking) source(this) restriction{delirium}:name(Deals 1 damage) damage:1 all(creature|opponentbattlefield)
@@ -42515,6 +42606,17 @@ color=blue
type=Legendary Enchantment
[/card]
[card]
name=Haunt of the Dead Marshes
auto=name(Scry 1) _SCRY1_
autograveyard=aslongas(creature[legendary]|mybattlefield) {2}{B}:name(Return to battlefield) name(Return to battlefield) moveto(mybattlefield) and!( tap(noevent) )!
text=When Haunt of the Dead Marshes enters the battlefield, scry 1. -- {2}{B}: Return Haunt of the Dead Marshes from your graveyard to the battlefield tapped. Activate only if you control a legendary creature.
mana={B}
type=Creature
subtype=Nightmare Elf
power=1
toughness=1
[/card]
[card]
name=Haunted Library
auto=@movedto(creature|graveyard) from(opponentbattlefield):may name(Pay and create spirit) pay({1}) name(Pay and create spirit) _SPIRITTOKEN_
text=Whenever a creature an opponent controls dies, you may pay {1}. If you do, create a 1/1 white Spirit creature token with flying.
@@ -44655,6 +44757,14 @@ type=Artifact
subtype=Equipment
[/card]
[card]
name=Horn of the Mark
aicode=activate transforms((,newability[if type(creature[zpos<=5]|mylibrary)~morethan~0 then target(creature[zpos<=5]|mylibrary) moveto(myhand) and!( all(*[zpos<=5]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!],newability[if type(creature[zpos<=5]|mylibrary)~equalto~0 then all(*[zpos<=5]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot
auto=@each blockers restriction{type(creature[attacking]|mybattlefield)~morethan~1}:name(Look 5 cards) name(Look 5 cards) reveal:5 optionone name(Get Creature) target(<upto:1>creature|reveal) moveto(myhand) optiononeend optiontwo name(Put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend
text=Whenever two or more creatures you control attack a player, look at the top five cards of your library. You may reveal a creature 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}
type=Legendary Artifact
[/card]
[card]
name=Hornbash Mentor
auto=name(Put trample counter) target(creature[-human]|myBattlefield) transforms((,newability[counter(0/0.1.Trample)],newability[this(counter{0/0.1.Trample}>=1) trample])) forever
auto={2}{G}{T}:counter(1/1) all(creature[trample]|myBattlefield)
@@ -54514,6 +54624,30 @@ mana={1}{W}{B}
type=Sorcery
[/card]
[card]
name=Legolas, Counter of Kills
abilities=reach
auto=@scryed(*|mybattlefield,mystack) turnlimited:if cantargetcard(*[tapped]|*) then untap
auto=@movedTo(creature|graveyard) from(opponentbattlefield):name(Put 1/1 counter) counter(1/1)
text=Reach -- Whenever you scry, if Legolas, Counter of Kills is tapped, you may untap it. Do this only once each turn. -- Whenever a creature an opponent controls dies, put a +1/+1 counter on Legolas.
mana={2}{G}{U}
type=Legendary Creature
subtype=Elf Archer
power=2
toughness=3
[/card]
[card]
name=Legolas, Master Archer
abilities=reach
auto=@targeted(this) from(*|mystack,mycastingzone):name(Put 1/1 counter) counter(1/1)
auto=@targeted(creature|opponentbattlefield) from(*|mystack,mycastingzone):may name(Deal damage) damage:power target(creature|battlefield)
text=Reach -- Whenever you cast a spell that targets Legolas, Master Archer, put a +1/+1 counter on Legolas. -- Whenever you cast a spell that targets a creature you don't control, Legolas deals damage equal to its power to up to one target creature.
mana={1}{G}{G}
type=Legendary Creature
subtype=Elf Archer
power=1
toughness=4
[/card]
[card]
name=Leinore, Autumn Sovereign
auto=@each my combatbegins:name(Put 1/1 counter) transforms((,newability[choice name(Put 1/1 counter) target(creature|mybattlefield) counter(1/1) && if coven then name(Draw a card) draw:1 controller],newability[if coven then choice name(Don't put counter) name(Don't put counter) draw:1 controller],newability[ifnot coven then choice name(Don't put counter) name(Don't put counter) donothing])) oneshot
text=Coven - At the beginning of combat on your turn, put a +1/+1 counter on up to one target creature you control. Then if you control three or more creatures with different powers, draw a card.
@@ -56353,6 +56487,17 @@ power=1
toughness=3
[/card]
[card]
name=Lotho, Corrupt Shirriff
auto=@movedto(*|mystack) restriction{thisturn(*|mystack)~equalto~1}:name(Lose life and create treasure) token(Treasure) and!( life:-1 controller )!
auto=@movedto(*|opponentStack) restriction{thisturn(*|opponentStack)~equalto~1}:name(Lose life and create treasure) token(Treasure) and!( life:-1 controller )!
text=Whenever a player casts their second spell each turn, you lose 1 life and create a Treasure token. (It's an artifact with "{T}, Sacrifice this artifact: Add one mana of any color.")
mana={W}{B}
type=Legendary Creature
subtype=Halfling Rogue
power=2
toughness=1
[/card]
[card]
name=Lotleth Giant
auto=damage:1 target(opponent) type:creature:card:mygraveyard
text=Undergrowth - When Lotleth Giant enters the battlefield, it deals 1 damage to target opponent for each creature card in your graveyard.
@@ -58033,6 +58178,14 @@ power=2
toughness=2
[/card]
[card]
name=March from the Black Gate
auto=_AMASSORC1_
auto=@combat(attacking) source(army|mybattlefield):name(Amass orcs 1) _AMASSORC1_
text=When March from the Black Gate enters the battlefield and whenever an Army you control attacks, 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}
type=Enchantment
[/card]
[card]
name=March from the Tomb
auto=all(ally[manacost<=8]|mygraveyard) moveTo(mybattlefield)
text=Return any number of target Ally creature cards with total mana value 8 or less from your graveyard to the battlefield.
@@ -59134,6 +59287,17 @@ power=3
toughness=2
[/card]
[card]
name=Meneldor, Swift Savior
abilities=flying
auto=@combatdamaged(player) from(this):may name(Exile a creature) target(creature|mybattlefield) moveto(myexile) and!( moveto(mybattlefield) )!
text=Flying -- Whenever Meneldor, Swift Savior deals combat damage to a player, exile up to one target creature you own, then return it to the battlefield under your control.
mana={3}{U}
type=Legendary Creature
subtype=Bird Soldier
power=3
toughness=3
[/card]
[card]
name=Mental Journey
aicode=activate target(land[basic]|mylibrary) moveto(myhand)
autohand={1}{U}{cycle}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>land[basic]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend
@@ -66191,6 +66355,17 @@ power=7
toughness=7
[/card]
[card]
name=Old Man Willow
anyzone=type:land:myBattlefield/type:land:myBattlefield cdaactive
auto=_ATTACKING_may name(Sacrifice another creature or token) target(other *[creature;token]|mybattlefield) sacrifice and!( name(Opponent's creature gains -2/-2) target(creature|opponentbattlefield) -2/-2 ueot )!
text=Old Man Willow's power and toughness are each equal to the number of lands you control. -- Whenever Old Man Willow attacks, you may sacrifice another creature or a token. When you do, target creature an opponent controls gets -2/-2 until end of turn.
mana={2}{B}{G}
type=Legendary Creature
subtype=Treefolk
power=*
toughness=*
[/card]
[card]
name=Old Rutstein
auto=name(Mill a card) all(*[zpos=1]|mylibrary) moveto(mygraveyard) and!( transforms((,newability[if cantargetcard(land|*) then token(Treasure)],newability[if cantargetcard(creature|*) then _INSECTTOKEN_],newability[if cantargetcard(*[-land;-creature]|*) then token(Blood)])) oneshot )!
auto=@each my upkeep:name(Mill a card) all(*[zpos=1]|mylibrary) moveto(mygraveyard) and!( transforms((,newability[if cantargetcard(land|*) then token(Treasure)],newability[if cantargetcard(creature|*) then _INSECTTOKEN_],newability[if cantargetcard(*[-land;-creature]|*) then token(Blood)])) oneshot )!
@@ -77331,6 +77506,44 @@ mana={5}
type=Artifact
[/card]
[card]
name=Ringsight
autostack=name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller
auto=if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&black]|mybattlefield)~morethan~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[green;white;red;blue;black]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&black]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[white;green;red;blue]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&black]|mybattlefield)~morethan~0 then if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[white;red;blue;black]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&black]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[white;green;red;black]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&black]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[white;green;red;black]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&black]|mybattlefield)~morethan~0 then if type(creature[legendary&white]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[red;blue;black;green]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~equalto~0 then if type(creature[legendary&black]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[white;red;blue]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&black]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~equalto~0 then if type(creature[legendary&blue]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[white;red;black]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~equalto~0 then if type(creature[legendary&black]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[white;red;green]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&black]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~equalto~0 then if type(creature[legendary&red]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[white;blue;black]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~equalto~0 then if type(creature[legendary&black]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[white;green;blue]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&black]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~equalto~0 then if type(creature[legendary&blue]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[white;green;black]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&white]|mybattlefield)~equalto~0 then if type(creature[legendary&black]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[green;red;blue]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&black]|mybattlefield)~morethan~0 then if type(creature[legendary&white]|mybattlefield)~equalto~0 then if type(creature[legendary&blue]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[green;red;black]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&black]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&white]|mybattlefield)~equalto~0 then if type(creature[legendary&red]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[green;black;blue]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&black]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&white]|mybattlefield)~equalto~0 then if type(creature[legendary&green]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[red;black;blue]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~equalto~0 then if type(creature[legendary&green]|mybattlefield)~equalto~0 then if type(creature[legendary&black]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[white;blue]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&black]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~equalto~0 then if type(creature[legendary&green]|mybattlefield)~equalto~0 then if type(creature[legendary&blue]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[white;black]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~equalto~0 then if type(creature[legendary&red]|mybattlefield)~equalto~0 then if type(creature[legendary&black]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[white;green]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~equalto~0 then if type(creature[legendary&blue]|mybattlefield)~equalto~0 then if type(creature[legendary&black]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[white;red]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&white]|mybattlefield)~equalto~0 then if type(creature[legendary&red]|mybattlefield)~equalto~0 then if type(creature[legendary&black]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[blue;green]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&black]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~equalto~0 then if type(creature[legendary&red]|mybattlefield)~equalto~0 then if type(creature[legendary&white]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[blue;black]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~equalto~0 then if type(creature[legendary&white]|mybattlefield)~equalto~0 then if type(creature[legendary&black]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[blue;red]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&black]|mybattlefield)~morethan~0 then if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~equalto~0 then if type(creature[legendary&white]|mybattlefield)~equalto~0 then if type(creature[legendary&red]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[black;green]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&black]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~equalto~0 then if type(creature[legendary&white]|mybattlefield)~equalto~0 then if type(creature[legendary&green]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[black;red]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~equalto~0 then if type(creature[legendary&white]|mybattlefield)~equalto~0 then if type(creature[legendary&black]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[green;red]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&green]|mybattlefield)~morethan~0 then if type(creature[legendary&white]|mybattlefield)~equalto~0 then if type(creature[legendary&red]|mybattlefield)~equalto~0 then if type(creature[legendary&blue]|mybattlefield)~equalto~0 then if type(creature[legendary&black]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[green]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&black]|mybattlefield)~morethan~0 then if type(creature[legendary&white]|mybattlefield)~equalto~0 then if type(creature[legendary&red]|mybattlefield)~equalto~0 then if type(creature[legendary&blue]|mybattlefield)~equalto~0 then if type(creature[legendary&green]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[black]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&red]|mybattlefield)~morethan~0 then if type(creature[legendary&white]|mybattlefield)~equalto~0 then if type(creature[legendary&green]|mybattlefield)~equalto~0 then if type(creature[legendary&black]|mybattlefield)~equalto~0 then if type(creature[legendary&blue]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[red]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&white]|mybattlefield)~morethan~0 then if type(creature[legendary&blue]|mybattlefield)~equalto~0 then if type(creature[legendary&green]|mybattlefield)~equalto~0 then if type(creature[legendary&black]|mybattlefield)~equalto~0 then if type(creature[legendary&red]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[white]|mylibrary) moveto(myhand) and!( shuffle )!
auto=if type(creature[legendary&blue]|mybattlefield)~morethan~0 then if type(creature[legendary&red]|mybattlefield)~equalto~0 then if type(creature[legendary&green]|mybattlefield)~equalto~0 then if type(creature[legendary&black]|mybattlefield)~equalto~0 then if type(creature[legendary&white]|mybattlefield)~equalto~0 then name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) name(Search card) target(*[blue]|mylibrary) moveto(myhand) and!( shuffle )!
text=The Ring tempts you. Search your library for a card that shares a color with a legendary creature you control, reveal it, put it into your hand, then shuffle.
mana={1}{U}{B}
type=Sorcery
[/card]
[card]
name=Rionya, Fire Dancer
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~0}:name(Copy creature) target(other creature|mybattlefield) clone with(unearth,haste)
auto=@each my combatbegins restriction{thisturn(*[instant;sorcery]|mystack)~equalto~1}:name(Copy creature) target(other creature|mybattlefield) transforms((,newability[clone with(unearth^haste)],newability[clone with(unearth^haste)])) oneshot
@@ -80090,6 +80303,17 @@ power=3
toughness=4
[/card]
[card]
name=Samwise Gamgee
auto=@movedTo(other creature[-token]|myBattlefield):name(Create food) token(Food)
auto={S(food|mybattlefield)}{S(food|mybattlefield)}{S(food|mybattlefield)}:name(Reutn historic card) target(*[artifact;legendary;saga]|mygraveyard) moveto(myhand)
text=Whenever another nontoken creature enters the battlefield under your control, create a Food token. (It's an artifact with "{2}, Sacrifice this artifact: You gain 3 life.") -- Sacrifice three Foods: Return target historic card from your graveyard to your hand. (Artifacts, legendaries, and Sagas are historic.)
mana={G}{W}
type=Legendary Creature
subtype=Halfling Peasant
power=2
toughness=2
[/card]
[card]
name=Samwise the Stouthearted
abilities=flash
auto=may name(Return a permanent) target(*[-instant&-sorcery&fresh]|mygraveyard) moveto(myhand) and!( ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller )!
@@ -80732,6 +80956,17 @@ power=0
toughness=3
[/card]
[card]
name=Saruman of Many Colors
auto=@targeted(this) from(*|opponentzones):choice name(This spell costs a discard) name(This spell costs a discard) target(*|opponentzones) transforms((,newability[choice name(Counter spell) target(*|mystack) fizzle],newability[if type(enchantment|myhand)~morethan~0 then choice name(Discard an enchantment) name(Discard an enchantment) target(enchantment|myhand) reject],newability[if type(*[instant;sorcery]|myhand)~morethan~0 then choice name(Discard an instant or sorcery) name(Discard an instant or sorcery) target(*[instant;sorcery]|myhand) reject])) oneshot
auto=@movedto(*|mystack) restriction{thisturn(*|mystack)~equalto~1,type(*|opponentlibrary)~morethan~0}:name(Opponent mills 2 cards) deplete:2 opponent && ability$!name(Exile and cast copy) name(Exile and cast copy) target(*[enchantment;instant;sorcery]|opponentgraveyard) moveto(opponentexile) and!( activate castcard(copied) )!!$ controller
text=Ward-Discard an enchantment, instant, or sorcery card. -- Whenever you cast your second spell each turn, each opponent mills two cards. When one or more cards are milled this way, exile target enchantment, instant, or sorcery card with equal or lesser mana value than that spell from an opponent's graveyard. Copy the exiled card. You may cast the copy without paying its mana cost.
mana={3}{W}{U}{B}
type=Legendary Creature
subtype=Avatar Wizard
power=5
toughness=4
[/card]
[card]
name=Saruman the White
auto=_WARD_(2)
auto=@movedto(*|mystack) restriction{thisturn(*|mystack)~equalto~1,type(army|mybattlefield)~morethan~0}:name(Put 1/1 counters) name(Put 1/1 counters) target(army|myBattlefield) transforms((Orc,newability[counter(1/1.2)])) forever
@@ -80861,6 +81096,19 @@ power=9
toughness=9
[/card]
[card]
name=Sauron, the Dark Lord
auto=@targeted(this) from(*|opponentzones):choice name(This spell costs a sacrifice) name(This spell costs a sacrifice) target(*|opponentzones) transforms((,newability[choice name(Counter spell) target(*|mystack) fizzle],newability[if type(artifact[legendary]|myBattlefield)~morethan~0 then choice name(Sacrifice a legendary artifact) name(Sacrifice a legendary artifact) target(artifact[legendary]|mybattlefield) sacrifice],newability[if type(creature[legendary]|myBattlefield)~morethan~0 then choice name(Sacrifice a legendary creature) name(Sacrifice a legendary creature) target(creature[legendary]|mybattlefield) sacrifice])) oneshot
auto=@movedTo(*|opponentstack):name(Amass orcs 1) ability$!name(Amass orcs 1) _AMASSORC1_!$ controller
auto=@combatdamaged(player) from(army|mybattlefield):name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller
auto=@ringtemptedof(player):may name(Discard and draw) discard:type:*:myhand controller && draw:4 controller
text=Ward-Sacrifice a legendary artifact or legendary creature. -- Whenever an opponent casts a spell, amass Orcs 1. -- Whenever an Army you control deals combat damage to a player, the Ring tempts you. -- Whenever the Ring tempts you, you may discard your hand. If you do, draw four cards.
mana={3}{U}{B}{R}
type=Legendary Creature
subtype=Avatar Horror
power=7
toughness=6
[/card]
[card]
name=Sauron, the Necromancer
abilities=menace
auto=_ATTACKING_name(Exile creature) target(creature|mygraveyard) moveto(myexile) and!( clone with(battleready) and!( transforms((removecreaturesubtypes,removemc,setpower=3,settoughness=3,black,newability[becomes(Wraith) forever],newability[menace],newability[@next endofturn restriction{type(Sauron^ the Necromancer[ringbearer]|mybattlefield)~equalto~0}:name(Sacrifice) sacrifice])) forever )! )!
@@ -81845,6 +82093,21 @@ power=2
toughness=2
[/card]
[card]
name=Scroll of Isildur
auto=counter(0/0,1,Lore)
auto=@each my firstmain:counter(0/0,1,Lore)
auto=if type(artifact|battlefield)~morethan~0 then choice name(Gain control of artifact) name(Gain control of artifact) target(artifact|battlefield) steal and!( ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller )!
auto=if type(artifact|battlefield)~morethan~0 then choice name(Don't gain control) name(Don't gain control) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller
auto=if type(artifact|battlefield)~equalto~0 then name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}=) may name(Tap 2 creatures) name(Tap 2 creatures) target(<upto:2>creature|battlefield) transforms((,newability[tap],newability[counter(0/0.1.Stun)])) oneshot
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) name(Draw cards) name(Draw cards) draw:type:creature[tapped]:opponentbattlefield controller
auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) sacrifice(this)
text=(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.) -- I - Gain control of up to one target artifact for as long as you control Scroll of Isildur. The Ring tempts you. -- II - Tap up to two target creatures. Put a stun counter on each of them. -- III - Draw a card for each tapped creature target opponent controls.
mana={2}{U}
type=Enchantment
subtype=Saga
[/card]
[card]
name=Scrollshift
target=artifact,creature,enchantment|myBattlefield
auto=(blink)
@@ -83461,6 +83724,13 @@ power=1
toughness=4
[/card]
[card]
name=Shadow Summoning
auto=name(Create 2 spirits) token(Spirit,Creature Spirit,white,1/1,flying)*2 and!( tap(noevent) )!
text=Create two tapped 1/1 white Spirit creature tokens with flying.
mana={W}{B}
type=Sorcery
[/card]
[card]
name=Shadow of the Enemy
auto=choice name(Exile opponent graveyard) token(ShadowEmblem,Emblem,0/0,shroud,indestructible,notrigger) and!( transforms((,newability[all(*|opponentgraveyard) moveto(opponentexile) and!( if cantargetcard(*[-land]|*) then counter(0/0.1.ShadowExiled) notrg )!],newability[{0}:name(Cast from opponent exile) target(*[counter{0/0.1.ShadowExiled}]|opponentexile) moveto(myexile) and!( transforms((,newability[counter(0/0.1.ShadowExiled) notrg],newability[canplayfromexile],newability[anytypeofmana],newability[phaseaction[endofturn once checkex] moveTo(ownerexile)],newability[phaseaction[untap once checkex] counter(0/0.1.ShadowExiled) notrg])) ueot )!])) forever )!
auto=choice name(Exile your graveyard) all(*|mygraveyard) moveto(myexile) and!( if cantargetcard(*[-land]|*) then transforms((,newability[canplayfromexile forever],newability[anytypeofmana forever])) forever )!
@@ -83507,6 +83777,17 @@ power=2
toughness=2
[/card]
[card]
name=Shadowfax, Lord of Horses
auto=lord(horse|myBattlefield) haste
auto=_ATTACKING_may name(Put creature in play) target(creature[power<=pminus1minusend]|myhand) readytofight
text=Horses you control have haste. (They can attack and {T} as soon as they come under your control.) -- Whenever Shadowfax, Lord of Horses attacks, you may put a creature card with lesser power from your hand onto the battlefield tapped and attacking.
mana={3}{R}{W}
type=Legendary Creature
subtype=Horse
power=4
toughness=4
[/card]
[card]
name=Shadowgrange Archfiend
abilities=madness
autoexile=restriction{discarded} pay({2}{B}) name(pay {2}{B} to cast) activate name(pay {2}{B} to cast) castcard(alternative)?name(put in graveyard) moveto(ownergraveyard)
@@ -83599,6 +83880,16 @@ power=3
toughness=3
[/card]
[card]
name=Shagrat, Loot Bearer
auto=@combat(attacking) source(this):may name(Attach equipment) target(equipment|myBattlefield) transforms((,newability[rehook all(Shagrat^ Loot Bearer[attacking]|myBattlefield)],newability[all(Shagrat^ Loot Bearer[attacking]|myBattlefield) transforms((,newability[if type(army|mybattlefield)~morethan~0 then name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|mybattlefield) counter(1/1.gear) else name(Create Orc Army) token(Orc Army) and!( name(Put 1/1 counters) notatarget(army|mybattlefield) counter(1/1.gear) )!])) oneshot])) oneshot
text=Whenever Shagrat, Loot Bearer attacks, attach up to one target Equipment to it. Then amass Orcs X, where X is the number of Equipment attached to Shagrat. (Control of the Equipment doesn't change. 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.)
mana={2}{B}{R}
type=Legendary Creature
subtype=Orc Soldier
power=4
toughness=4
[/card]
[card]
name=Shaile, Dean of Radiance
abilities=flying,vigilance
other={2}{B}{B} name(Embrose, Dean of Shadow)
@@ -91005,6 +91296,15 @@ mana={U}
type=Instant
[/card]
[card]
name=Stew the Coneys
target=creature|mybattlefield
auto=name(Deal damage) transforms((,newability[name(Deal damage) name(Deal damage) damage:power target(creature|opponentbattlefield)])) oneshot
auto=token(Food)
text=Target creature you control deals damage equal to its power to target creature you don't control. Create a Food token. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.")
mana={2}{G}
type=Instant
[/card]
[card]
name=Steward of Solidarity
auto=@exerted(this):token(Warrior,creature Warrior,1/1,white,vigilance)
auto={T}:exert
@@ -91914,6 +92214,16 @@ power=1
toughness=3
[/card]
[card]
name=Strider, Ranger of the North
auto=@movedTo(land|myBattlefield):name(Creature gains 1/1) target(creature|battlefield) transforms((,newability[1/1],newability[this(cantargetcard(*[power>=4]) first strike])) ueot
text=Landfall - Whenever a land enters the battlefield under your control, target creature gets +1/+1 until end of turn. Then if that creature has power 4 or greater, it gains first strike until end of turn.
mana={2}{R}{G}
type=Legendary Creature
subtype=Human Ranger
power=4
toughness=4
[/card]
[card]
name=Strike It Rich
auto=token(Treasure)
flashback={2}{R}
@@ -92873,6 +93183,14 @@ power=6
toughness=5
[/card]
[card]
name=Surrounded by Orcs
auto=if type(army|mybattlefield)~morethan~0 then name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.3)],newability[choice name(Opponent mills cards) deplete:power opponent],newability[choice name(You mill cards) deplete:power controller])) forever
auto=if type(army|mybattlefield)~equalto~0 then name(Create Orc Army) name(Create Orc Army) token(Orc Army) and!( transforms((,newability[counter(1/1.3)],newability[choice name(Opponent mills cards) deplete:power opponent],newability[choice name(You mill cards) deplete:power controller])) forever )!
text=Amass Orcs 3, then target player mills X cards, where X is the amassed Army's power. (To amass Orcs 3, put three +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.)
mana={3}{U}
type=Sorcery
[/card]
[card]
name=Surtland Elementalist
other={7}{U}{U} name(Cast wihtout giant)
otherrestriction=type(giant|myhand)~equalto~0
@@ -95826,6 +96144,19 @@ type=Land
subtype=Sphere
[/card]
[card]
name=The Balrog, Durin's Bane
abilities=haste
anyzone=@sacrificed(*|battlefield):name(Cost 1 less) transforms((,newability[changecost(colorless:-1)])) ueot
auto=cantbeblockedby(creature[-legendary])
auto=_DIES_name(Destroy artifact or creature) target(*[creature;artifact]|opponentbattlefield) destroy
text=This spell costs {1} less to cast for each permanent sacrificed this turn. -- Haste -- The Balrog, Durin's Bane can't be blocked except by legendary creatures. -- When The Balrog dies, destroy target artifact or creature an opponent controls.
mana={5}{B}{R}
type=Legendary Creature
subtype=Avatar Demon
power=7
toughness=5
[/card]
[card]
name=The Balrog, Flame of Udun
abilities=trample
auto=@movedto(creature[legendary]|graveyard) from(battlefield):name(Put on bottom) bottomoflibrary
@@ -96521,6 +96852,19 @@ type=Land
subtype=Sphere
[/card]
[card]
name=The Mouth of Sauron
auto=if type(army|mybattlefield)~morethan~0 then choice name(Opponent mills 3 cards) name(Opponent mills 3 cards) deplete:3 opponent && ability$!name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.type:*:opponentgraveyard)])) forever!$ controller
auto=if type(army|mybattlefield)~equalto~0 then choice name(Opponent mills 3 cards) name(Opponent mills 3 cards) deplete:3 opponent && token(Orc Army) and!( name(Put 1/1 counters) counter(1/1.type:*:opponentgraveyard) notatarget(army|myBattlefield) )!
auto=if type(army|mybattlefield)~morethan~0 then choice name(You mill 3 cards) name(You mill 3 cards) deplete:3 controller && ability$!name(Put 1/1 counters) name(Put 1/1 counters) notatarget(army|myBattlefield) transforms((Orc,newability[counter(1/1.type:*:mygraveyard)])) forever!$ controller
auto=if type(army|mybattlefield)~equalto~0 then choice name(You mill 3 cards) name(You mill 3 cards) deplete:3 controller && token(Orc Army) and!( name(Put 1/1 counters) counter(1/1.type:*:mygraveyard) notatarget(army|myBattlefield) )!
text=When The Mouth of Sauron enters the battlefield, target player mills three cards. Then amass Orcs X, where X is the number of instant and sorcery cards in that player's graveyard. (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.)
mana={3}{U}{B}
type=Legendary Creature
subtype=Human Advisor
power=3
toughness=4
[/card]
[card]
name=The Mycosynth Gardens
auto={T}:add{C}
auto={1}{T}:add{W}
@@ -99705,6 +100049,15 @@ type=Enchantment
subtype=Aura
[/card]
[card]
name=Treason of Isengard
auto=if type(*[instant;sorcery]|mygraveyard)~morethan~0 then choice name(Return instant or sorcery) name(Return instant or sorcery) target(*[instant;sorcery]|mygraveyard) moveto(mylibrary) and!( ability$!name(Amass orcs 2) _AMASSORC2_!$ controller )!
auto=if type(*[instant;sorcery]|mygraveyard)~morethan~0 then choice name(Don't return any spell) name(Don't return any spell) ability$!name(Amass orcs 2) _AMASSORC2_!$ controller
auto=if type(*[instant;sorcery]|mygraveyard)~equalto~0 then name(Amass orcs 2) ability$!name(Amass orcs 2) _AMASSORC2_!$ controller
text=Put up to one target instant or sorcery card from your graveyard on top of your library. -- Amass Orcs 2. (To amass Orcs 2, put two +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.)
mana={2}{U}
type=Sorcery
[/card]
[card]
name=Treasure
auto={T}{S}:add{W}
auto={T}{S}:add{U}

View File

@@ -8133,7 +8133,7 @@ int ATransformer::destroy()
for (unsigned int i = 0;i < newAbilities[_target].size(); i++)
{
// The mutated cards probably cause a double free error and a crash in Wagic, so for now they have been exluded...
if(newAbilities[_target].at(i) && !_target->mutation && _target->currentZone != _target->owner->game->library && source->currentZone != NULL && source->name != "")
if(newAbilities[_target].at(i) && !_target->mutation && _target->currentZone != _target->owner->game->library && !(_target->name == "" && (UYNT || UENT)))
{
newAbilities[_target].at(i)->forceDestroy = 1;
newAbilities[_target].at(i)->removeFromGame();

View File

@@ -3491,13 +3491,18 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
}
replace(splitToken[1].begin(), splitToken[1].end(), '^', ','); // To allow the usage of ^ instead of , char (e.g. using token keyword inside transforms)
int tokenId = atoi(splitToken[1].c_str());
MTGCardInstance * creator = NULL;
if(card && card->name.empty() && card->storedSourceCard) // Fix for token creation inside ability$!!$ keyword.
creator = card->storedSourceCard;
else
creator = card;
if (tokenId)
{
MTGCard * safetycard = MTGCollection()->getCardById(tokenId);
if (!safetycard) //Error, card not foudn in DB
return NEW ATokenCreator(observer, id, card, target, NULL, "ID NOT FOUND", "ERROR ID",0, 0, "","", NULL,0);
return NEW ATokenCreator(observer, id, creator, target, NULL, "ID NOT FOUND", "ERROR ID", 0, 0, "", "", NULL, 0);
ATokenCreator * tok = NEW ATokenCreator(observer, id, card,target, NULL, tokenId, starfound, multiplier, who);
ATokenCreator * tok = NEW ATokenCreator(observer, id, creator, target, NULL, tokenId, starfound, multiplier, who);
tok->oneShot = 1;
//andability
if(storedAndAbility.size())
@@ -3523,7 +3528,7 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
MTGCard * safetycard = MTGCollection()->getCardByName(cardName);
if (safetycard) //lets try constructing it then,we didnt find it by name
{
ATokenCreator * tok = NEW ATokenCreator(observer, id, card, target, NULL, cardName, starfound, multiplier, who);
ATokenCreator * tok = NEW ATokenCreator(observer, id, creator, target, NULL, cardName, starfound, multiplier, who);
tok->oneShot = 1;
if(!sabilities.empty())
tok->sabilities = sabilities;
@@ -3571,7 +3576,7 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
parsePowerToughness(spt, &power, &toughness);
ATokenCreator * tok = NEW ATokenCreator(
observer, id, card,target, NULL, sname, stypes, power + value, toughness + value,
observer, id, creator, target, NULL, sname, stypes, power + value, toughness + value,
sabilities, starfound, multiplier, who, aLivingWeapon, spt, cID);
tok->oneShot = 1;
if(aLivingWeapon)
@@ -3600,15 +3605,21 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
myMultiplierfound = myMultiplierfound.substr(0,myMultiplierEnd);
multiplier = NEW WParsedInt(myMultiplierfound, spell, card);
}
MTGCardInstance * creator = NULL;
if(card && card->name.empty() && card->storedSourceCard) // Fix for token creation inside ability$!!$ keyword.
creator = card->storedSourceCard;
else
creator = card;
int mytokenId = atoi(makeToken[1].c_str());
if (mytokenId)
{
MTGCard * mysafetycard = MTGCollection()->getCardById(mytokenId);
if (!mysafetycard) //Error, card not foudn in DB
return NEW ATokenCreator(observer, id, card, target, NULL, "ID NOT FOUND", "ERROR ID",0, 0, "","", NULL,0);
return NEW ATokenCreator(observer, id, creator, target, NULL, "ID NOT FOUND", "ERROR ID", 0, 0, "", "", NULL, 0);
ATokenCreator * mtok = NEW ATokenCreator(observer, id, card,target, NULL, mytokenId, myMultiplierfound, multiplier, who);
ATokenCreator * mtok = NEW ATokenCreator(observer, id, creator, target, NULL, mytokenId, myMultiplierfound, multiplier, who);
mtok->oneShot = 1;
//andability
if(storedAndAbility.size())
@@ -3629,7 +3640,7 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
MTGCard * mysafetycard = MTGCollection()->getCardByName(cardName);
if (mysafetycard) //lets try constructing it then,we didnt find it by name
{
ATokenCreator * mtok = NEW ATokenCreator(observer, id, card, target, NULL, cardName, myMultiplierfound, multiplier, who);
ATokenCreator * mtok = NEW ATokenCreator(observer, id, creator, target, NULL, cardName, myMultiplierfound, multiplier, who);
mtok->oneShot = 1;
//andability
if(storedAndAbility.size())
@@ -3675,7 +3686,7 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
parsePowerToughness(spt, &power, &toughness);
ATokenCreator * mtok = NEW ATokenCreator(
observer, id, card,target, NULL, sname, stypes, power + value, toughness + value,
observer, id, creator, target, NULL, sname, stypes, power + value, toughness + value,
sabilities, myMultiplierfound, multiplier, who, aLivingWeapon, spt, cID);
mtok->oneShot = 1;
if(aLivingWeapon)