diff --git a/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt b/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt index 222b8d4f6..06dfc7e3c 100644 --- a/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt +++ b/projects/mtg/bin/Res/missing_cards_by_sets/missingCardList.txt @@ -352,4 +352,3 @@ Myojin of Cryptic Dreams Lithoform Engine Reality Spasm Suffer the Past -Grishnákh, Brash Instigator diff --git a/projects/mtg/bin/Res/sets/LTR/_cards.dat b/projects/mtg/bin/Res/sets/LTR/_cards.dat index 9e2a4ee0f..326a02c21 100644 --- a/projects/mtg/bin/Res/sets/LTR/_cards.dat +++ b/projects/mtg/bin/Res/sets/LTR/_cards.dat @@ -1200,7 +1200,7 @@ id=112176 rarity=U [/card] [card] -primitive=Grishnákh, Brash Instigator +primitive=Grishnakh, Brash Instigator id=112178 rarity=U [/card] diff --git a/projects/mtg/bin/Res/sets/primitives/_macros.txt b/projects/mtg/bin/Res/sets/primitives/_macros.txt index ddc8ca356..628e4d87c 100644 --- a/projects/mtg/bin/Res/sets/primitives/_macros.txt +++ b/projects/mtg/bin/Res/sets/primitives/_macros.txt @@ -130,15 +130,15 @@ #AUTO_DEFINE _CITY'S_BLESSING_ aslongas(City's Blessing|mybattlefield)>0 # Monarch -#AUTO_DEFINE _MONARCH_CONTROLLER_ if type(The Monarch|battlefield)~lessthan~1 then token(The Monarch) else all(The Monarch|battlefield) moveto(mybattlefield) and!( transforms((,newability[becomesmonarch controller])) forever )! -#AUTO_DEFINE _MONARCH_OPPONENT_ if type(The Monarch|battlefield)~lessthan~1 then token(The Monarch) opponent else all(The Monarch|battlefield) moveto(opponentbattlefield) and!( transforms((,newability[becomesmonarch controller])) forever )! +#AUTO_DEFINE _MONARCH_CONTROLLER_ if type(The Monarch|battlefield)~lessthan~1 then token(The Monarch^notrigger) else all(The Monarch|battlefield) moveto(mybattlefield) and!( transforms((,newability[becomesmonarch controller])) forever )! +#AUTO_DEFINE _MONARCH_OPPONENT_ if type(The Monarch|battlefield)~lessthan~1 then token(The Monarch^notrigger) opponent else all(The Monarch|battlefield) moveto(opponentbattlefield) and!( transforms((,newability[becomesmonarch controller])) forever )! # Initiative -#AUTO_DEFINE _INITIATIVE_CONTROLLER_ if type(The Initiative|battlefield)~lessthan~1 then token(The Initiative) else all(The Initiative|battlefield) moveto(mybattlefield) and!( transforms((,newability[takesinitiative controller])) forever )! -#AUTO_DEFINE _INITIATIVE_OPPONENT_ if type(The Initiative|battlefield)~lessthan~1 then token(The Initiative) opponent else all(The Initiative|battlefield) moveto(opponentbattlefield) and!( transforms((,newability[takesinitiative controller])) forever )! +#AUTO_DEFINE _INITIATIVE_CONTROLLER_ if type(The Initiative|battlefield)~lessthan~1 then token(The Initiative^notrigger) else all(The Initiative|battlefield) moveto(mybattlefield) and!( transforms((,newability[takesinitiative controller])) forever )! +#AUTO_DEFINE _INITIATIVE_OPPONENT_ if type(The Initiative|battlefield)~lessthan~1 then token(The Initiative^notrigger) opponent else all(The Initiative|battlefield) moveto(opponentbattlefield) and!( transforms((,newability[takesinitiative controller])) forever )! # The Ring Tempts -#AUTO_DEFINE _RINGTEMPTS_ if type(The Ring|mybattlefield)~morethan~0 then all(The Ring|mybattlefield) transforms((,newability[theringtempts:1 controller],newability[name(Chose a ring bearer) target(creature|mybattlefield) becomesringbearer])) oneshot else token(The Ring) and!( theringtempts:1 controller and!( name(Choose a ring bearer) target(creature|myBattlefield) becomesringbearer )! )! +#AUTO_DEFINE _RINGTEMPTS_ if type(The Ring|mybattlefield)~morethan~0 then all(The Ring|mybattlefield) transforms((,newability[theringtempts:1 controller],newability[name(Chose a ring bearer) target(creature|mybattlefield) becomesringbearer])) oneshot else token(The Ring^notrigger) and!( theringtempts:1 controller and!( name(Choose a ring bearer) target(creature|myBattlefield) becomesringbearer )! )! # Explore, not implemented #AUTO_DEFINE _EXPLORE_ reveal:1 optionone if type(land|reveal)~lessthan~1 then transforms((,newability[counter(1/1)])) optiononeend optiontwo if type(land|reveal)~morethan~0 then name(move to Hand) target(<1>*|reveal) moveto(myHand) else transforms((,newability[Choice name(back to library) target(<1>*|reveal) moveto(mylibrary)],newability[Choice name(put into Graveyard) target(<1>*|reveal) moveto(myGraveyard)])) optiontwoend revealend limit:1 diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index a22717546..3c0bdba4b 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 27-06-2023 +#I sorted this programmatically - Thanks to Vitty85 28-06-2023 [card] name=+2 Mace auto={3}:equip @@ -2308,6 +2308,16 @@ text={T}: Add one mana of any color to your mana pool. Spend this mana only to c type=Land [/card] [card] +name=Anduril, Flame of the West +auto=teach(creature[legendary]) transforms((,newability[3/1],newability[@combat(attacking) source(this):name(Create spirits) name(Create spirits) token(Spirit^Creature Spirit^1/1^white^battleready^flying)*2])) +auto=teach(creature[-legendary]) transforms((,newability[3/1],newability[@combat(attacking) source(this):name(Create spirits) name(Create spirits) token(Spirit^Creature Spirit^1/1^white^flying)*2 and!( tap(noevent) )!])) +auto={2}:equip +text=Equipped creature gets +3/+1. -- Whenever equipped creature attacks, create two tapped 1/1 white Spirit creature tokens with flying. If that creature is legendary, instead create two of those tokens that are tapped and attacking. -- Equip {2} +mana={3} +type=Legendary Artifact +subtype=Equipment +[/card] +[card] name=Angel Ang abilities=flying type=Creature @@ -4514,6 +4524,17 @@ power=3 toughness=3 [/card] [card] +name=Arwen Undomiel +auto=@scryed(*|mybattlefield,mystack):name(Put 1/1 counter) target(creature|battlefield) counter(1/1) +auto={4}{G}{U}:name(Scry 2) _SCRY2_ +text=Whenever you scry, put a +1/+1 counter on target creature. -- {4}{G}{U}: Scry 2. +mana={G}{U} +type=Legendary Creature +subtype=Elf Noble +power=2 +toughness=2 +[/card] +[card] name=Arwen's Gift anyzone=aslongas(creature[legendary]|mybattlefield) altercost(colorless,-1) >1 auto=scry:2 scrycore delayed dontshow draw:2 controller scrycoreend scryend @@ -6130,6 +6151,16 @@ mana={1}{W} type=Enchantment [/card] [card] +name=Bag End Porter +auto=_ATTACKING_name(Gains X/X) type:creature[legendary]:mybattlefield/type:creature[legendary]:mybattlefield ueot +text=Whenever Bag End Porter attacks, it gets +X/+X until end of turn, where X is the number of legendary creatures you control. +mana={3}{G} +type=Creature +subtype=Dwarf +power=4 +toughness=4 +[/card] +[card] name=Bag of Devouring auto=@sacrificed(other artifact[-token]|mybattlefield):name(Exile artifact) transforms((,newability[name(Exile artifact) all(*[zpos=type:*:mygraveyard]|mygraveyard) moveto(ownerexile) and!( counter(0/0.1.BagExiled) )!])) oneshot auto=@sacrificed(creature[-token;-artifact]|mybattlefield):name(Exile creature) transforms((,newability[name(Exile creature) all(*[zpos=type:*:mygraveyard]|mygraveyard) moveto(ownerexile) and!( counter(0/0.1.BagExiled) )!])) oneshot @@ -6807,6 +6838,16 @@ power=3 toughness=4 [/card] [card] +name=Barrow-Blade +auto=teach(creature) 1/1 +auto=@combat(blocking,blocked) source(mytgt) from(creature):name(Creature loses all abilities) all(trigger[from]) name(Creature loses all abilities) transforms((,newability[loseabilities])) ueot +auto={1}:equip +text=Equipped creature gets +1/+1. -- Whenever equipped creature blocks or becomes blocked by a creature, that creature loses all abilities until end of turn. -- Equip {1} ({1}: Attach to target creature you control. Equip only as a sorcery.) +mana={1} +type=Artifact +subtype=Equipment +[/card] +[card] name=Barrowin of Clan Undurr auto=if compare(type:*[nodngplr]:mybattlefieldplustype:*[nodngopp]:opponentbattlefieldplusend)~equalto~0 then name(Venture into dungeon) name(Venture into dungeon) transforms((,newability[if type(*[dungeon]|mycommandzone)~morethan~0 then name(Explore the dungeon) name(Explore the dungeon) all(*[dungeon]|mycommandzone) counter(0/0.1.Explore)],newability[if type(*[dungeon]|mycommandzone)~equalto~0 then name(Choose a new dungeon) name(Choose a new dungeon) target(*[dungeon]|mysideboard) moveTo(mycommandzone) and!( counter(0/0.1.Explore) )!])) oneshot auto=@combat(attacking) source(this) restriction{compare(pdungeoncompleted)~morethan~0}:may name(Return creature) target(creature[manacost<=3]|mygraveyard) moveto(myBattlefield) @@ -8014,6 +8055,18 @@ mana={3}{R}{D(other *|myhand)} type=Instant [/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 +auto=@movedto(this|nonbattlezone) from(battlefield):name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +text=When Bilbo, Retired Burglar enters or leaves the battlefield, the Ring tempts you. -- Whenever Bilbo deals combat damage to a player, create a Treasure token. +mana={1}{U}{R} +type=Legendary Creature +subtype=Halfling Rogue +power=1 +toughness=3 +[/card] +[card] name=Bilious Skulldweller abilities=deathtouch,poisontoxic text=Deathtouch -- Toxic 1 (Players dealt combat damage by this creature also get a poison counter.) @@ -10396,6 +10449,15 @@ power=1 toughness=1 [/card] [card] +name=Bombadil's Song +target=creature|myBattlefield +auto=transforms((,newability[1/1],newability[opponentshroud])) ueot +auto=ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +text=Target creature you control gets +1/+1 and gains hexproof until end of turn. The Ring tempts you. (A creature with hexproof can't be the target of spells of abilities your opponents control.) +mana={1}{G} +type=Instant +[/card] +[card] name=Bombard target=creature auto=damage:4 @@ -11344,6 +11406,16 @@ text={T}: Add {G}. // Boulderloft Pathway type=Land [/card] [card] +name=Brandywine Farmer +auto=name(Create food) token(Food) +text=When Brandywine Farmer enters or leaves the battlefield, create a Food token. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") +mana={2}{G} +type=Creature +subtype=Halfling Peasant +power=1 +toughness=1 +[/card] +[card] name=Brash Taunter abilities=indestructible auto=_ENRAGE_damage:thatmuch target(opponent) @@ -12564,6 +12636,16 @@ mana={G} type=Sorcery [/card] [card] +name=Butterbur, Bree Innkeeper +auto=@each my endofturn restriction{type(food|mybattlefield)~equalto~0}:name(Create food) token(Food) +text=At the beginning of your end step, if you don't control a Food, create a Food token. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") +mana={2}{G}{W} +type=Legendary Creature +subtype=Human Peasant +power=3 +toughness=3 +[/card] +[card] name=Buy Your Silence target=*[-land] auto=moveto(exile) && create(Treasure) targetController @@ -14158,6 +14240,17 @@ power=3 toughness=3 [/card] [card] +name=Celeborn the Wise +auto=@combat(attacking) source(elf|mybattlefield) turnlimited:name(Scry 1) _SCRY1_ +auto=@scryed(*|mybattlefield,mystack):name(Gains x/x) scryedcards/scryedcards ueot +text=Whenever you attack with one or more Elves, scry 1. -- Whenever you scry, Celeborn the Wise gets +1/+1 until end of turn for each card you looked at while scrying this way. +mana={3}{G} +type=Legendary Creature +subtype=Elf Noble +power=3 +toughness=3 +[/card] +[card] name=Celebrate the Harvest auto=if type(creature[power=0]|mybattlefield)~morethan~0 then ability$!may name(Search basic land) name(Search basic land) target(land[basic]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ controller auto=if type(creature[power=1]|mybattlefield)~morethan~0 then ability$!may name(Search basic land) name(Search basic land) target(land[basic]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )! !$ controller @@ -14749,6 +14842,16 @@ mana={1}{R}{W} type=Instant [/card] [card] +name=Chance-Met Elves +auto=@scryed(*|mybattlefield,mystack) turnlimited:name(Put 1/1 counter) counter(1/1) +text=Whenever you scry, put a +1/+1 counter on Chance-Met Elves. This ability triggers only once each turn. +mana={2}{G} +type=Creature +subtype=Elf Warrior +power=3 +toughness=2 +[/card] +[card] name=Chancellor of the Annex abilities=flying autohand=@each upkeep restriction{compare(currentturn)~lessthan~2}:may name(Reveal Chancellor of the Annex) transforms((,newability[@movedto(*|opponentstack) once:all(trigger[to]) transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?fizzle])) forever])) forever @@ -22179,6 +22282,21 @@ mana={1}{U} type=Instant [/card] [card] +name=Delighted Halfling +auto={T}:add{C} +auto=aslongas(*[-land&legendary]|myrestrictedcastingzone) {T}:name(Add white) name(Add white) add{W} and!( name(Legendary spell can't be countered) name(Legendary spell can't be countered) target(creature[legendary]|myrestrictedcastingzone) transforms((,newability[nofizzle])) ueot )! +auto=aslongas(*[-land&legendary]|myrestrictedcastingzone) {T}:name(Add blue) name(Add blue) add{U} and!( name(Legendary spell can't be countered) name(Legendary spell can't be countered) target(creature[legendary]|myrestrictedcastingzone) transforms((,newability[nofizzle])) ueot )! +auto=aslongas(*[-land&legendary]|myrestrictedcastingzone) {T}:name(Add green) name(Add green) add{G} and!( name(Legendary spell can't be countered) name(Legendary spell can't be countered) target(creature[legendary]|myrestrictedcastingzone) transforms((,newability[nofizzle])) ueot )! +auto=aslongas(*[-land&legendary]|myrestrictedcastingzone) {T}:name(Add black) name(Add black) add{B} and!( name(Legendary spell can't be countered) name(Legendary spell can't be countered) target(creature[legendary]|myrestrictedcastingzone) transforms((,newability[nofizzle])) ueot )! +auto=aslongas(*[-land&legendary]|myrestrictedcastingzone) {T}:name(Add red) name(Add red) add{R} and!( name(Legendary spell can't be countered) name(Legendary spell can't be countered) target(creature[legendary]|myrestrictedcastingzone) transforms((,newability[nofizzle])) ueot )! +text={T}: Add {C}. -- {T}: Add one mana of any color. Spend this mana only to cast a legendary spell, and that spell can't be countered. +mana={G} +type=Creature +subtype=Halfling Citizen +power=1 +toughness=2 +[/card] +[card] name=Delighted Killbot mana={2} type=Artifact Creature @@ -22462,6 +22580,17 @@ text=If you control two or more other lands, Den of the Bugbear enters the battl type=Land [/card] [card] +name=Denethor, Ruling Steward +auto=@each my endofturn restriction{myhasdeadcreature}:name(Create soldier) token(Human Soldier,Creature Human Soldier,1/1,white) +auto={2}{S(other creature|mybattlefield)}:name(Opponent loses life) lifeleech:-1 opponent +text=At the beginning of your end step, if a creature died under your control this turn, create a 1/1 white Human Soldier creature token. -- {2}, Sacrifice another creature: Each opponent loses 1 life and you gain 1 life. +mana={1}{W}{B} +type=Legendary Creature +subtype=Human Noble +power=2 +toughness=4 +[/card] +[card] name=Dennick, Pious Apparition backside=Dennick, Pious Apprentice abilities=flying,exiledeath @@ -26078,6 +26207,16 @@ type=Artifact subtype=Equipment [/card] [card] +name=Dunedain Rangers +auto=@movedTo(land|myBattlefield) restriction{type(*[ringbearer]|mybattlefield)~equalto~0}:name(The ring tempts you) name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +text=Landfall - Whenever a land enters the battlefield under your control, if you don't control a Ring-bearer, the Ring tempts you. +mana={3}{G} +type=Creature +subtype=Human Ranger +power=4 +toughness=4 +[/card] +[card] name=Dunes of the Dead auto={T}:Add{1} auto=_DIES_token(Zombie ,Creature Zombie,2/2,Black) @@ -27551,6 +27690,22 @@ type=Artifact subtype=Equipment [/card] [card] +name=Elven Chorus +auto=showfromtoplibrary,canplayfromlibrarytop +auto=lord(creature|myBattlefield) transforms((,newability[{T}:Add{B}],newability[{T}:Add{G}],newability[{T}:Add{U}],newability[{T}:Add{R}],newability[{T}:Add{W}])) +text=You may look at the top card of your library any time. -- You may cast creature spells from the top of your library. -- Creatures you control have "{T}: Add one mana of any color." +mana={3}{G} +type=Enchantment +[/card] +[card] +name=Elven Farsight +aicode=activate if type(creature[zpos=1]|mylibrary)~morethan~0 then draw:1 controller +auto=scry:3 scrycore delayed dontshow transforms((,newability[if type(creature[zpos=1]|mylibrary)~morethan~0 then name(Draw a card) name(Draw a card) draw:1 controller])) oneshot scrycoreend scryend +text=Scry 3, then you may reveal the top card of your library. If it's a creature card, draw a card. +mana={G} +type=Sorcery +[/card] +[card] name=Elvish Clancaller auto=lord(other elf|myBattlefield) +1/+1 auto={4}{G}{G}{T}:moveto(mybattlefield) target(Elvish Clancaller|mylibrary) @@ -28308,6 +28463,17 @@ power=4 toughness=4 [/card] [card] +name=Enraged Huorn +abilities=trample +auto=ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +text=Trample -- When Enraged Huorn enters the battlefield, the Ring tempts you. +mana={4}{G} +type=Creature +subtype=Treefolk +power=4 +toughness=5 +[/card] +[card] name=Enraged Killbot mana={2} type=Artifact Creature @@ -28326,6 +28492,42 @@ type=Artifact subtype=Equipment [/card] [card] +name=Ent's Fury +target=creature|mybattlefield +auto=if cantargetcard(*[power>=4]|*) then transforms((,newability[counter(1/1)],newability[1/1],newability[name(Fight another creature) target(creature|opponentbattlefield) dynamicability])) ueot +auto=if cantargetcard(*[power<=3]|*) then transforms((,newability[1/1],newability[name(Fight another creature) target(creature|opponentbattlefield) dynamicability])) ueot +text=Put a +1/+1 counter on target creature you control if its power is 4 or greater. Then that creature gets +1/+1 until end of turn and fights target creature you don't control. +mana={1}{G} +type=Sorcery +[/card] +[card] +name=Ent-Draught Basin +auto=aslongas(creature[power=0]|battlefield) {0}{T}:name(X=0) name(X=0) target(creature[power=0]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=1]|battlefield) {1}{T}:name(X=1) name(X=1) target(creature[power=1]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=2]|battlefield) {2}{T}:name(X=2) name(X=2) target(creature[power=2]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=3]|battlefield) {3}{T}:name(X=3) name(X=3) target(creature[power=3]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=4]|battlefield) {4}{T}:name(X=4) name(X=4) target(creature[power=4]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=5]|battlefield) {5}{T}:name(X=5) name(X=5) target(creature[power=5]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=6]|battlefield) {6}{T}:name(X=6) name(X=6) target(creature[power=6]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=7]|battlefield) {7}{T}:name(X=7) name(X=7) target(creature[power=7]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=8]|battlefield) {8}{T}:name(X=8) name(X=8) target(creature[power=8]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=9]|battlefield) {9}{T}:name(X=9) name(X=9) target(creature[power=9]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=10]|battlefield) {10}{T}:name(X=10) name(X=10) target(creature[power=10]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=11]|battlefield) {11}{T}:name(X=11) name(X=11) target(creature[power=11]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=12]|battlefield) {12}{T}:name(X=12) name(X=12) target(creature[power=12]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=13]|battlefield) {13}{T}:name(X=13) name(X=13) target(creature[power=13]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=14]|battlefield) {14}{T}:name(X=14) name(X=14) target(creature[power=14]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=15]|battlefield) {15}{T}:name(X=15) name(X=15) target(creature[power=15]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=16]|battlefield) {16}{T}:name(X=16) name(X=16) target(creature[power=16]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=17]|battlefield) {17}{T}:name(X=17) name(X=17) target(creature[power=17]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=18]|battlefield) {18}{T}:name(X=18) name(X=18) target(creature[power=18]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power=19]|battlefield) {19}{T}:name(X=19) name(X=19) target(creature[power=19]|battlefield) counter(1/1) asSorcery +auto=aslongas(creature[power>=20]|battlefield) {20}{T}:name(X=20) name(X=20) target(creature[power>=20]|battlefield) counter(1/1) asSorcery +text={X}, {T}: Put a +1/+1 counter on target creature with power X. Activate only as a sorcery. +mana={2} +type=Artifact +[/card] +[card] name=Enter the God-Eternals target=creature auto=damage:4 @@ -31117,6 +31319,19 @@ power=4 toughness=5 [/card] [card] +name=Fangorn, Tree Shepherd +auto=lord(treefolk|mybattlefield) vigilance +auto=mypoolsave(green) +auto=@combat(attacking) source(treefolk|mybattlefield):name(Add green mana) add{G}{G} +auto=@movedto(this|nonbattlezone) from(battlefield):name(Terminate effect) name(Terminate effect) transforms((,newability[mypoolsave(green) terminate])) oneshot +text=Treefolk you control have vigilance. -- Whenever one or more Treefolk you control attack, add twice that much {G}. -- You don't lose unspent green mana as steps and phases end. +mana={4}{G}{G}{G} +type=Legendary Creature +subtype=Treefolk +power=4 +toughness=10 +[/card] +[card] name=Far // Away abilities=hasnokicker other={2}{B} name(Away) @@ -31149,6 +31364,16 @@ power=3 toughness=3 [/card] [card] +name=Faramir, Prince of Ithilien +auto=@each opponent endofturn:if oppoattacked then name(Create soldier) name(Create soldier) token(Human Soldier,Creature Human Soldier,1/1,white)*3 else name(Draw a card) name(Draw a card) draw:1 controller +text=At the beginning of your end step, choose an opponent. At the beginning of that player's next end step, you draw a card if they didn't attack you that turn. Otherwise, create three 1/1 white Human Soldier creature tokens. +mana={2}{W}{U} +type=Legendary Creature +subtype=Human Noble +power=3 +toughness=3 +[/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 @@ -34419,6 +34644,15 @@ power=2 toughness=1 [/card] [card] +name=Friendly Rivalry +target=creature|opponentBattlefield +auto=becomes(tgt) ueot +auto=name(Choose a creature) name(Choose a creature) target(creature|mybattlefield) transforms((,newability[damage:power all(tgt|opponentbattlefield)],newability[may name(Choose another legendary creature) target(other creature[legendary]|mybattlefield) transforms((,newability[damage:power all(tgt|opponentbattlefield)])) ueot])) ueot +text=Target creature you control and up to one other target legendary creature you control each deal damage equal to their power to target creature you don't control. +mana={R}{G} +type=Instant +[/card] +[card] name=Frightful Delusion target=*|stack auto=fizzle @@ -34481,6 +34715,18 @@ power=3 toughness=2 [/card] [card] +name=Frodo Baggins +auto=name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +auto=@movedto(creature[legendary]|mybattlefield):name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +auto=@combat(attacking) source(this):if cantargetcard(*[ringbearer]|*) then name(Must be blocked) name(Must be blocked) ability$!name(Choose a blocker) notatarget(creature|myBattlefield) transforms((,newability[mustblock])) ueot!$ opponent +text=Whenever Frodo Baggins or another legendary creature enters the battlefield under your control, the Ring tempts you. -- As long as Frodo is your Ring-bearer, it must be blocked if able. +mana={G}{W} +type=Legendary Creature +subtype=Halfling Scout +power=1 +toughness=3 +[/card] +[card] name=Froghemoth abilities=trample,haste auto=@combatdamaged(player) from(this):name(Exile cards) transforms((,newability[name(Exile cards) target(*|opponentgraveyard) moveto(exile) and!( all(this) counter(1/1) && if cantargetcard(*[-creature]|*) then life:1 controller )!])) oneshot @@ -35074,6 +35320,38 @@ power=4 toughness=4 [/card] [card] +name=Galadhrim Bow +abilities=flash +auto=name(Attach to creature) rehook untp target(creature|mybattlefield) +auto=teach(creature) transforms((,newability[reach],newability[1/2])) +auto={2}:equip +text=Flash -- When Galadhrim Bow enters the battlefield, attach it to target creature you control. Untap that creature. -- Equipped creature gets +1/+2 and has reach. -- Equip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.) +mana={2}{G} +type=Artifact +subtype=Equipment +[/card] +[card] +name=Galadhrim Guide +auto=_SCRY2_ +text=When Galadhrim Guide enters the battlefield, scry 2. +mana={3}{G} +type=Creature +subtype=Elf Scout +power=3 +toughness=4 +[/card] +[card] +name=Galadriel of Lothlorien +auto=@bearerchosen(other creature|mybattlefield):name(Scry 3) _SCRY3_ +auto=@scryed(*|mybattlefield,mystack):may name(Reveal the top card) all(*[zpos=1]|mylibrary) moveto(myhand) and!( transforms((,newability[if cantargetcard(*[land]|*) then choice name(Put on battlefield) name(Put on battlefield) moveto(mybattlefield) and!( tap(noevent) )!],newability[if cantargetcard(*[-land]|*) then choice name(Put back) name(Put back) moveto(mylibrary)])) oneshot )! +text=Whenever the Ring tempts you, if you chose a creature other than Galadriel of Lothlorien as your Ring-bearer, scry 3. -- Whenever you scry, you may reveal the top card of your library. If a land card is revealed this way, put it onto the battlefield tapped. +mana={1}{G}{U} +type=Legendary Creature +subtype=Elf Noble +power=3 +toughness=3 +[/card] +[card] name=Galazeth Prismari abilities=flying auto=token(Treasure) @@ -35240,6 +35518,20 @@ power=3 toughness=4 [/card] [card] +name=Gandalf the Grey +auto=@movedTo(*[instant;sorcery]|mystack):name(Choose one) transforms((,newability[if compare(hascnttp)~equalto~0 then choice name(Tap or untap permanent) name(Tap or untap permanent) counter(0/0.1.Tp)],newability[if compare(hascntdmg)~equalto~0 then choice name(Damage opponent) name(Damage opponent) counter(0/0.1.Dmg)],newability[if compare(hascntcpy)~equalto~0 then choice name(Copy spell) name(Copy spell) counter(0/0.1.Cpy)],newability[if compare(hascntgan)~equalto~0 then choice name(Put on library top) name(Put on library top) counter(0/0.1.Gan)])) oneshot +auto=@counteradded(0/0,1,Tp) once:name(Tap or untap target permanent) target(*|battlefield) transforms((,newability[choice name(Tap) tap],newability[choice name(Untap) untap])) oneshot +auto=@counteradded(0/0,1,Dmg) once:name(Damage opponent) damage:3 opponent +auto=@counteradded(0/0,1,Cpy) once:name(Copy Spell) target(*[instant;sorcery]|mystack) transforms((,newability[activate castcard(copied noevent)])) oneshot +auto=@counteradded(0/0,1,Gan) once:name(Put on library top) moveto(mylibrary) +text=Whenever you cast an instant or sorcery spell, choose one that hasn't been chosen - -- You may tap or untap target permanent. -- Gandalf the Grey deals 3 damage to each opponent. -- Copy target instant or sorcery spell you control. You may choose new targets for the copy. -- Put Gandalf on top of its owner's library. +mana={3}{U}{R} +type=Legendary Creature +subtype=Avatar Wizard +power=3 +toughness=4 +[/card] +[card] name=Gandalf the White #MISSING: that ability triggers an additional time abilities=flash @@ -35836,6 +36128,18 @@ power=2 toughness=1 [/card] [card] +name=Generous Ent +abilities=reach +auto=token(Food) +autohand={1}{cycle}:name(Search forest) target(forest|myLibrary) moveTo(myHand) and!( shuffle )! +text=Reach -- When Generous Ent enters the battlefield, create a Food token. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") -- Forestcycling {1} ({1}, Discard this card: Search your library for a Forest card, reveal it, put it into your hand, then shuffle.) +mana={5}{G} +type=Creature +subtype=Treefolk +power=5 +toughness=7 +[/card] +[card] name=Generous Gift target=*|battlefield auto=destroy && _ELEPHANTTOKEN_ targetcontroller @@ -36569,6 +36873,17 @@ type=Enchantment subtype=Aura [/card] [card] +name=Gift of Strands +target=creature +abilities=flash +auto=_SCRY2_ +auto=teach(creature) 3/3 +text=Flash -- Enchant creature -- When Gift of Strands enters the battlefield, scry 2. -- Enchanted creature gets +3/+3. +mana={3}{G} +type=Enchantment +subtype=Aura +[/card] +[card] name=Gift of Strength target=creature auto=3/3 @@ -36727,6 +37042,15 @@ power=2 toughness=1 [/card] [card] +name=Gimli's Fury +target=creature +auto=transforms((,newability[3/2])) ueot +auto=if cantargetcard(*[legendary]|*) then transforms((,newability[trample])) ueot +text=Target creature gets +3/+2 until end of turn. If it's legendary, it also gains trample until end of turn. +mana={1}{R} +type=Instant +[/card] +[card] name=Gingerbread Cabin auto=aslongas(other land[forest]|myBattlefield) tap(noevent) <3 oneshot auto=aslongas(other land[forest]|myBattlefield) >2 token(Food) once @@ -38120,6 +38444,17 @@ mana={1} type=Artifact [/card] [card] +name=Goblin Fireleaper +auto={1}{R}:name(Gain 1/0) 1/0 ueot +auto=_DIES_name(Damage creature) damage:power target(creature|opponentbattlefield) +text={1}{R}: Goblin Fireleaper gets +1/+0 until end of turn. -- When Goblin Fireleaper dies, it deals damage equal to its power to target creature an opponent controls. +mana={1}{R} +type=Creature +subtype=Goblin Warrior +power=1 +toughness=1 +[/card] +[card] name=Goblin Flectomancer auto={S}:target(*[instant;sorcery]|stack) transforms((,newability[fizzle],newability[activate castcard(copied noevent)])) forever text=Sacrifice Goblin Flectomancer: You may change the targets of target instant or sorcery spell. @@ -40787,6 +41122,18 @@ power=2 toughness=3 [/card] [card] +name=Gwaihir the Windlord +abilities=flying,vigilance +anyzone=this(variable{pdrewcount}>1)while altercost(colorless,-2) +auto=lord(other bird|myBattlefield) vigilance +text=This spell costs {2} less to cast as long as you've drawn two or more cards this turn. -- Flying, vigilance -- Other Birds you control have vigilance. +mana={4}{W}{U} +type=Legendary Creature +subtype=Bird Noble +power=4 +toughness=4 +[/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 @@ -41502,6 +41849,17 @@ mana={2}{W} type=Enchantment [/card] [card] +name=Haradrim Spearmaster +abilities=reach +auto=@each my combatbegins:name(Another creature gains 1/0) target(other creature|myBattlefield) transforms((,newability[1/0])) ueot +text=Reach -- At the beginning of combat on your turn, another target creature you control gets +1/+0 until end of turn. +mana={2}{R} +type=Creature +subtype=Human Warrior +power=2 +toughness=3 +[/card] +[card] name=Harald Unites the Elves auto=counter(0/0,1,Lore) auto=@each my firstmain:counter(0/0,1,Lore) @@ -44024,6 +44382,14 @@ mana={5} type=Artifact [/card] [card] +name=Horn of Gondor +auto=name(Create soldier) token(Human Soldier,Creature Human Soldier,1/1,white) +auto={3}{T}:name(Create soldiers) token(Human Soldier,Creature Human Soldier,1/1,white)*type:human:mybattlefield +text=When Horn of Gondor enters the battlefield, create a 1/1 white Human Soldier creature token. -- {3}, {T}: Create X 1/1 white Human Soldier creature tokens, where X is the number of Humans you control. +mana={3} +type=Legendary Artifact +[/card] +[card] name=Horn of Plenty auto=@movedTo(*|mystack):name(pay to draw) pay({1}) phaseaction[endofturn once] draw:1 auto=@movedTo(*|opponentstack):ability$!name(pay to draw) pay[[{1}]] name(pay 1 mana) phaseaction[endofturn once] draw:1!$ opponent @@ -45916,6 +46282,14 @@ mana={U}{R} type=Enchantment [/card] [card] +name=Improvised Club +target=player,creature,planeswalker +auto=damage:4 +text=As an additional cost to cast this spell, sacrifice an artifact or creature. -- Improvised Club deals 4 damage to any target. +mana={1}{R}{S(*[creature;artifact]|mybattlefield)} +type=Instant +[/card] +[card] name=Improvised Weaponry target=player,creature,planeswalker auto=damage:2 @@ -46657,6 +47031,18 @@ mana={7} type=Artifact [/card] [card] +name=Inherited Envelope +auto=name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +auto={T}:add{W} +auto={T}:add{U} +auto={T}:add{B} +auto={T}:add{R} +auto={T}:add{G} +text=When Inherited Envelope enters the battlefield, the Ring tempts you. -- {T}: Add one mana of any color. +mana={3} +type=Artifact +[/card] +[card] name=Inherited Fiend abilities=flying backside=Heirloom Mirror @@ -55704,6 +56090,16 @@ mana={W}{W} type=Instant [/card] [card] +name=Lothlorien Lookout +auto=_ATTACKING_ name(Scry 1) _SCRY1_ +text=Whenever Lothlorien Lookout attacks, scry 1. +mana={1}{G} +type=Creature +subtype=Elf Scout +power=1 +toughness=3 +[/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. @@ -57266,6 +57662,14 @@ type=Enchantment subtype=Aura [/card] [card] +name=Many Partings +auto=name(Create food) token(Food) +auto=name(Search basic land) target(land[basic]|mybattlefield) moveto(myhand) and!( shuffle )! +text=Search your library for a basic land card, reveal it, put it into your hand, then shuffle. Create a Food token. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") +mana={G} +type=Sorcery +[/card] +[card] name=Maraleaf Pixie abilities=flying auto={T}:add{G} @@ -58074,6 +58478,17 @@ power=3 toughness=3 [/card] [card] +name=Mauhur, Uruk-hai Captain +abilities=menace +auto=@totalcounteradded(1/1) from(*[army;orc;goblin]|mybattlefield) plus(1):ability$!name(That many plus 1) donothing!$ controller +text=Menace -- If one or more +1/+1 counters would be put on an Army, Goblin, or Orc you control, that many plus one +1/+1 counters are put on it instead. +mana={B}{R} +type=Legendary Creature +subtype=Orc Soldier +power=2 +toughness=2 +[/card] +[card] name=Maul of the Skyclaves auto=name(Attach to creature) rehook target(creature|mybattlefield) auto=teach(creature) 2/2 @@ -58762,6 +59177,16 @@ power=3 toughness=3 [/card] [card] +name=Meriadoc Brandybuck +auto=@combat(attacking) source(halfling|mybattlefield):name(Create food) token(Food) +text=Whenever one or more Halflings you control attack a player, create a Food token. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") +mana={1}{G} +type=Legendary Creature +subtype=Halfling Citizen +power=2 +toughness=2 +[/card] +[card] name=Merieke Ri Berit abilities=doesnotuntap auto={T}:name(Gain control of creature) all(this) counter(0/0.1.MeriekeStolen) && target(creature) moveto(myBattlefield) and!( counter(0/0.1.MeriekeStolen) )! @@ -58775,6 +59200,18 @@ power=1 toughness=1 [/card] [card] +name=Merry, Esquire of Rohan +abilities=haste +auto=this(cantargetcard(*[geared]) first strike +auto=@combat(attacking) source(this):if type(other creature[legendary&attacking]|mybattlefield)~morethan~0 then name(Draw a card) name(Draw a card) draw:1 controller +text=Haste -- Merry, Esquire of Rohan has first strike as long as it's equipped. -- Whenever you attack with Merry and another legendary creature, draw a card. +mana={R}{W} +type=Legendary Creature +subtype=Halfling Knight +power=2 +toughness=2 +[/card] +[card] name=Mesa Cavalier abilities=flying auto=life:2 @@ -59642,6 +60079,17 @@ power=2 toughness=3 [/card] [card] +name=Mirkwood Spider +abilities=deathtouch +auto=_ATTACKING_target(legendary creature|myBattlefield)) deathtouch ueot +text=Deathtouch -- Whenever Mirkwood Spider attacks, target legendary creature you control gains deathtouch until end of turn. +mana={G} +type=Creature +subtype=Spider +power=1 +toughness=1 +[/card] +[card] name=Mirran Banesplitter abilities=flash auto=name(Attach to creature) rehook target(creature|mybattlefield) @@ -59744,6 +60192,18 @@ type=Artifact subtype=Equipment [/card] [card] +name=Mirror of Galadriel +auto=this(variable{type:creature[legendary]:mybattlefield}=0) {5}{T}:name(Scry 1) name(Scry 1) scry:1 scrycore delayed draw:1 controller scrycoreend scryend +auto=this(variable{type:creature[legendary]:mybattlefield}=1) {4}{T}:name(Scry 1) name(Scry 1) scry:1 scrycore delayed draw:1 controller scrycoreend scryend +auto=this(variable{type:creature[legendary]:mybattlefield}=2) {3}{T}:name(Scry 1) name(Scry 1) scry:1 scrycore delayed draw:1 controller scrycoreend scryend +auto=this(variable{type:creature[legendary]:mybattlefield}=3) {2}{T}:name(Scry 1) name(Scry 1) scry:1 scrycore delayed draw:1 controller scrycoreend scryend +auto=this(variable{type:creature[legendary]:mybattlefield}=4) {1}{T}:name(Scry 1) name(Scry 1) scry:1 scrycore delayed draw:1 controller scrycoreend scryend +auto=this(variable{type:creature[legendary]:mybattlefield}>=5) {T}:name(Scry 1) name(Scry 1) scry:1 scrycore delayed draw:1 controller scrycoreend scryend +text={5}, {T}: Scry 1, then draw a card. This ability costs {1} less to activate for each legendary creature you control. +mana={2} +type=Legendary Artifact +[/card] +[card] name=Mirror of Life Trapping auto=@movedTo(creature|battlefield):name(Exile creature) name(Exile creature) all(trigger[to]) transforms((,newability[if casted(this) then moveto(exile) and!( transforms((,newability[counter(0/0.1.MirrorExiled) notrg],newability[all(other creature[counter{0/0.1.MirrorExiled}]|exile) moveto(ownerbattlefield)])) oneshot )!])) oneshot text=Whenever a creature enters the battlefield, if it was cast, exile it, then return all other permanent cards exiled with Mirror of Life Trapping to the battlefield under their owners' control. @@ -59793,6 +60253,16 @@ mana={1}{U}{U} type=Enchantment [/card] [card] +name=Mirrormere Guardian +auto=_DIES_ name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +text=When Mirrormere Guardian dies, the Ring tempts you. +mana={2}{G} +type=Creature +subtype=Dwarf Soldier +power=4 +toughness=2 +[/card] +[card] name=Mirrorshell Crab auto=_WARD_(3) autohand={2}{U}{discard}:transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?fizzle])) forever target(*|stack) @@ -60351,6 +60821,17 @@ power=4 toughness=2 [/card] [card] +name=Mithril Coat +abilities=flash,indestructible +auto=name(Attach to creature) rehook target(creature[legendary]|mybattlefield) +auto=teach(creature) indestructible +auto={3}:equip +text=Flash -- Indestructible -- When Mithril Coat enters the battlefield, attach it to target legendary creature you control. -- Equipped creature has indestructible. -- Equip {3} +mana={3} +type=Legendary Artifact +subtype=Equipment +[/card] +[card] name=Mizzium Tank auto=@movedTo(*[-creature]|mystack):becomes(Artifact Creature) ueot auto=@movedTo(*[-creature]|mystack):1/1 ueot @@ -61087,6 +61568,17 @@ mana={1}{U} type=Instant [/card] [card] +name=Moria Marauder +abilities=double strike +auto=@combatdamaged(player) from(*[goblin;orc]|mybattlefield):name(Exile top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile])) ueot )! +text=Double strike -- Whenever a Goblin or Orc you control deals combat damage to a player, exile the top card of your library. You may play that card this turn. +mana={R}{R} +type=Creature +subtype=Goblin Warrior +power=1 +toughness=1 +[/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 )! @@ -61583,6 +62075,16 @@ mana={X}{U}{U} type=Sorcery [/card] [card] +name=Mushroom Watchdogs +auto={S(food|mybattlefield)}:name(Put counter and vigilance) transforms((,newability[counter(1/1)],newability[vigilance])) ueot asSorcery +text=Sacrifice a Food: Put a +1/+1 counter on Mushroom Watchdogs. It gains vigilance until end of turn. Activate only as a sorcery. +mana={1}{G} +type=Creature +subtype=Dog +power=2 +toughness=2 +[/card] +[card] name=Mutagen Connoisseur abilities=flying,vigilance auto=foreach(*[isflipped]|myBattlefield) 1/0 @@ -65451,6 +65953,17 @@ power=1 toughness=1 [/card] [card] +name=Olog-hai Crusher +abilities=trample +auto=this(variable{type:*[goblin;orc]:mybattlefield}=0) cantblock +text=Trample -- Olog-hai Crusher can't block unless you control a Goblin or Orc. +mana={3}{R} +type=Creature +subtype=Troll Soldier +power=4 +toughness=4 +[/card] +[card] name=Oloro, Ageless Ascetic auto=@each my upkeep:life:2 controller auto=@lifeof(player) from(*[-lifefaker]|*):pay({1}) draw:1 controller && life:-1 opponent @@ -68188,6 +68701,17 @@ power=2 toughness=3 [/card] [card] +name=Peregrin Took +auto={S(food|mybattlefield)}{S(food|mybattlefield)}{S(food|mybattlefield)}:name(Sacrifice foods and draw card) draw:1 controller +auto=@tokencreated(*|mybattlefield):name(Create Food) token(Food,notrigger) +text=If one or more tokens would be created under your control, those tokens plus an additional Food token are created instead. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") -- Sacrifice three Foods: Draw a card. +mana={2}{G} +type=Legendary Creature +subtype=Halfling Citizen +power=2 +toughness=3 +[/card] +[card] name=Peregrination auto=if type(land|myLibrary)~morethan~1 then choice name(Search two lands) name(Search two lands) target(land[basic]|mylibrary) moveto(mybattlefield) and!( transforms((,newability[tap(noevent)],newability[name(Search another land) target(land[basic]|mylibrary) moveto(myhand) and!( transforms((,newability[name(Scry 1) _SCRY1_])) oneshot )!])) oneshot )! auto=if type(land|myLibrary)~morethan~0 then choice name(Search one land) name(Search one land) target(land[basic]|mylibrary) moveto(mybattlefield) and!( tap(noevent) && _SCRY1_ )! @@ -69105,6 +69629,15 @@ power=1 toughness=3 [/card] [card] +name=Pippin's Bravery +restriction=type(creature|battlefield)morethan~0 +auto=if type(food|mybattlefield)~morethan~0 choice name(Sacrifice a food) name(Sacrifice a food) target(food|myBattlefield) sacrifice and!( name(Choose creature) target(creature|battlefield) transforms((,newability[4/4])) ueot )! +auto=choice name(Don't sacrifice a food) target(creature|battlefield) transforms((,newability[2/2])) ueot +text=You may sacrifice a Food. If you do, target creature gets +4/+4 until end of turn. Otherwise, that creature gets +2/+2 until end of turn. +mana={G} +type=Instant +[/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 @@ -70832,6 +71365,16 @@ power=7 toughness=6 [/card] [card] +name=Prince Imrahil the Fair +auto=_SECOND_DRAW_ name(Create soldier) token(Human Soldier,Creature Human Soldier,1/1,white) +text=Whenever you draw your second card each turn, create a 1/1 white Human Soldier creature token. +mana={W}{U} +type=Legendary Creature +subtype=Human Noble +power=2 +toughness=2 +[/card] +[card] name=Prince of Thralls auto=@movedto(*[-instant;-sorcery]|graveyard) from(opponentbattlefield):name(Pay life or give opponent) all(trigger[to]) name(Pay life or give opponent) transforms((,newability[choice name(Give to opponent) moveto(opponentbattlefield)],newability[choice name(Pay 3 life) life:-3 controller])) oneshot text=Whenever a permanent an opponent controls is put into a graveyard, put that card onto the battlefield under your control unless that opponent pays 3 life. @@ -72133,6 +72676,13 @@ power=2 toughness=2 [/card] [card] +name=Quarrel's End +auto=name(Create soldier) token(Human Soldier,Creature Human Soldier,1/1,white) +text=As an additional cost to cast this spell, discard a card. -- Draw two cards and create a 1/1 white Human Soldier creature token. +mana={2}{R}{D(*|myhand)} +type=Sorcery +[/card] +[card] name=Quarry Beetle auto=may moveto(mybattlefield) target(land|mygraveyard) text=When Quarry Beetle enters the battlefield, you may return target land card from your graveyard to the battlefield. @@ -72335,6 +72885,17 @@ type=Artifact subtype=Equipment [/card] [card] +name=Quickbeam, Upstart Ent +auto=may name(Creatures gain 2/2 and trample) target(creature|battlefield) transforms((,newability[2/2],newability[trample])) ueot +auto=@movedTo(other treefolk|myBattlefield):may name(Creatures gain 2/2 and trample) target(creature|battlefield) transforms((,newability[2/2],newability[trample])) ueot +text=Whenever Quickbeam, Upstart Ent or another Treefolk enters the battlefield under your control, up to two target creatures each get +2/+2 and gain trample until end of turn. +mana={4}{G}{G} +type=Legendary Creature +subtype=Treefolk +power=5 +toughness=6 +[/card] +[card] name=Quicken auto=target(sorcery|myhand) transforms((,newability[flash])) ueot auto=draw:1 controller @@ -73088,6 +73649,14 @@ mana={2}{W} type=Instant [/card] [card] +name=Rally at the Hornburg +auto=name(Create 2 soldier) token(Human Soldier,Creature Human Soldier,1/1,white)*2 and!( transforms((,newability[haste])) ueot )! +auto=all(human|mybattlefield) transforms((,newability[haste])) ueot +text=Create two 1/1 white Human Soldier creature tokens. Humans you control gain haste until end of turn. +mana={1}{R} +type=Sorcery +[/card] +[card] name=Rally for the Throne auto=token(Human,Creature Human,1/1,white)*2 auto=if casted(this) then if spent({W}{W}{W}) then life:type:creature:mybattlefield controller @@ -73375,6 +73944,15 @@ type=Enchantment subtype=Class [/card] [card] +name=Ranger's Firebrand +target=player,creature,planeswalker +auto=damage:2 +auto=ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +text=Ranger's Firebrand deals 2 damage to any target. The Ring tempts you. +mana={R} +type=Sorcery +[/card] +[card] name=Ranger's Hawk abilities=flying auto={3}{T}{T(other creature[-tapped]|mybattlefield)}:if compare(type:*[nodngplr]:mybattlefieldplustype:*[nodngopp]:opponentbattlefieldplusend)~equalto~0 then name(Venture into dungeon) name(Venture into dungeon) transforms((,newability[if type(*[dungeon]|mycommandzone)~morethan~0 then name(Explore the dungeon) name(Explore the dungeon) all(*[dungeon]|mycommandzone) counter(0/0.1.Explore)],newability[if type(*[dungeon]|mycommandzone)~equalto~0 then name(Choose a new dungeon) name(Choose a new dungeon) target(*[dungeon]|mysideboard) moveTo(mycommandzone) and!( counter(0/0.1.Explore) )!])) oneshot asSorcery @@ -74890,6 +75468,16 @@ power=3 toughness=3 [/card] [card] +name=Relentless Rohirrim +auto=ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +text=When Relentless Rohirrim enters the battlefield, the Ring tempts you. +mana={3}{R} +type=Creature +subtype=Human Knight +power=4 +toughness=3 +[/card] +[card] name=Relic Amulet auto=@movedTo(*[instant;sorcery;wizard]|myStack):counter(0/0,1,Charge) all(this) auto={2}{T}:thisforeach(counter{0/0.1.Charge}) counter(0/0,-1,Charge) all(this) && damage:1 target(creature) @@ -75797,6 +76385,14 @@ mana={4}{B}{G} type=Sorcery [/card] [card] +name=Revive the Shire +target=*[-instant&-sorcery]|mygraveyard +auto=moveTo(myhand) and!( token(Food) )! +text=Return target permanent card from your graveyard to your hand. Create a Food token. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") +mana={1}{G} +type=Sorcery +[/card] +[card] name=Revivify auto=if type(*|mygraveyard)~morethan~0 then name(Roll a d20) name(Roll a d20) all(*[zpos=1]|mygraveyard) transforms((,newability[@dierolled(*|mygraveyard) from(controller) once:if compare(lastrollresultplustype:creature[fresh]:mygraveyardplusend)~lessthan~15 then all(creature[fresh]|mygraveyard) moveto(myhand) else all(creature[fresh]|mygraveyard) moveto(mybattlefield)],newability[name(Roll a d20) rolld20 20 winability donothing winabilityend rolld20end])) oneshot auto=if type(*|mygraveyard)~equalto~0 then name(Roll a d20) name(Roll a d20) rolld20 20 winability donothing winabilityend rolld20end @@ -76517,6 +77113,14 @@ mana={2}{B} type=Instant [/card] [card] +name=Rise of the Witch-king +auto=ability$!name(Sacrifice a creature) name(Sacrifice a creature) sacrifice notatarget(creature|mybattlefield)!$ opponent +auto=name(Sacrifice a creature) target(creature|mybattlefield) sacrifice and!( transforms((,newability[may name(Return another permanent) target(other *[-instant;-sorcery]|mygraveyard) moveTo(mybattlefield)])) oneshot )! +text=Each player sacrifices a creature. If you sacrificed a creature this way, you may return another permanent card from your graveyard to the battlefield. +mana={2}{B}{G} +type=Sorcery +[/card] +[card] name=Rise to Glory restriction=type(*[creature;aura]|mygraveyard)~morethan~0 auto=if type(creature|mygraveyard)~morethan~0 then choice name(Return creature) name(Return creature) moveTo(myBattlefield) target(creature|myGraveyard) @@ -76601,6 +77205,14 @@ power=2 toughness=2 [/card] [card] +name=Rising of the Day +auto=lord(creature|myBattlefield) haste +auto=lord(creature[legendary]|myBattlefield) 1/0 +text=Creatures you control have haste. -- Legendary creatures you control get +1/+0. +mana={2}{R} +type=Enchantment +[/card] +[card] name=Risk Factor auto=ability$!name(Choose one) choice name(Damage 4) damage:4 controller _ choice name(Draw cards) draw:3 opponent!$ opponent flashback={2}{R}{D(*|myhand)} @@ -77294,6 +77906,17 @@ power=4 toughness=4 [/card] [card] +name=Rohirrim Lancer +abilities=menace +auto=_DIES_ name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +text=Menace (This creature can't be blocked except by two or more creatures.) -- When Rohirrim Lancer dies, the Ring tempts you. +mana={R} +type=Creature +subtype=Human Knight +power=1 +toughness=1 +[/card] +[card] name=Roil Eruption kicker={5} auto=if paid(kicker) then name(Deals 5 damages) name(Deals 5 damages) damage:5 target(player,creature,planeswalker) @@ -78385,6 +79008,15 @@ power=1 toughness=1 [/card] [card] +name=Rush the Room +target=creature +auto=transforms((,newability[1/0],newability[first strike])) ueot +auto=if cantargetcard(*[goblin;orc]|*) then transforms((,newability[haste])) ueot +text=Target creature gets +1/+0 and gains first strike until end of turn. If it's a Goblin or Orc, it also gains haste until end of turn. +mana={R} +type=Instant +[/card] +[card] name=Rushblade Commander auto=lord(warrior|mybattlefield) haste text=Warriors your team controls have haste. @@ -83371,6 +84003,17 @@ power=1 toughness=2 [/card] [card] +name=Shire Scarecrow +abilities=defender +auto={1}:name(Add 1 mana) ability$!name(Choose one) choice name(Add White) add{W} _ choice name(Add Blue) add{U} _ choice name(Add Black) add{B} _ choice name(Add Red) add{R} _ choice name(Add Green) add{G}!$ controller limit:1 +text=Defender -- {1}: Add one mana of any color. Activate only once each turn. +mana={2} +type=Artifact Creature +subtype=Scarecrow +power=0 +toughness=3 +[/card] +[card] name=Shire Shirriff abilities=vigilance auto=may name(Sacrifice a token) target(*[token]|mybattlefield) sacrifice and!( name(Exile creature) (blink)forsrc target(creature|opponentBattlefield) )! @@ -83579,6 +84222,14 @@ power=2 toughness=5 [/card] [card] +name=Shortcut to Mushrooms +auto=name(The ring tempts you) ability$!name(The ring tempts you) _RINGTEMPTS_!$ controller +auto=@each my end restriction{revolt}:name(Put 1/1 counter) target(creature|myBattlefield) counter(1/1) +text=When Shortcut to Mushrooms enters the battlefield, the Ring tempts you. -- At the beginning of your end step, if a permanent you controlled left the battlefield this turn, put a +1/+1 counter on target creature you control. +mana={1}{G} +type=Enchantment +[/card] +[card] name=Show of Confidence auto=if thisturn(*[instant;sorcery]|mystack)~equalto~1 then thisforeach(variable{1}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller auto=if thisturn(*[instant;sorcery]|mystack)~equalto~2 then thisforeach(variable{2}) ability$!name(Put 1/1 counter) name(Put 1/1 counter) target(creature) transforms((,newability[counter(1/1)],newability[vigilance])) ueot!$ controller @@ -83618,6 +84269,16 @@ type=Enchantment subtype=Saga [/card] [card] +name=Shower of Arrows +restriction=type(*[artifact;creature;enchantment]|battlefield)~morethan~0 +auto=if type(artifact|battlefield)~morethan~0 then choice name(Destroy artifact) name(Destroy artifact) target(artifact|battlefield) destroy and!( _SCRY1_ )! +auto=if type(enchantment|battlefield)~morethan~0 then choice name(Destroy enchantment) name(Destroy enchantment) target(enchantment|battlefield) destroy and!( _SCRY1_ )! +auto=if type(creature[flying]|battlefield)~morethan~0 then choice name(Destroy flying creature) name(Destroy flying creature) target(creature[flying]|battlefield) destroy and!( _SCRY1_ )! +text=Destroy target artifact, enchantment, or creature with flying. Scry 1. +mana={2}{G} +type=Instant +[/card] +[card] name=Shrapnel Slinger auto=may name(Sacrifice a creature) sacrifice notatarget(creature|mybattlefield) and!( destroy target(artifact|opponentBattlefield) )! text=When Shrapnel Slinger enters the battlefield, you may sacrifice a creature. When you do, destroy target artifact an opponent controls. @@ -86247,6 +86908,16 @@ mana={4} type=Artifact [/card] [card] +name=Smite the Deathless +target=creature +auto=exiledeath ueot +auto=-indestructible ueot +auto=damage:3 +text=Smite the Deathless deals 3 damage to target creature. That creature loses indestructible until end of turn. If that creature would die this turn, exile it instead. +mana={1}{R} +type=Instant +[/card] +[card] name=Smiting Helix target=player,creature,planeswalker auto=damage:3 @@ -88604,6 +89275,14 @@ mana={3}{U} type=Instant [/card] [card] +name=Spiteful Banditry +auto=name(Damage all creatures) damage:fullpaid all(creature|battlefield) +auto=@movedto(creature|graveyard) from(opponentbattlefield) turnlimited:name(Create treasure) token(Treasure) +text=When Spiteful Banditry enters the battlefield, it deals X damage to each creature. -- Whenever one or more creatures your opponents control die, you create a Treasure token. This ability triggers only once each turn. +mana={X}{R}{R} +type=Enchantment +[/card] +[card] name=Spiteful Prankster auto=this(variable{controllerturn}>0) first strike auto=@movedTo(graveyard) from(other creature|battlefield):damage:1 target(planeswalker,player) @@ -91957,6 +92636,14 @@ power=4 toughness=3 [/card] [card] +name=Swarming of Moria +auto=token(Treasure) +auto=_AMASSORC2_ +text=Create a Treasure token. (It's an artifact with "{T} Sacrifice this artifact: Add one mana of any color.") -- 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}{R} +type=Sorcery +[/card] +[card] name=Swashbuckler Extraordinaire auto=name(Create treasure) token(Treasure) auto=@each my blockers restriction{type(*[treasure]|myBattlefield)~equalto~1}:may name(Sacrifice 1 treasure) name(Sacrifice 1 treasure) target(*[treasure]|mybattlefield) sacrifice and!( transforms((,newability[name(Creature gains double strike) target(creature|battlefield) transforms((,newability[double strike])) ueot])) oneshot )! @@ -95725,6 +96412,17 @@ mana={1}{B}{R} type=Enchantment [/card] [card] +name=Theoden, King of Rohan +auto=name(Creature gains double strike) target(creature|battlefield) transforms((,newability[double strike])) ueot +auto=@movedTo(other human|myBattlefield):name(Creature gains double strike) target(creature|battlefield) transforms((,newability[double strike])) ueot +text=Whenever Theoden, King of Rohan or another Human enters the battlefield under your control, target creature gains double strike until end of turn. +mana={1}{R}{W} +type=Legendary Creature +subtype=Human Noble +power=2 +toughness=3 +[/card] +[card] name=Theoretical Duplication auto=emblem transforms((,newability[@movedto(creature|opponentbattlefield):all(trigger[to]) clone])) ueot text=Whenever a nontoken creature enters the battlefield under an opponent's control this turn, create a token that's a copy of that creature. @@ -99716,6 +100414,17 @@ power=0 toughness=0 [/card] [card] +name=Ugluk of the White Hand +auto=@movedTo(creature[-orc&-goblin]|graveyard) from(mybattlefield):name(Put 1/1 counter) counter(1/1) +auto=@movedTo(creature[orc;goblin]|graveyard) from(mybattlefield):name(Put 1/1 counters) counter(1/1,2) +text=Whenever another creature you control dies, put a +1/+1 counter on Ugluk of the White Hand. If that creature was a Goblin or Orc, put two +1/+1 counters on Ugluk instead. +mana={2}{B}{R} +type=Legendary Creature +subtype=Orc Soldier +power=3 +toughness=3 +[/card] +[card] name=Ukkima, Stalking Shadow abilities=hiddenface,unblockable,partner partner=Cazur, Ruthless Stalker @@ -104482,6 +105191,17 @@ power=4 toughness=3 [/card] [card] +name=Warbeast of Gorgoroth +auto=@movedto(other creature[power>=4]|graveyard) from(battlefield):name(Amass orc) _AMASSORC2_ +auto=_DIES_ name(Amass orc) _AMASSORC2_ +text=Whenever Warbeast of Gorgoroth or another creature you control with power 4 or greater dies, 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={4}{R} +type=Creature +subtype=Beast +power=5 +toughness=4 +[/card] +[card] name=Warbriar Blessing target=creature|myBattlefield auto=name(fight) transforms((,newability[dynamicability target(creature|opponentbattlefield)])) @@ -106892,6 +107612,21 @@ power=2 toughness=2 [/card] [card] +name=Wose Pathfinder +auto={T}:add{W} +auto={T}:add{U} +auto={T}:add{B} +auto={T}:add{R} +auto={T}:add{G} +auto={6}{G}{T}:name(Creature gains 3/3 and trample) target(other creature) transforms((,newability[3/3],newability[trample])) ueot +text={T}: Add one mana of any color. -- {6}{G}, {T}: Another target creature gets +3/+3 and gains trample until end of turn. +mana={1}{G} +type=Creature +subtype=Human Shaman +power=1 +toughness=1 +[/card] +[card] name=Wrathful Jailbreaker abilities=nightbound,mustattack backside=Weary Prisoner diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index 69ef14802..0e457497c 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -4960,7 +4960,8 @@ public: bool newhook; int mutation; bool fromplay; - AANewTarget(GameObserver* observer, int id, MTGCardInstance * card, MTGCardInstance * _target, ManaCost * _cost = NULL, bool retarget = false, bool reequip = false, bool newhook = false, int mutation = 0, bool fromplay = false); + bool untap; + AANewTarget(GameObserver* observer, int id, MTGCardInstance * card, MTGCardInstance * _target, ManaCost * _cost = NULL, bool retarget = false, bool reequip = false, bool newhook = false, int mutation = 0, bool fromplay = false, bool untap = false); int resolve(); const string getMenuText(); AANewTarget * clone() const; diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index 77d51b2b5..8d66a8621 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -4612,8 +4612,8 @@ AAFrozen * AAFrozen::clone() const } // chose a new target for an aura or enchantment and equip it note: VERY basic right now. -AANewTarget::AANewTarget(GameObserver* observer, int id, MTGCardInstance * card, MTGCardInstance * _target, ManaCost * _cost, bool retarget, bool reequip, bool newhook, int mutation, bool fromplay) : -ActivatedAbility(observer, id, card, _cost, 0),retarget(retarget),reequip(reequip),newhook(newhook),mutation(mutation),fromplay(fromplay) +AANewTarget::AANewTarget(GameObserver* observer, int id, MTGCardInstance * card, MTGCardInstance * _target, ManaCost * _cost, bool retarget, bool reequip, bool newhook, int mutation, bool fromplay, bool untap) : +ActivatedAbility(observer, id, card, _cost, 0), retarget(retarget), reequip(reequip), newhook(newhook), mutation(mutation), fromplay(fromplay), untap(untap) { target = _target; } @@ -4653,6 +4653,8 @@ int AANewTarget::resolve() { ((AEquip*)a)->unequip(); ((AEquip*)a)->equip(source); + if(untap) + source->untap(); } } } @@ -4662,7 +4664,6 @@ int AANewTarget::resolve() target = source; source = _target; } - } if (_target && _target->currentZone == _target->controller()->game->battlefield && reequip && !mutation) { @@ -4690,6 +4691,8 @@ int AANewTarget::resolve() { ((AEquip*)a)->unequip(); ((AEquip*)a)->equip(source); + if(untap) + source->untap(); } } } diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index d23227d46..fbf04342e 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -775,6 +775,12 @@ int AbilityFactory::parseCastRestrictions(MTGCardInstance * card, Player * playe return 0; } + check = restriction[i].find("oppoattacked"); + if(check != string::npos) + { + if(card->controller()->opponent()->raidcount < 1) + return 0; + } check = restriction[i].find("opponentdamagedbycombat"); if(check != string::npos) @@ -5491,6 +5497,8 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG { MTGAbility * a = NEW AANewTarget(observer, id, card, target, NULL, (s.find("retarget") != string::npos), false, false, 0, (s.find("fromplay") != string::npos)); a->oneShot = 1; + if(s.find("untp") != string::npos) + ((AANewTarget*)a)->untap = true; return a; } @@ -5499,6 +5507,8 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG { MTGAbility * a = NEW AANewTarget(observer, id, card,target, NULL, false, true, (s.find("newhook") != string::npos)); a->oneShot = 1; + if(s.find("untp") != string::npos) + ((AANewTarget*)a)->untap = true; return a; }