diff --git a/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java b/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java index bb47c0a6b..41e2d9893 100644 --- a/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java +++ b/projects/mtg/Android/src/net/wagic/utils/ImgDownloader.java @@ -2334,7 +2334,9 @@ public class ImgDownloader { tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/3/d/3d0b9b88-705e-4df0-8a93-3e240b81355b.jpg?1617626092"; else if(id.equals("513663t")) tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/1/a/1a2d027f-8996-4761-a776-47cd428f6779.jpg?1618766925"; - + else if(id.equals("522245t")) + tokenurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/3/7/37e32ba6-108a-421f-9dad-3d03f7ebe239.jpg?1623113548"; + return tokenurl; } @@ -2355,7 +2357,7 @@ public class ImgDownloader { id.equals("293198") || id.equals("479634") || id.equals("479702") || id.equals("489837") || id.equals("489861") || id.equals("491359") || id.equals("294872") || id.equals("295110") || id.equals("294842") || id.equals("295067") || id.equals("491767") || id.equals("295386") || id.equals("295229") || id.equals("295387") || id.equals("295206") || id.equals("295706") || id.equals("497549") || id.equals("497666") || - id.equals("503860")) + id.equals("503860") || id.equals("522280") || id.equals("522111")) return false; return true; } diff --git a/projects/mtg/bin/Res/sets/MH2/_cards.dat b/projects/mtg/bin/Res/sets/MH2/_cards.dat new file mode 100644 index 000000000..5ee1f14c2 --- /dev/null +++ b/projects/mtg/bin/Res/sets/MH2/_cards.dat @@ -0,0 +1,1737 @@ +[meta] +author=Wagic Team +name=Modern Horizons 2 +orderindex=REP-H.MH2 +year=2021-06-18 +total=346 +[/meta] +[card] +primitive=Elemental +id=-526258 +rarity=T +[/card] +[card] +primitive=Beast +id=-526255 +rarity=T +[/card] +[card] +primitive=Construct +id=-522335 +rarity=T +[/card] +[card] +primitive=Germ +id=-522307 +rarity=T +[/card] +[card] +primitive=Germ +id=-522297 +rarity=T +[/card] +[card] +primitive=Army +id=-522279 +rarity=T +[/card] +[card] +primitive=Insect +id=-522278 +rarity=T +[/card] +[card] +primitive=Golem +id=-522274 +rarity=T +[/card] +[card] +primitive=Squirrel +id=-522270 +rarity=T +[/card] +[card] +primitive=Beast +id=-522267 +rarity=T +[/card] +[card] +primitive=Squirrel +id=-522258 +rarity=T +[/card] +[card] +primitive=Squirrel +id=-522250 +rarity=T +[/card] +[card] +primitive=Squirrel +id=-522248 +rarity=T +[/card] +[card] +primitive=Food +id=-522245 +rarity=T +[/card] +[card] +primitive=Beast +id=-522241 +rarity=T +[/card] +[card] +primitive=Squirrel +id=-522229 +rarity=T +[/card] +[card] +primitive=Squirrel +id=-522228 +rarity=T +[/card] +[card] +primitive=Squirrel +id=-522227 +rarity=T +[/card] +[card] +primitive=Goblin +id=-522206 +rarity=T +[/card] +[card] +primitive=Thopter +id=-522193 +rarity=T +[/card] +[card] +primitive=Squirrel +id=-522181 +rarity=T +[/card] +[card] +primitive=Squirrel +id=-522171 +rarity=T +[/card] +[card] +primitive=Zombie +id=-522168 +rarity=T +[/card] +[card] +primitive=Thopter +id=-522146 +rarity=T +[/card] +[card] +primitive=Crab +id=-522140 +rarity=T +[/card] +[card] +primitive=Crab +id=-522137 +rarity=T +[/card] +[card] +primitive=Crab +id=-522122 +rarity=T +[/card] +[card] +primitive=Thopter +id=-522116 +rarity=T +[/card] +[card] +primitive=Bird +id=-522109 +rarity=T +[/card] +[card] +primitive=Bird +id=-522104 +rarity=T +[/card] +[card] +primitive=Thopter +id=-522089 +rarity=T +[/card] +[card] +primitive=Thopter +id=-522081 +rarity=T +[/card] +[card] +primitive=Abiding Grace +id=522077 +rarity=U +[/card] +[card] +primitive=Arcbound Javelineer +id=522078 +rarity=U +[/card] +[card] +primitive=Arcbound Mouser +id=522079 +rarity=C +[/card] +[card] +primitive=Arcbound Prototype +id=522080 +rarity=C +[/card] +[card] +primitive=Barbed Spike +id=522081 +rarity=U +[/card] +[card] +primitive=Blacksmith's Skill +id=522082 +rarity=C +[/card] +[card] +primitive=Blossoming Calm +id=522083 +rarity=U +[/card] +[card] +primitive=Break Ties +id=522084 +rarity=C +[/card] +[card] +primitive=Caprichrome +id=522085 +rarity=U +[/card] +[card] +primitive=Constable of the Realm +id=522086 +rarity=U +[/card] +[card] +primitive=Disciple of the Sun +id=522087 +rarity=C +[/card] +[card] +primitive=Esper Sentinel +id=522088 +rarity=R +[/card] +[card] +primitive=Fairgrounds Patrol +id=522089 +rarity=C +[/card] +[card] +primitive=Glorious Enforcer +id=522090 +rarity=U +[/card] +[card] +primitive=Guardian Kirin +id=522091 +rarity=C +[/card] +[card] +primitive=Healer's Flock +id=522092 +rarity=U +[/card] +[card] +primitive=Knighted Myr +id=522093 +rarity=C +[/card] +[card] +primitive=Landscaper Colos +id=522094 +rarity=C +[/card] +[card] +primitive=Late to Dinner +id=522095 +rarity=C +[/card] +[card] +primitive=Lens Flare +id=522096 +rarity=C +[/card] +[card] +primitive=Marble Gargoyle +id=522097 +rarity=C +[/card] +[card] +primitive=Nykthos Paragon +id=522098 +rarity=R +[/card] +[card] +primitive=Out of Time +id=522099 +rarity=R +[/card] +[card] +primitive=Piercing Rays +id=522100 +rarity=C +[/card] +[card] +primitive=Prismatic Ending +id=522101 +rarity=U +[/card] +[card] +primitive=Resurgent Belief +id=522102 +rarity=R +[/card] +[card] +primitive=Sanctifier en-Vec +id=522103 +rarity=R +[/card] +[card] +primitive=Scour the Desert +id=522104 +rarity=U +[/card] +[card] +primitive=Search the Premises +id=522105 +rarity=R +[/card] +[card] +primitive=Serra's Emissary +id=522106 +rarity=M +[/card] +[card] +primitive=Skyblade's Boon +id=522107 +rarity=U +[/card] +[card] +primitive=Solitude +id=522108 +rarity=M +[/card] +[card] +primitive=Soul of Migration +id=522109 +rarity=C +[/card] +[card] +primitive=Thraben Watcher +id=522110 +rarity=U +[/card] +[card] +primitive=Timeless Dragon +id=522111 +rarity=R +[/card] +[card] +primitive=Unbounded Potential +id=522112 +rarity=C +[/card] +[card] +primitive=Aeromoeba +id=522113 +rarity=C +[/card] +[card] +primitive=Burdened Aerialist +id=522114 +rarity=C +[/card] +[card] +primitive=Dress Down +id=522115 +rarity=R +[/card] +[card] +primitive=Etherium Spinner +id=522116 +rarity=C +[/card] +[card] +primitive=Filigree Attendant +id=522117 +rarity=U +[/card] +[card] +primitive=Floodhound +id=522118 +rarity=C +[/card] +[card] +primitive=Foul Watcher +id=522119 +rarity=C +[/card] +[card] +primitive=Fractured Sanity +id=522120 +rarity=R +[/card] +[card] +primitive=Ghost-Lit Drifter +id=522121 +rarity=U +[/card] +[card] +primitive=Hard Evidence +id=522122 +rarity=C +[/card] +[card] +primitive=Inevitable Betrayal +id=522123 +rarity=R +[/card] +[card] +primitive=Junk Winder +id=522124 +rarity=U +[/card] +[card] +primitive=Lose Focus +id=522125 +rarity=C +[/card] +[card] +primitive=Lucid Dreams +id=522126 +rarity=U +[/card] +[card] +primitive=Mental Journey +id=522127 +rarity=C +[/card] +[card] +primitive=Murktide Regent +id=522128 +rarity=M +[/card] +[card] +primitive=Mystic Redaction +id=522129 +rarity=U +[/card] +[card] +primitive=Parcel Myr +id=522130 +rarity=C +[/card] +[card] +primitive=Phantasmal Dreadmaw +id=522131 +rarity=C +[/card] +[card] +primitive=Raving Visionary +id=522132 +rarity=U +[/card] +[card] +primitive=Recalibrate +id=522133 +rarity=C +[/card] +[card] +primitive=Rise and Shine +id=522134 +rarity=R +[/card] +[card] +primitive=Rishadan Dockhand +id=522135 +rarity=R +[/card] +[card] +primitive=Said // Done +id=522136 +rarity=U +[/card] +[card] +primitive=Scuttletide +id=522137 +rarity=U +[/card] +[card] +primitive=Shattered Ego +id=522138 +rarity=C +[/card] +[card] +primitive=So Shiny +id=522139 +rarity=C +[/card] +[card] +primitive=Specimen Collector +id=522140 +rarity=U +[/card] +[card] +primitive=Steelfin Whale +id=522141 +rarity=C +[/card] +[card] +primitive=Step Through +id=522142 +rarity=C +[/card] +[card] +primitive=Subtlety +id=522143 +rarity=M +[/card] +[card] +primitive=Suspend +id=522144 +rarity=R +[/card] +[card] +primitive=Svyelun of Sea and Sky +id=522145 +rarity=M +[/card] +[card] +primitive=Sweep the Skies +id=522146 +rarity=U +[/card] +[card] +primitive=Thought Monitor +id=522147 +rarity=R +[/card] +[card] +primitive=Tide Shaper +id=522148 +rarity=U +[/card] +[card] +primitive=Vedalken Infiltrator +id=522149 +rarity=U +[/card] +[card] +primitive=Archfiend of Sorrows +id=522150 +rarity=U +[/card] +[card] +primitive=Archon of Cruelty +id=522151 +rarity=M +[/card] +[card] +primitive=Bone Shards +id=522152 +rarity=C +[/card] +[card] +primitive=Break the Ice +id=522153 +rarity=U +[/card] +[card] +primitive=Cabal Initiate +id=522154 +rarity=C +[/card] +[card] +primitive=Clattering Augur +id=522155 +rarity=U +[/card] +[card] +primitive=Damn +id=522156 +rarity=R +[/card] +[card] +primitive=Dauthi Voidwalker +id=522157 +rarity=R +[/card] +[card] +primitive=Discerning Taste +id=522158 +rarity=C +[/card] +[card] +primitive=Echoing Return +id=522159 +rarity=C +[/card] +[card] +primitive=Feast of Sanity +id=522160 +rarity=U +[/card] +[card] +primitive=Flay Essence +id=522161 +rarity=U +[/card] +[card] +primitive=Gilt-Blade Prowler +id=522162 +rarity=C +[/card] +[card] +primitive=Grief +id=522163 +rarity=M +[/card] +[card] +primitive=Hell Mongrel +id=522164 +rarity=C +[/card] +[card] +primitive=Kitchen Imp +id=522165 +rarity=C +[/card] +[card] +primitive=Legion Vanguard +id=522166 +rarity=U +[/card] +[card] +primitive=Loathsome Curator +id=522167 +rarity=C +[/card] +[card] +primitive=Magus of the Bridge +id=522168 +rarity=R +[/card] +[card] +primitive=Necrogoyf +id=522169 +rarity=R +[/card] +[card] +primitive=Necromancer's Familiar +id=522170 +rarity=U +[/card] +[card] +primitive=Nested Shambler +id=522171 +rarity=C +[/card] +[card] +primitive=Persist +id=522172 +rarity=R +[/card] +[card] +primitive=Profane Tutor +id=522173 +rarity=R +[/card] +[card] +primitive=Radiant Epicure +id=522174 +rarity=U +[/card] +[card] +primitive=Sinister Starfish +id=522175 +rarity=C +[/card] +[card] +primitive=Sudden Edict +id=522176 +rarity=U +[/card] +[card] +primitive=Tizerus Charger +id=522177 +rarity=C +[/card] +[card] +primitive=Tourach, Dread Cantor +id=522178 +rarity=M +[/card] +[card] +primitive=Tourach's Canticle +id=522179 +rarity=C +[/card] +[card] +primitive=Tragic Fall +id=522180 +rarity=C +[/card] +[card] +primitive=Underworld Hermit +id=522181 +rarity=U +[/card] +[card] +primitive=Unmarked Grave +id=522182 +rarity=R +[/card] +[card] +primitive=Vermin Gorger +id=522183 +rarity=C +[/card] +[card] +primitive=Vile Entomber +id=522184 +rarity=U +[/card] +[card] +primitive=World-Weary +id=522185 +rarity=C +[/card] +[card] +primitive=Young Necromancer +id=522186 +rarity=U +[/card] +[card] +primitive=Arcbound Slasher +id=522187 +rarity=C +[/card] +[card] +primitive=Arcbound Tracker +id=522188 +rarity=C +[/card] +[card] +primitive=Arcbound Whelp +id=522189 +rarity=U +[/card] +[card] +primitive=Battle Plan +id=522190 +rarity=C +[/card] +[card] +primitive=Blazing Rootwalla +id=522191 +rarity=U +[/card] +[card] +primitive=Bloodbraid Marauder +id=522192 +rarity=R +[/card] +[card] +primitive=Breya's Apprentice +id=522193 +rarity=R +[/card] +[card] +primitive=Calibrated Blast +id=522194 +rarity=R +[/card] +[card] +primitive=Captain Ripley Vance +id=522195 +rarity=U +[/card] +[card] +primitive=Chef's Kiss +id=522196 +rarity=R +[/card] +[card] +primitive=Dragon's Rage Channeler +id=522197 +rarity=U +[/card] +[card] +primitive=Faithless Salvaging +id=522198 +rarity=C +[/card] +[card] +primitive=Fast // Furious +id=522199 +rarity=U +[/card] +[card] +primitive=Flame Blitz +id=522200 +rarity=U +[/card] +[card] +primitive=Flametongue Yearling +id=522201 +rarity=U +[/card] +[card] +primitive=Fury +id=522202 +rarity=M +[/card] +[card] +primitive=Galvanic Relay +id=522203 +rarity=C +[/card] +[card] +primitive=Gargadon +id=522204 +rarity=C +[/card] +[card] +primitive=Glimpse of Tomorrow +id=522205 +rarity=R +[/card] +[card] +primitive=Goblin Traprunner +id=522206 +rarity=U +[/card] +[card] +primitive=Gouged Zealot +id=522207 +rarity=C +[/card] +[card] +primitive=Harmonic Prodigy +id=522208 +rarity=R +[/card] +[card] +primitive=Kaleidoscorch +id=522209 +rarity=U +[/card] +[card] +primitive=Lightning Spear +id=522210 +rarity=C +[/card] +[card] +primitive=Mine Collapse +id=522211 +rarity=C +[/card] +[card] +primitive=Mount Velus Manticore +id=522212 +rarity=C +[/card] +[card] +primitive=Obsidian Charmaw +id=522213 +rarity=R +[/card] +[card] +primitive=Ragavan, Nimble Pilferer +id=522214 +rarity=M +[/card] +[card] +primitive=Revolutionist +id=522215 +rarity=C +[/card] +[card] +primitive=Skophos Reaver +id=522216 +rarity=C +[/card] +[card] +primitive=Slag Strider +id=522217 +rarity=U +[/card] +[card] +primitive=Spreading Insurrection +id=522218 +rarity=U +[/card] +[card] +primitive=Strike It Rich +id=522219 +rarity=U +[/card] +[card] +primitive=Tavern Scoundrel +id=522220 +rarity=C +[/card] +[card] +primitive=Unholy Heat +id=522221 +rarity=C +[/card] +[card] +primitive=Viashino Lashclaw +id=522222 +rarity=C +[/card] +[card] +primitive=Abundant Harvest +id=522223 +rarity=C +[/card] +[card] +primitive=Aeve, Progenitor Ooze +id=522224 +rarity=R +[/card] +[card] +primitive=Bannerhide Krushok +id=522225 +rarity=C +[/card] +[card] +primitive=Blessed Respite +id=522226 +rarity=U +[/card] +[card] +primitive=Chatterfang, Squirrel General +id=522227 +rarity=M +[/card] +[card] +primitive=Chatterstorm +id=522228 +rarity=C +[/card] +[card] +primitive=Chitterspitter +id=522229 +rarity=R +[/card] +[card] +primitive=Crack Open +id=522230 +rarity=C +[/card] +[card] +primitive=Deepwood Denizen +id=522231 +rarity=C +[/card] +[card] +primitive=Duskshell Crawler +id=522232 +rarity=C +[/card] +[card] +primitive=Endurance +id=522233 +rarity=M +[/card] +[card] +primitive=Fae Offering +id=522234 +rarity=U +[/card] +[card] +primitive=Flourishing Strike +id=522235 +rarity=C +[/card] +[card] +primitive=Foundation Breaker +id=522236 +rarity=U +[/card] +[card] +primitive=Funnel-Web Recluse +id=522237 +rarity=C +[/card] +[card] +primitive=Gaea's Will +id=522238 +rarity=R +[/card] +[card] +primitive=Glimmer Bairn +id=522239 +rarity=C +[/card] +[card] +primitive=Glinting Creeper +id=522240 +rarity=U +[/card] +[card] +primitive=Herd Baloth +id=522241 +rarity=U +[/card] +[card] +primitive=Ignoble Hierarch +id=522242 +rarity=R +[/card] +[card] +primitive=Jade Avenger +id=522243 +rarity=C +[/card] +[card] +primitive=Jewel-Eyed Cobra +id=522244 +rarity=C +[/card] +[card] +primitive=Orchard Strider +id=522245 +rarity=C +[/card] +[card] +primitive=Rift Sower +id=522246 +rarity=C +[/card] +[card] +primitive=Sanctum Weaver +id=522247 +rarity=R +[/card] +[card] +primitive=Scurry Oak +id=522248 +rarity=U +[/card] +[card] +primitive=Smell Fear +id=522249 +rarity=C +[/card] +[card] +primitive=Squirrel Sanctuary +id=522250 +rarity=U +[/card] +[card] +primitive=Squirrel Sovereign +id=522251 +rarity=U +[/card] +[card] +primitive=Sylvan Anthem +id=522252 +rarity=R +[/card] +[card] +primitive=Terramorph +id=522253 +rarity=U +[/card] +[card] +primitive=Thrasta, Tempest's Roar +id=522254 +rarity=M +[/card] +[card] +primitive=Timeless Witness +id=522255 +rarity=U +[/card] +[card] +primitive=Tireless Provisioner +id=522256 +rarity=U +[/card] +[card] +primitive=Urban Daggertooth +id=522257 +rarity=C +[/card] +[card] +primitive=Verdant Command +id=522258 +rarity=R +[/card] +[card] +primitive=Wren's Run Hydra +id=522259 +rarity=U +[/card] +[card] +primitive=Arcbound Shikari +id=522260 +rarity=U +[/card] +[card] +primitive=Arcus Acolyte +id=522261 +rarity=U +[/card] +[card] +primitive=Asmoranomardicadaistinaculdacar +id=522262 +rarity=R +[/card] +[card] +primitive=Breathless Knight +id=522263 +rarity=C +[/card] +[card] +primitive=Captured by Lagacs +id=522264 +rarity=C +[/card] +[card] +primitive=Carth the Lion +id=522265 +rarity=R +[/card] +[card] +primitive=Chrome Courier +id=522266 +rarity=C +[/card] +[card] +primitive=Combine Chrysalis +id=522267 +rarity=U +[/card] +[card] +primitive=Dakkon, Shadow Slayer +id=522268 +rarity=M +[/card] +[card] +primitive=Dihada's Ploy +id=522269 +rarity=C +[/card] +[card] +primitive=Drey Keeper +id=522270 +rarity=C +[/card] +[card] +primitive=Ethersworn Sphinx +id=522271 +rarity=U +[/card] +[card] +primitive=Foundry Helix +id=522272 +rarity=C +[/card] +[card] +primitive=Garth One-Eye +id=522273 +rarity=M +[/card] +[card] +primitive=General Ferrous Rokiric +id=522274 +rarity=R +[/card] +[card] +primitive=Geyadrone Dihada +id=522275 +rarity=M +[/card] +[card] +primitive=Goblin Anarchomancer +id=522276 +rarity=C +[/card] +[card] +primitive=Graceful Restoration +id=522277 +rarity=U +[/card] +[card] +primitive=Grist, the Hunger Tide +id=522278 +rarity=M +[/card] +[card] +primitive=Lazotep Chancellor +id=522279 +rarity=U +[/card] +[card] +primitive=Lonis, Cryptozoologist +id=522280 +rarity=R +[/card] +[card] +primitive=Master of Death +id=522281 +rarity=R +[/card] +[card] +primitive=Moderation +id=522282 +rarity=R +[/card] +[card] +primitive=Piru, the Volatile +id=522283 +rarity=R +[/card] +[card] +primitive=Priest of Fell Rites +id=522284 +rarity=R +[/card] +[card] +primitive=Prophetic Titan +id=522285 +rarity=U +[/card] +[card] +primitive=Rakdos Headliner +id=522286 +rarity=U +[/card] +[card] +primitive=Ravenous Squirrel +id=522287 +rarity=U +[/card] +[card] +primitive=Road // Ruin +id=522288 +rarity=U +[/card] +[card] +primitive=Storm God's Oracle +id=522289 +rarity=C +[/card] +[card] +primitive=Sythis, Harvest's Hand +id=522290 +rarity=R +[/card] +[card] +primitive=Terminal Agony +id=522291 +rarity=C +[/card] +[card] +primitive=Territorial Kavu +id=522292 +rarity=R +[/card] +[card] +primitive=Wavesifter +id=522293 +rarity=C +[/card] +[card] +primitive=Yusri, Fortune's Flame +id=522294 +rarity=R +[/card] +[card] +primitive=Academy Manufactor +id=522295 +rarity=R +[/card] +[card] +primitive=Altar of the Goyf +id=522296 +rarity=U +[/card] +[card] +primitive=Batterbone +id=522297 +rarity=U +[/card] +[card] +primitive=Bottle Golems +id=522298 +rarity=C +[/card] +[card] +primitive=Brainstone +id=522299 +rarity=U +[/card] +[card] +primitive=Dermotaxi +id=522300 +rarity=R +[/card] +[card] +primitive=Diamond Lion +id=522301 +rarity=R +[/card] +[card] +primitive=Fodder Tosser +id=522302 +rarity=C +[/card] +[card] +primitive=Kaldra Compleat +id=522303 +rarity=M +[/card] +[card] +primitive=Liquimetal Torque +id=522304 +rarity=U +[/card] +[card] +primitive=Monoskelion +id=522305 +rarity=U +[/card] +[card] +primitive=Myr Scrapling +id=522306 +rarity=C +[/card] +[card] +primitive=Nettlecyst +id=522307 +rarity=R +[/card] +[card] +primitive=Ornithopter of Paradise +id=522308 +rarity=C +[/card] +[card] +primitive=Sanctuary Raptor +id=522309 +rarity=U +[/card] +[card] +primitive=Scion of Draco +id=522310 +rarity=M +[/card] +[card] +primitive=Sojourner's Companion +id=522311 +rarity=C +[/card] +[card] +primitive=Sol Talisman +id=522312 +rarity=R +[/card] +[card] +primitive=Steel Dromedary +id=522313 +rarity=U +[/card] +[card] +primitive=Sword of Hearth and Home +id=522314 +rarity=M +[/card] +[card] +primitive=Tormod's Cryptkeeper +id=522315 +rarity=C +[/card] +[card] +primitive=The Underworld Cookbook +id=522316 +rarity=U +[/card] +[card] +primitive=Vectis Gloves +id=522317 +rarity=U +[/card] +[card] +primitive=Void Mirror +id=522318 +rarity=R +[/card] +[card] +primitive=Zabaz, the Glimmerwasp +id=522319 +rarity=R +[/card] +[card] +primitive=Arid Mesa +id=522320 +rarity=R +[/card] +[card] +primitive=Darkmoss Bridge +id=522321 +rarity=C +[/card] +[card] +primitive=Drossforge Bridge +id=522322 +rarity=C +[/card] +[card] +primitive=Goldmire Bridge +id=522323 +rarity=C +[/card] +[card] +primitive=Marsh Flats +id=522324 +rarity=R +[/card] +[card] +primitive=Mistvault Bridge +id=522325 +rarity=C +[/card] +[card] +primitive=Misty Rainforest +id=522326 +rarity=R +[/card] +[card] +primitive=Power Depot +id=522327 +rarity=U +[/card] +[card] +primitive=Razortide Bridge +id=522328 +rarity=C +[/card] +[card] +primitive=Rustvale Bridge +id=522329 +rarity=C +[/card] +[card] +primitive=Scalding Tarn +id=522330 +rarity=R +[/card] +[card] +primitive=Silverbluff Bridge +id=522331 +rarity=C +[/card] +[card] +primitive=Slagwoods Bridge +id=522332 +rarity=C +[/card] +[card] +primitive=Tanglepool Bridge +id=522333 +rarity=C +[/card] +[card] +primitive=Thornglint Bridge +id=522334 +rarity=C +[/card] +[card] +primitive=Urza's Saga +id=522335 +rarity=R +[/card] +[card] +primitive=Verdant Catacombs +id=522336 +rarity=R +[/card] +[card] +primitive=Yavimaya, Cradle of Growth +id=522337 +rarity=R +[/card] +[card] +primitive=Plains +id=524948 +rarity=C +[/card] +[card] +primitive=Plains +id=524949 +rarity=C +[/card] +[card] +primitive=Island +id=524950 +rarity=C +[/card] +[card] +primitive=Island +id=524951 +rarity=C +[/card] +[card] +primitive=Swamp +id=524952 +rarity=C +[/card] +[card] +primitive=Swamp +id=524953 +rarity=C +[/card] +[card] +primitive=Mountain +id=524954 +rarity=C +[/card] +[card] +primitive=Mountain +id=524955 +rarity=C +[/card] +[card] +primitive=Forest +id=524956 +rarity=C +[/card] +[card] +primitive=Forest +id=524957 +rarity=C +[/card] +[card] +primitive=Sanctum Prelate +id=525097 +rarity=M +[/card] +[card] +primitive=Angelic Curator +id=526233 +rarity=U +[/card] +[card] +primitive=Karmic Guide +id=526234 +rarity=R +[/card] +[card] +primitive=Seal of Cleansing +id=526235 +rarity=U +[/card] +[card] +primitive=Solitary Confinement +id=526236 +rarity=R +[/card] +[card] +primitive=Soul Snare +id=526237 +rarity=U +[/card] +[card] +primitive=Counterspell +id=526238 +rarity=U +[/card] +[card] +primitive=Sea Drake +id=526239 +rarity=U +[/card] +[card] +primitive=Seal of Removal +id=526240 +rarity=U +[/card] +[card] +primitive=Upheaval +id=526241 +rarity=R +[/card] +[card] +primitive=Wonder +id=526242 +rarity=R +[/card] +[card] +primitive=Bone Shredder +id=526243 +rarity=U +[/card] +[card] +primitive=Braids, Cabal Minion +id=526244 +rarity=R +[/card] +[card] +primitive=Greed +id=526245 +rarity=U +[/card] +[card] +primitive=Patriarch's Bidding +id=526246 +rarity=R +[/card] +[card] +primitive=Skirge Familiar +id=526247 +rarity=U +[/card] +[card] +primitive=Chance Encounter +id=526248 +rarity=R +[/card] +[card] +primitive=Flame Rift +id=526249 +rarity=U +[/card] +[card] +primitive=Goblin Bombardment +id=526250 +rarity=R +[/card] +[card] +primitive=Gorilla Shaman +id=526251 +rarity=U +[/card] +[card] +primitive=Imperial Recruiter +id=526252 +rarity=M +[/card] +[card] +primitive=Mogg Salvage +id=526253 +rarity=U +[/card] +[card] +primitive=Enchantress's Presence +id=526254 +rarity=R +[/card] +[card] +primitive=Hunting Pack +id=526255 +rarity=U +[/card] +[card] +primitive=Quirion Ranger +id=526256 +rarity=U +[/card] +[card] +primitive=Squirrel Mob +id=526257 +rarity=R +[/card] +[card] +primitive=Titania, Protector of Argoth +id=526258 +rarity=M +[/card] +[card] +primitive=Yavimaya Elder +id=526259 +rarity=U +[/card] +[card] +primitive=Chainer, Nightmare Adept +id=526260 +rarity=R +[/card] +[card] +primitive=Fire // Ice +id=526261 +rarity=R +[/card] +[card] +primitive=Mirari's Wake +id=526262 +rarity=M +[/card] +[card] +primitive=Shardless Agent +id=526263 +rarity=R +[/card] +[card] +primitive=Sterling Grove +id=526264 +rarity=R +[/card] +[card] +primitive=Vindicate +id=526265 +rarity=R +[/card] +[card] +primitive=Cursed Totem +id=526266 +rarity=R +[/card] +[card] +primitive=Extruder +id=526267 +rarity=U +[/card] +[card] +primitive=Millikin +id=526268 +rarity=U +[/card] +[card] +primitive=Nevinyrral's Disk +id=526269 +rarity=R +[/card] +[card] +primitive=Patchwork Gnomes +id=526270 +rarity=U +[/card] +[card] +primitive=Zuran Orb +id=526271 +rarity=U +[/card] +[card] +primitive=Cabal Coffers +id=526272 +rarity=M +[/card] +[card] +primitive=Mishra's Factory +id=526273 +rarity=U +[/card] +[card] +primitive=Riptide Laboratory +id=526274 +rarity=R +[/card] \ No newline at end of file diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 3b07790a3..07d0a6b22 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 programatically - Vitty85 25-04-2021 +#I sorted this programatically - Vitty85 16-06-2021 [card] name=AEther Rift auto=@each my upkeep restriction{compare(phandcount)~equalto~1}:all(*|myhand) moveto(mygraveyard) and!( counter(0/0,1,RiftEffect) )! @@ -36,6 +36,13 @@ mana={X}{1}{B} type=Sorcery [/card] [card] +name=Abiding Grace +auto=@each my endofturn:transforms((,newability[if type(creature[manacost=1]|myGraveyard)~equalto~0 then name(Gain 1 life) name(Gain 1 life) life:1 controller],newability[if type(creature[manacost=1]|myGraveyard)~morethan~0 then choice name(Gain 1 life) name(Gain 1 life) life:1 controller],newability[if type(creature[manacost=1]|myGraveyard)~morethan~0 then choice name(Return creature) name(Return creature) target(creature[manacost=1]|myGraveyard) moveto(myBattlefield)])) oneshot +text=At the beginning of your end step, choose one — -- • You gain 1 life. -- • Return target creature card with mana value 1 from your graveyard to the battlefield. +mana={2}{W} +type=Enchantment +[/card] +[card] name=Abnormal Endurance target=creature auto=transforms((,newability[2/0],newability[inplaytapdeath])) ueot @@ -165,6 +172,21 @@ power=3 toughness=2 [/card] [card] +name=Academy Manufactor +auto=@tokencreated(food|myBattlefield):token(Clue,Artifact Clue,0/0,notrigger) and!( transforms((,newability[{S}{2}:draw:1])) forever )! controller +auto=@tokencreated(food|myBattlefield):token(Treasure,Artifact Treasure,0/0,notrigger) and!( transforms((,newability[{T}{S}:add{W}],newability[{T}{S}:add{U}],newability[{T}{S}:add{G}],newability[{T}{S}:add{B}],newability[{T}{S}:add{R}])) forever )! controller +auto=@tokencreated(clue|myBattlefield):token(Food,Artifact Food,0/0,notrigger) and!( transforms((,newability[{2}{T}{S}:life:3])) forever )! controller +auto=@tokencreated(clue|myBattlefield):token(Treasure,Artifact Treasure,0/0,notrigger) and!( transforms((,newability[{T}{S}:add{W}],newability[{T}{S}:add{U}],newability[{T}{S}:add{G}],newability[{T}{S}:add{B}],newability[{T}{S}:add{R}])) forever )! controller +auto=@tokencreated(treasure|myBattlefield):token(Food,Artifact Food,0/0,notrigger) and!( transforms((,newability[{2}{T}{S}:life:3])) forever )! controller +auto=@tokencreated(treasure|myBattlefield):token(Clue,Artifact Clue,0/0,notrigger) and!( transforms((,newability[{S}{2}:draw:1])) forever )! controller +text=If you would create a Clue, Food, or Treasure token, instead create one of each. +mana={3} +type=Artifact Creature +subtype=Assembly-Worker +power=1 +toughness=3 +[/card] +[card] name=Access Tunnel auto={T}:add{C} auto={3}{T}:name(Creature becomes unblockable) target(creature[power<=3]|battlefield) transforms((,newability[unblockable])) ueot @@ -505,6 +527,17 @@ mana={G} type=Instant [/card] [card] +name=Aeromoeba +abilities=flying +auto={D(*|myHand)}:swap +text=Flying -- Discard a card: Switch Aeromoeba's power and toughness until end of turn. +mana={3}{U} +type=Creature +subtype=Elemental Beast +power=2 +toughness=4 +[/card] +[card] name=Aeromunculus abilities=flying auto={2}{G}{U}:this(counter{1/1.1}<1) transforms((,newability[counter(1/1.1)])) forever @@ -620,6 +653,17 @@ power=3 toughness=3 [/card] [card] +name=Aeve, Progenitor Ooze +auto=counter(1/1,type:*[ooze]:mybattlefield) +auto=if cantargetcard(*[-token]) then thisforeach(variable{pstormcount}>=2) clone options(nolegend) +text=Storm (When you cast this spell, copy it for each spell cast before it this turn. Copies become tokens.) -- Aeve, Progenitor Ooze isn't legendary if it's a token. -- Aeve enters the battlefield with a +1/+1 counter on it for each other Ooze you control. +mana={2}{G}{G}{G} +type=Legendary Creature +subtype=Ooze +power=2 +toughness=2 +[/card] +[card] name=Affectionate Indrik auto=may target(creature|opponentbattlefield) dynamicability text=When Affectionate Indrik enters the battlefield, you may have it fight target creature you don't control. (Each deals damage equal to its power to the other.) @@ -1262,6 +1306,15 @@ mana={2} type=Artifact [/card] [card] +name=Altar of the Goyf +auto=@combat(attackedalone) source(creature|myBattlefield):all(trigger[to]) allgravecardtypes/allgravecardtypes ueot +auto=lord(*[lhurgoyf]|myBattlefield) trample +text=Whenever a creature you control attacks alone, it gets +X/+X until end of turn, where X is the number of card types among cards in all graveyards. -- Lhurgoyf creatures you control have trample. +mana={5} +type=Tribal Artifact +subtype=Lhurgoyf +[/card] +[card] name=Altar of the Lost auto=tap(noevent) auto=this(variable{type:*[hasflashback]:mygraveyard}>0) {T}:add{W}{B} @@ -1611,19 +1664,6 @@ power=3 toughness=4 [/card] [card] -name=Angel of the Ruins -abilities=flying -aicode=activate target(plains|mylibrary) moveto(myhand) -autohand={2}{cycle}:name(search plain) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>plains|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 -auto=target(*[artifact;enchantment]|battlefield) moveto(exile) -text=Flying -- When Angel of the Ruins enters the battlefield, exile up to two target artifacts and/or enchantments. -- Plainscycling {2} ({2}, Discard this card: Search your library for a Plains card, reveal it, put it into your hand, then shuffle.) -mana={5}{W}{W} -type=Artifact Creature -subtype=Angel -power=5 -toughness=7 -[/card] -[card] name=Angel of Vitality abilities=flying,lifefaker auto=this(controllerlife > 24) 2/2 @@ -1659,6 +1699,19 @@ power=4 toughness=4 [/card] [card] +name=Angel of the Ruins +abilities=flying +aicode=activate target(plains|mylibrary) moveto(myhand) +autohand={2}{cycle}:name(search plain) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>plains|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 +auto=target(*[artifact;enchantment]|battlefield) moveto(exile) +text=Flying -- When Angel of the Ruins enters the battlefield, exile up to two target artifacts and/or enchantments. -- Plainscycling {2} ({2}, Discard this card: Search your library for a Plains card, reveal it, put it into your hand, then shuffle.) +mana={5}{W}{W} +type=Artifact Creature +subtype=Angel +power=5 +toughness=7 +[/card] +[card] name=Angel's Grace abilities=split second auto=all(*|mybattlefield) transforms((,newability[this(controllerlife >= 1) transforms((,newability[reduceto:1]))],newability[cantlose])) ueot @@ -2299,6 +2352,114 @@ power=3 toughness=3 [/card] [card] +name=Arcbound Javelineer +abilities=modular +modular=1 +auto=@movedTo(this|mygraveyard) from(myBattlefield):may thisforeach(counter{1/1.1}) counter(1/1,1) target(creature[artifact]) +auto={T}{C(1/1,-1)}:name(Deals 1 damage) target(creature[attacking;blocking]) damage:1 +auto={T}{C(1/1,-2)}:name(Deals 2 damage) target(creature[attacking;blocking]) damage:2 +auto={T}{C(1/1,-3)}:name(Deals 3 damage) target(creature[attacking;blocking]) damage:3 +auto={T}{C(1/1,-4)}:name(Deals 4 damage) target(creature[attacking;blocking]) damage:4 +auto={T}{C(1/1,-5)}:name(Deals 5 damage) target(creature[attacking;blocking]) damage:5 +auto={T}{C(1/1,-6)}:name(Deals 6 damage) target(creature[attacking;blocking]) damage:6 +auto={T}{C(1/1,-7)}:name(Deals 7 damage) target(creature[attacking;blocking]) damage:7 +auto={T}{C(1/1,-8)}:name(Deals 8 damage) target(creature[attacking;blocking]) damage:8 +auto={T}{C(1/1,-9)}:name(Deals 9 damage) target(creature[attacking;blocking]) damage:9 +auto={T}{C(1/1,-10)}:name(Deals 10 damage) target(creature[attacking;blocking]) damage:10 +auto={T}{C(1/1,-11)}:name(Deals 11 damage) target(creature[attacking;blocking]) damage:11 +auto={T}{C(1/1,-12)}:name(Deals 12 damage) target(creature[attacking;blocking]) damage:12 +auto={T}{C(1/1,-13)}:name(Deals 13 damage) target(creature[attacking;blocking]) damage:13 +auto={T}{C(1/1,-14)}:name(Deals 14 damage) target(creature[attacking;blocking]) damage:14 +auto={T}{C(1/1,-15)}:name(Deals 15 damage) target(creature[attacking;blocking]) damage:15 +auto={T}{C(1/1,-16)}:name(Deals 16 damage) target(creature[attacking;blocking]) damage:16 +auto={T}{C(1/1,-17)}:name(Deals 17 damage) target(creature[attacking;blocking]) damage:17 +auto={T}{C(1/1,-18)}:name(Deals 18 damage) target(creature[attacking;blocking]) damage:18 +auto={T}{C(1/1,-19)}:name(Deals 19 damage) target(creature[attacking;blocking]) damage:19 +auto={T}{C(1/1,-20)}:name(Deals 20 damage) target(creature[attacking;blocking]) damage:20 +text={T}, Remove X +1/+1 counters from Arcbound Javelineer: It deals X damage to target attacking or blocking creature. -- Modular 1 (This creature enters the battlefield with a +1/+1 counter on it. When it dies, you may put its +1/+1 counters on target artifact creature.) +mana={W} +type=Artifact Creature +subtype=Soldier +power=0 +toughness=1 +[/card] +[card] +name=Arcbound Mouser +abilities=lifelink,modular +modular=1 +auto=@movedTo(this|mygraveyard) from(myBattlefield):may thisforeach(counter{1/1.1}) counter(1/1,1) target(creature[artifact]) +text=Lifelink -- Modular 1 (This creature enters the battlefield with a +1/+1 counter on it. When it dies, you may put its +1/+1 counters on target artifact creature.) +mana={W} +type=Artifact Creature +subtype=Cat +power=0 +toughness=0 +[/card] +[card] +name=Arcbound Prototype +abilities=modular +modular=2 +auto=@movedTo(this|mygraveyard) from(myBattlefield):may thisforeach(counter{1/1.1}) counter(1/1,1) target(creature[artifact]) +text=Modular 2 (This creature enters the battlefield with two +1/+1 counters on it. When it dies, you may put its +1/+1 counters on target artifact creature.) +mana={1}{W} +type=Artifact Creature +subtype=Assembly-Worker +power=0 +toughness=0 +[/card] +[card] +name=Arcbound Shikari +abilities=modular,first strike +modular=2 +auto=@movedTo(this|mygraveyard) from(myBattlefield):may name(Put 1/1 counters) thisforeach(counter{1/1.1}) counter(1/1,1) target(creature[artifact]) +text=First strike -- When Arcbound Shikari enters the battlefield, put a +1/+1 counter on each other artifact creature you control. -- Modular 2 (This creature enters the battlefield with two +1/+1 counters on it. When it dies, you may put its +1/+1 counters on target artifact creature.) +mana={1}{R}{W} +type=Artifact Creature +subtype=Cat Soldier +power=0 +toughness=0 +[/card] +[card] +name=Arcbound Slasher +abilities=modular +modular=4 +auto=@movedTo(this|mygraveyard) from(myBattlefield):may thisforeach(counter{1/1.1}) counter(1/1,1) target(creature[artifact]) +auto=choice counter(1/1) +auto=choice aslongas(creature|myBattlefield) haste +text=Modular 4 (This creature enters the battlefield with four +1/+1 counters on it. When it dies, you may put its +1/+1 counters on target artifact creature.) -- Riot (This creature enters the battlefield with your choice of an additional +1/+1 counter or haste.) +mana={4}{R} +type=Artifact Creature +subtype=Cat +power=0 +toughness=0 +[/card] +[card] +name=Arcbound Tracker +abilities=menace,modular +modular=2 +auto=@movedTo(this|mygraveyard) from(myBattlefield):may thisforeach(counter{1/1.1}) counter(1/1,1) target(creature[artifact]) +auto=@movedto(*|mystack) restriction{thisturn(*|mystack)~morethan~0}:name(Counter 1/1) counter(1/1) +text=Menace -- Modular 2 (This creature enters the battlefield with two +1/+1 counters on it. When it dies, you may put its +1/+1 counters on target artifact creature.) -- Whenever you cast a spell other than your first spell each turn, put a +1/+1 counter on Arcbound Tracker. +mana={2}{R} +type=Artifact Creature +subtype=Dog +power=0 +toughness=0 +[/card] +[card] +name=Arcbound Whelp +abilities=flying,modular +modular=2 +auto=@movedTo(this|mygraveyard) from(myBattlefield):may thisforeach(counter{1/1.1}) counter(1/1,1) target(creature[artifact]) +auto={R}:name(Gets 1/0) 1/0 ueot +text=Flying -- {R}: Arcbound Whelp gets +1/+0 until end of turn. -- Modular 2 (This creature enters the battlefield with two +1/+1 counters on it. When it dies, you may put its +1/+1 counters on target artifact creature.) +mana={3}{R} +type=Artifact Creature +subtype=Dragon +power=0 +toughness=0 +[/card] +[card] name=Arch of Orazca auto=_ASCEND_ auto=@movedTo(*|myBattlefield):_ASCEND_ @@ -2308,6 +2469,15 @@ text=Ascend (If you control ten or more permanents, you get the city's blessing type=Land [/card] [card] +name=Archaeomancer's Map +aicode=activate moveTo(myhand) and!( shuffle )! target(plains[basic]|myLibrary) +auto=name(Search 2 plains) reveal:plibrarycount optionone name(choose card) target(plains[basic]|reveal) moveto(myhand) optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(mylibrary) and!( all(*|reveal) moveto(mylibrary) and!(shuffle)! )! optiontwoend revealend +auto=@movedTo(land|opponentbattlefield) restriction{compare(type:land:opponentbattlefield)~morethan~compare(type:land:mybattlefield)}:may name(Put land in play) target(land|myhand) moveto(mybattlefield) +text=When Archaeomancer's Map enters the battlefield, search your library for up to two basic Plains cards, reveal them, put them into your hand, then shuffle. -- Whenever a land enters the battlefield under an opponent's control, if that player controls more lands than you, you may put a land card from your hand onto the battlefield. +mana={2}{W} +type=Artifact +[/card] +[card] name=Archaeomender auto=moveto(myhand) target(artifact|mygraveyard) text=When Archaeomender enters the battlefield, return target artifact card from your graveyard to your hand. @@ -2341,15 +2511,6 @@ power=2 toughness=4 [/card] [card] -name=Archaeomancer's Map -aicode=activate moveTo(myhand) and!( shuffle )! target(plains[basic]|myLibrary) -auto=name(Search 2 plains) reveal:plibrarycount optionone name(choose card) target(plains[basic]|reveal) moveto(myhand) optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(mylibrary) and!( all(*|reveal) moveto(mylibrary) and!(shuffle)! )! optiontwoend revealend -auto=@movedTo(land|opponentbattlefield) restriction{compare(type:land:opponentbattlefield)~morethan~compare(type:land:mybattlefield)}:may name(Put land in play) target(land|myhand) moveto(mybattlefield) -text=When Archaeomancer's Map enters the battlefield, search your library for up to two basic Plains cards, reveal them, put them into your hand, then shuffle. -- Whenever a land enters the battlefield under an opponent's control, if that player controls more lands than you, you may put a land card from your hand onto the battlefield. -mana={2}{W} -type=Artifact -[/card] -[card] name=Archfiend of Despair abilities=flying,nolifegainopponent auto=@each endofturn:life:-oplifelost opponent @@ -2373,6 +2534,18 @@ power=5 toughness=4 [/card] [card] +name=Archfiend of Sorrows +abilities=flying +auto=all(creature|opponentbattlefield) -2/-2 ueot +autograveyard={3}{B}{B}:name(Unearth) moveto(mybattlefield) and!( transforms((,newability[haste],newability[unearth],newability[exiledeath])) forever )! asSorcery +text=Flying -- When Archfiend of Sorrows enters the battlefield, creatures your opponents control get -2/-2 until end of turn. -- Unearth {3}{B}{B} ({3}{B}{B}: Return this card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.) +mana={5}{B}{B} +type=Creature +subtype=Demon +power=4 +toughness=5 +[/card] +[card] name=Archfiend of Spite abilities=flying,madness autoexile=restriction{discarded} pay({3}{B}{B}) name(pay 3BB to cast) activate name(pay 2G to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard) @@ -2387,7 +2560,7 @@ toughness=6 [card] name=Archfiend's Vessel abilities=lifelink -autograveyard=@movedTo(this|mybattlefield) from(mygraveyard):all(this) moveTo(exile) && token(Demon Arc) +autograveyard=@movedTo(this|mybattlefield) from(mygraveyard):all(this) moveTo(exile) && token(Demon,Creature Demon,5/5,black,flying) text=Lifelink (Damage dealt by this creature also causes you to gain that much life.) -- When Archfiend's Vessel enters the battlefield, if it entered from your graveyard or you cast it from your graveyard, exile it. If you do, create a 5/5 black Demon creature token with flying. mana={B} type=Creature @@ -2459,6 +2632,22 @@ power=5 toughness=5 [/card] [card] +name=Archon of Cruelty +abilities=flying +auto=ability$!name(Sacrifice creature or planeswalker) name(Sacrifice creature or planeswalker) target(*[creature;planeswalker]|mybattlefield) sacrifice!$ opponent +auto=ability$!name(Discard a card) name(Discard a card) target(*|myhand) reject!$ opponent +auto=life:-3 opponent && life:3 controller && draw:1 controller +auto=@combat(attacking) source(this):ability$!name(Sacrifice creature or planeswalker) name(Sacrifice creature or planeswalker) target(*[creature;planeswalker]|mybattlefield) sacrifice!$ opponent +auto=@combat(attacking) source(this):ability$!name(Discard a card) name(Discard a card) target(*|myhand) reject!$ opponent +auto=@combat(attacking) source(this):life:-3 opponent && life:3 controller && draw:1 controller +text=Flying -- Whenever Archon of Cruelty enters the battlefield or attacks, target opponent sacrifices a creature or planeswalker, discards a card, and loses 3 life. You draw a card and gain 3 life. +mana={6}{B}{B} +type=Creature +subtype=Archon +power=6 +toughness=6 +[/card] +[card] name=Archon of Emeria abilities=flying auto=maxCast(*)1 @@ -2582,6 +2771,18 @@ mana={2} type=Artifact [/card] [card] +name=Arcus Acolyte +abilities=reach,lifelink +auto={GW}{T}:name(Outlast) counter(1/1) asSorcery +auto=lord(other creature[-counter{1/1.1}]|mybattlefield) transforms((,newability[{GW}{T}:name(Outlast) counter(1/1) asSorcery])) +text=Reach, lifelink -- Outlast {G} or {W} ({G} or {W}, {T}: Put a +1/+1 counter on this creature. Outlast only as a sorcery.) -- Each other creature you control without a +1/+1 counter on it has outlast {G} or {W}. +mana={G}{W} +type=Creature +subtype=Human Cleric Archer +power=2 +toughness=2 +[/card] +[card] name=Ardenn, Intrepid Archaeologist abilities=partner auto=@each my combatbegins:may target(equipment|battlefield) rehook @@ -2995,6 +3196,22 @@ power=3 toughness=5 [/card] [card] +name=Asmoranomardicadaistinaculdacar +other={BR} name(Cast Asmoranomardicadaistinaculdacar) +otherrestriction=compare(hascntdscrd)~morethan~0 +restriction=never +autohand=@discarded(*|myHand):counter(0/0.1.dscrd) +autohand=@each end:removeallcounters(0/0,1,dscrd) +auto=may name(Search library) target(The Underworld Cookbook|mylibrary) moveto(myHand) and!( shuffle )! +auto={S(food[token]|myBattlefield)}{S(food[token]|myBattlefield)}:name(Sacrifice 2 foods) target(creature) transforms((,newability[damage:6])) oneshot +text=As long as you've discarded a card this turn, you may pay {B} or {R} to cast this spell. -- When Asmoranomardicadaistinaculdacar enters the battlefield, you may search your library for a card named The Underworld Cookbook, reveal it, put it into your hand, then shuffle. -- Sacrifice two Foods: Target creature deals 6 damage to itself. +type=Legendary Creature +subtype=Human Wizard +color=black,red +power=3 +toughness=3 +[/card] +[card] name=Aspect of Lamprey target=creature|myBattlefield auto=target(opponent) ability$!name(discard 2 cards) target(<2>*|myhand) reject!$ targetedplayer @@ -4020,6 +4237,18 @@ mana={S(creature|myBattlefield)}{S(creature|myBattlefield)}{1}{B} type=Sorcery [/card] [card] +name=Bannerhide Krushok +abilities=trample +autohand={1}{G}{discard}:name(Reinforce) counter(1/1,2) target(creature) +autograveyard={5}{G}{G}{E}:name(scavenge) counter(1/1,storedpower) target(creature) asSorcery +text=Trample -- Reinforce 2—{1}{G} ({1}{G}, Discard this card: Put two +1/+1 counters on target creature.) -- Scavenge {5}{G}{G} ({5}{G}{G}, Exile this card from your graveyard: Put a number of +1/+1 counters equal to this card's power on target creature. Scavenge only as a sorcery.) +mana={3}{G} +type=Creature +subtype=Beast +power=4 +toughness=4 +[/card] +[card] name=Barbarian Bully auto={0} restriction{compare(opponentlifetotal)~lessthan~5}:name(Discard a random card) discard:1 && all(this) 2/2 ueot auto={0} restriction{compare(opponentlifetotal)~morethan~4}:name(Discard a random card) transforms((,newability[discard:1 controller],newability[if compare(genrand2)~equalto~0 then 2/2 ueot else damage:4 opponent])) oneshot @@ -4041,6 +4270,16 @@ mana={2}{R} type=Instant [/card] [card] +name=Barbed Spike +auto={2}:equip +auto=teach(creature) 1/0 +auto=livingweapontoken(Thopter,Creature Thopter,1/1,flying) +text=When Barbed Spike enters the battlefield, create a 1/1 colorless Thopter artifact creature token with flying, then attach Barbed Spike to it. -- Equipped creature gets +1/+0. -- Equip {2} +mana={1}{W} +type=Artifact +subtype=Equipment +[/card] +[card] name=Barbed Wire auto=@each opponent upkeep:damage:1 opponent auto=@each my upkeep:damage:1 controller @@ -4318,6 +4557,17 @@ power=2 toughness=2 [/card] [card] +name=Batterbone +auto={5}:equip +auto=teach(creature) 1/1 +auto=teach(creature) vigilance +auto=livingweapontoken(Phyrexian Germ,Creature Phyrexian Germ,0/0,black) +text=Living weapon (When this Equipment enters the battlefield, create a 0/0 black Phyrexian Germ creature token, then attach this to it.) -- Equipped creature gets +1/+1 and has vigilance and lifelink. -- Equip {5} +mana={2} +type=Artifact +subtype=Equipment +[/card] +[card] name=Battershield Warrior abilities=boast auto={1}{W} restriction{didattack,compare(hascntbstreduce)~equalto~0}:doboast && all(creature|mybattlefield) transforms((,newability[1/1])) ueot limit:hasabilitytwoboastplus1plusend @@ -4343,6 +4593,15 @@ power=6 toughness=5 [/card] [card] +name=Battle Plan +aicode=activate target(land[basic]|mylibrary) moveto(myhand) +autohand={1}{R}{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 +auto=@each my combatbegins:name(Creature gets 2/0) target(creature) 2/0 ueot +text=At the beginning of combat on your turn, target creature you control gets +2/+0 until end of turn. -- Basic landcycling {1}{R} ({1}{R}, Discard this card: Search your library for a basic land card, reveal it, put it into your hand, then shuffle.) +mana={3}{R} +type=Enchantment +[/card] +[card] name=Battle at the Bridge target=creature other={improvise} name(Improvise) @@ -5243,6 +5502,15 @@ power=3 toughness=1 [/card] [card] +name=Blacksmith's Skill +target=*|battlefield +auto=transforms((,newability[opponentshroud],newability[indestructible])) ueot +auto=if cantargetcard(creature[artifact]|*) then 2/2 ueot +text=Target permanent gains hexproof and indestructible until end of turn. If it's an artifact creature, it gets +2/+2 until end of turn. +mana={W} +type=Instant +[/card] +[card] name=Blade Banish target=creature[power>=4] auto=moveTo(exile) @@ -5366,6 +5634,18 @@ mana={W} type=Instant [/card] [card] +name=Blazing Rootwalla +auto={R}:2/0 ueot limit:1 +abilities=madness +autoexile=restriction{discarded} pay({0}) name(pay 0 to cast) activate name(pay 0 to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard) +text={R}: Blazing Rootwalla gets +2/+0 until end of turn. Activate only once each turn. -- Madness 0 (If you discard this card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.) +mana={R} +type=Creature +subtype=Lizard +power=1 +toughness=1 +[/card] +[card] name=Blazing Sunsteel auto={4}:equip auto=teach(creature) 1/0 @@ -5434,6 +5714,15 @@ mana={3}{U} type=Instant [/card] [card] +name=Blessed Respite +target=player +auto=moveTo(ownerlibrary) and!(shuffle)! all(*|targetedpersonsgraveyard) +auto=preventAllcombatDamage ueot +text=Target player shuffles their graveyard into their library. Prevent all combat damage that would be dealt this turn. +mana={1}{G} +type=Instant +[/card] +[card] name=Blessed Sanctuary auto=preventallnoncombatdamage to(creature|myBattlefield) auto=preventallnoncombatdamage to(controller) @@ -5842,6 +6131,17 @@ power=4 toughness=4 [/card] [card] +name=Bloodbraid Marauder +abilities=cantblock +autostack=if delirium then if casted(this) then cascade:plibrarycount +text=Bloodbraid Marauder can't block. -- Delirium — This spell has cascade as long as there are four or more card types among cards in your graveyard. (When you cast this spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order.) +mana={1}{R} +type=Creature +subtype=Human Berserker +power=3 +toughness=1 +[/card] +[card] name=Bloodchief's Thirst kicker={2}{B} auto=if paid(kicker) then destroy target(*[creature;planeswalker]) @@ -6045,6 +6345,17 @@ power=3 toughness=3 [/card] [card] +name=Blossoming Calm +auto=life:2 controller +auto=all(*|myBattlefield) transforms((,newability[controllershroud])) uynt +auto=token(BlossomingEffect,BlossomingEffect,0/0,shroud,indestructible,controllershroud) and!( transforms((,newability[phaseaction[opponent end once sourceinplay] sacrifice])) forever )! +auto=if rebound then ability$!moveto(exile) all(Blossoming Calm|mystack)!$ controller +autoexile=@rebounded:may activate castcard(normal) +text=You gain hexproof until your next turn. You gain 2 life. -- Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.) +mana={W} +type=Instant +[/card] +[card] name=Blot Out the Sky auto=token(Inkling,Creature Inkling,2/1,white,black,flying)*x and!( tap(noevent) )! auto=this(X>=6) all(*[-creature;-land]|battlefield) destroy @@ -6392,6 +6703,17 @@ power=4 toughness=5 [/card] [card] +name=Bone Shards +target=creature,planeswalker +other={B}{D(*|myHand)} name(Discard a card) +otherrestriction=type(*|myhand)~morethan~0 +restriction=type(creature|myBattlefield)~morethan~0 +auto=destroy +text=As an additional cost to cast this spell, sacrifice a creature or discard a card. -- Destroy target creature or planeswalker. +mana={B}{S(creature|myBattlefield)} +type=Sorcery +[/card] +[card] name=Boneclad Necromancer auto=may moveTo(Exile) target(creature|graveyard) && create(zombie:creature zombie:2/2:black) text=When Boneclad Necromancer enters the battlefield, you may exile target creature card from a graveyard. If you do, create a 2/2 black Zombie creature token. @@ -6658,6 +6980,17 @@ text=Boseiju, Who Shelters All enters the battlefield tapped. -- {T}, Pay 2 life type=Legendary Land [/card] [card] +name=Bottle Golems +abilities=trample +auto=@movedto(this|graveyard) from(battlefield):name(Gain life) life:power controller +text=Trample -- When Bottle Golems dies, you gain life equal to its power. +mana={4} +type=Artifact Creature +subtype=Golem +power=3 +toughness=3 +[/card] +[card] name=Bottled Cloister auto=@each opponent upkeep:all(*|myhand) moveto(ownerexile) and!( counter(0/0,1,BottledExiled) )! auto=@each my upkeep:draw:1 controller @@ -6762,6 +7095,13 @@ power=4 toughness=2 [/card] [card] +name=Brainstone +auto={2}{T}{S}:draw:3 && transforms((,newability[target(<2>*|myhand) moveto(mylibrary)])) forever +text={2}, {T}, Sacrifice Brainstone: Draw three cards, then put two cards from your hand on top of your library in any order. +mana={1} +type=Artifact +[/card] +[card] name=Brallin, Skyshark Rider abilities=hiddenface,partner aicode=activate moveTo(myhand) target(Shabraz^ the Skyshark|mylibrary) @@ -6905,6 +7245,28 @@ power=3 toughness=3 [/card] [card] +name=Break Ties +autohand={W}{discard}:name(Reinforce) counter(1/1) target(creature) +auto=if type(artifact|battlefield)~morethan~0 then choice name(Destroy artifact) name(Destroy artifact) target(artifact) destroy +auto=if type(enchantment|battlefield)~morethan~0 then choice name(Destroy enchantment) name(Destroy enchantment) target(enchantment) destroy +auto=if type(*|graveyard)~morethan~0 then choice name(Exile card) name(Exile card) target(*|graveyard) moveto(exile) +text=Choose one — -- • Destroy target artifact. -- • Destroy target enchantment. -- • Exile target card from a graveyard. -- Reinforce 1 — {W} ({W}, Discard this card: Put a +1/+1 counter on target creature.) +mana={2}{W} +type=Instant +[/card] +[card] +name=Break the Ice +abilities=overload +other={4}{B}{B} name(Overload) +auto=overload destroy all(land[snow]|battlefield) +auto=overload all(land[-plains;-mountain;-island;-swamp;-forest]) destroy +auto=paidmana choice name(Destroy snow land) name(Destroy snow land) target(land[snow]) destroy +auto=paidmana choice name(Destroy colorless land) name(Destroy colorless land) target(land[-plains;-mountain;-island;-swamp;-forest]) destroy +text=Destroy target land that is snow or could produce {C}. -- Overload {4}{B}{B} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") +mana={B}{B} +type=Sorcery +[/card] +[card] name=Breaking // Entering abilities=hasnokicker other={4}{B}{R} name(Entering) @@ -6935,6 +7297,17 @@ mana={1}{R} type=Instant [/card] [card] +name=Breathless Knight +abilities=flying,lifelink +auto=if gravecast then counter(1/1) +text=Flying, lifelink -- Whenever Breathless Knight or another creature enters the battlefield under your control, if that creature entered from a graveyard or you cast it from a graveyard, put a +1/+1 counter on Breathless Knight. +mana={1}{W}{B} +type=Creature +subtype=Spirit Knight +power=2 +toughness=2 +[/card] +[card] name=Breeches, Brazen Plunderer abilities=menace,partner auto=@combatdamagefoeof(player) from(*[pirate]|myBattlefield):all(*[zpos=1]|opponentlibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[anytypeofmana],newability[phaseaction[endofturn once] moveTo(ownerexile)])) ueot )! @@ -6964,6 +7337,18 @@ text=Bretagard Stronghold enters the battlefield tapped. -- {T}: Add {G}. -- {G} type=Land [/card] [card] +name=Breya's Apprentice +auto=token(Thopter,Artifact Creature Thopter,1/1,flying) +auto={T}{S(artifact|myBattlefield)}:name(Exile top card) all(*[zpos=1]|myLibrary) moveto(exile) and!( transforms((,newability[canplayfromexile])) ueot )! +auto={T}{S(artifact|myBattlefield)}:name(Creature gets 2/0) target(creature) 2/0 ueot +text=When Breya's Apprentice enters the battlefield, create a 1/1 colorless Thopter artifact creature token with flying. -- {T}, Sacrifice an artifact: Choose one — -- • Exile the top card of your library. Until the end of your next turn, you may play that card. -- • Target creature gets +2/+0 until end of turn. +mana={2}{R} +type=Artifact Creature +subtype=Human Artificer +power=2 +toughness=3 +[/card] +[card] name=Briarblade Adept auto=@combat(attacking) source(this):target(creature|opponentbattlefield) -1/-1 ueot autograveyard={3}{B}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery @@ -7189,7 +7574,7 @@ toughness=6 [card] name=Bronze Guardian abilities=double strike -auto=foreach(artifact|mybattlefield) 1/0 +anyzone=type:artifact:myBattlefield/5 cdaactive auto=@targeted(artifact|myBattlefield) from(*[instant;sorcery]|opponentzones):choice name(This spell costs 2 more) name(This spell costs 2 more) target(*[instant;sorcery]|opponentzones) transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) oneshot text=Double strike -- Ward {2} (Whenever this creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays {2}.) -- Other artifacts you control have ward {2}. -- Bronze Guardian's power is equal to the number of artifacts you control. mana={4}{W} @@ -7341,6 +7726,17 @@ power=2 toughness=2 [/card] [card] +name=Burdened Aerialist +auto=token(Treasure Sur) +auto=@sacrificed(*[token]|mybattlefield):name(Gains flying) transforms((,newability[flying])) ueot +text=When Burdened Aerialist enters the battlefield, create a Treasure token. (It's an artifact with " {T}, Sacrifice this artifact: Add one mana of any color.") -- Whenever you sacrifice a token, Burdened Aerialist gains flying until end of turn. +mana={2}{U} +type=Creature +subtype=Human Pirate +power=3 +toughness=1 +[/card] +[card] name=Burglar Rat auto=ability$!name(discard) reject notatarget(*|myhand)!$ opponent text=When Burglar Rat enters the battlefield, each opponent discards a card. @@ -7501,6 +7897,17 @@ power=2 toughness=2 [/card] [card] +name=Cabal Initiate +auto={D(*|myHand)}:name(Gains lifelink) transforms((,newability[lifelink])) ueot +auto=aslongas(*|mygraveyard) 1/2 >6 +text=Discard a card: Cabal Initiate gains lifelink until end of turn. -- Threshold — Cabal Initiate gets +1/+2 as long as seven or more cards are in your graveyard. +mana={1}{B} +type=Creature +subtype=Human Warlock +power=2 +toughness=1 +[/card] +[card] name=Cabal Paladin auto=@movedTo(*[artifact;legendary;saga]|mystack):damage:2 opponent text=Whenever you cast a historic spell, Cabal Paladin deals 2 damage to each opponent. (Artifacts, legendaries, and Sagas are historic.) @@ -7611,6 +8018,15 @@ power=5 toughness=5 [/card] [card] +name=Calibrated Blast +flashback={3}{R}{R} +aicode=activate transforms((,newability[all(*[zpos=findfirsttypenonland]|mylibrary) moveto(myreveal) and!( bottomoflibrary and!( transforms((,newability[name(Deals damage) damage:manacost target(player^creature^planeswalker)],newability[all(*[zpos<=findfirsttypenonland]|mylibrary) moveto(myreveal) and!( bottomoflibrary )!])) oneshot )! )!])) oneshot +auto=name(Reveal non-land card) Reveal:1 revealzone(mylibrary) revealuntil(*[-land]|mylibrary) optionone choice name(Get Card) target(*[-land]|reveal) bottomoflibrary and!( transforms((,newability[name(Deals damage) damage:manacost target(player^creature^planeswalker)])) oneshot )! optiononeend optiontwo choice name(put on bottom) all(*|reveal) bottomoflibrary optiontwoend revealend +text=Reveal cards from the top of your library until you reveal a nonland card. Put the revealed cards on the bottom of your library in a random order. When you reveal a nonland card this way, Calibrated Blast deals damage equal to that card's mana value to any target. -- Flashback {3}{R}{R} (You may cast this card from your graveyard for its flashback cost. Then exile it.) +mana={2}{R} +type=Instant +[/card] +[card] name=Caligo Skin-Witch kicker={3}{B} auto=if paid(kicker) then ability$!name(discard 2 cards) target(<2>*|myhand) reject!$ opponent @@ -7813,6 +8229,17 @@ type=Land subtype=Swamp Mountain [/card] [card] +name=Caprichrome +abilities=flash,vigilance +auto=may name(Devour) target(other artifact|mybattlefield) sacrifice && counter(1/1,1) all(this) +text=Flash -- Vigilance -- Devour artifact 1 (As this enters the battlefield, you may sacrifice any number of artifacts. This creature enters the battlefield with that many +1/+1 counters on it.) +mana={3}{W} +type=Artifact Creature +subtype=Goat +power=2 +toughness=2 +[/card] +[card] name=Capricopian auto=counter(1/1,X) auto={2}:restriction{combatbeginsonly} all(this) counter(1/1) @@ -7836,6 +8263,16 @@ power=2 toughness=2 [/card] [card] +name=Captain Ripley Vance +auto=@movedto(*|mystack) restriction{thisturn(*|mystack)~equalto~2}:name(Counter 1/1) counter(1/1) && transforms((,newability[name(Deals damage) damage:power target(player^creature^planeswalker)])) oneshot +text=Whenever you cast your third spell each turn, put a +1/+1 counter on Captain Ripley Vance, then it deals damage equal to its power to any target. +mana={2}{R} +type=Legendary Creature +subtype=Human Pirate +power=3 +toughness=2 +[/card] +[card] name=Captain Vargus Wrath auto=@combat(attacking) source(this):all(pirate|myBattlefield) pnumofcommandcast/pnumofcommandcast ueot text=Whenever Captain Vargus Wrath attacks, Pirates you control get +1/+1 until end of turn for each time you've cast a commander from the command zone this game. @@ -7917,6 +8354,18 @@ type=Enchantment subtype=Aura [/card] [card] +name=Captured by Lagacs +target=creature +auto=cantattack +auto=cantpwattack +auto=cantblock +auto=may name(Support 2) target(creature|battlefield) counter(1/1) +text=Enchant creature -- Enchanted creature can't attack or block. -- When Captured by Lagacs enters the battlefield, support 2. (Put a +1/+1 counter on each of up to two target creatures.) +mana={1}{G}{W} +type=Enchantment +subtype=Aura +[/card] +[card] name=Careless Celebrant auto=@movedTo(this|mygraveyard) from(Battlefield):damage:2 target(creature,planeswalker|opponentBattlefield) text=When Careless Celebrant dies, it deals 2 damage to target creature or planeswalker an opponent controls. @@ -8021,6 +8470,20 @@ power=1 toughness=1 [/card] [card] +name=Carth the Lion +abilities=hiddenface +auto=activate transforms((,newability[if type(planeswalker[zpos<=7]|myLibrary)~morethan~0 then target(planeswalker[zpos<=7]|myLibrary) moveTo(myHand) and!( all(other *[zpos<=7]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )! else all(*[zpos<=7]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! ])) oneshot +auto=name(Look top 7 cards) reveal:7 optionone name(Get a planeswalker) target(planeswalker|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto=@movedto(planeswalker|graveyard) from(myBattlefield):name(Look top 7 cards) reveal:7 optionone name(Get a planeswalker) target(planeswalker|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto=lord(planeswalker|myBattlefield) transforms((,newability[@countermod(0/0.1.Loyalty) from(this) restriction{myturnonly} turnlimited:counter(0/0.1.loyalty)])) +text=Whenever Carth the Lion enters the battlefield or a planeswalker you control dies, look at the top seven cards of your library. You may reveal a planeswalker card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. -- Planeswalkers' loyalty abilities you activate cost an additional +1 to activate. +mana={2}{B}{G} +type=Legendary Creature +subtype=Human Warrior +power=3 +toughness=5 +[/card] +[card] name=Cartographer's Hawk abilities=flying aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(plains|myLibrary) @@ -8870,7 +9333,7 @@ type=Sorcery [/card] [card] name=Chandra's Magmutt -auto={T}damage:1 target(player,planeswalker) +auto={T}:damage:1 target(player,planeswalker) text={T}: Chandra's Magmutt deals 1 damage to target player or planeswalker. mana={1}{R} type=Creature @@ -8928,7 +9391,7 @@ toughness=1 [/card] [card] name=Channel -auto=emblem transforms((,newability[{L:1}:Add{1}])) ueot +auto=all(*|myBattlefield) transforms((,newability[{L:1}:Add{1}])) ueot text=Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {1}. mana={G}{G} type=Sorcery @@ -9038,13 +9501,6 @@ mana={W} type=Instant [/card] [card] -name=Charge of the Forever-Beast -auto=target(creature|myhand) transforms((,newability[damage:power target(creature|planeswalker) ueot])) -text=As an additional cost to cast this spell, reveal a creature card from your hand. -- Charge of the Forever-Beast deals damage to target creature or planeswalker equal to the revealed card's power. -mana={2}{G} -type=Sorcery -[/card] -[card] name=Charge Through target=creature auto=transforms((,newability[trample])) ueot @@ -9054,6 +9510,13 @@ mana={G} type=Instant [/card] [card] +name=Charge of the Forever-Beast +auto=target(creature|myhand) transforms((,newability[damage:power target(creature|planeswalker) ueot])) +text=As an additional cost to cast this spell, reveal a creature card from your hand. -- Charge of the Forever-Beast deals damage to target creature or planeswalker equal to the revealed card's power. +mana={2}{G} +type=Sorcery +[/card] +[card] name=Charging Binox abilities=trample text=Assist (Another player can pay up to {7} of this spell's cost.) -- Trample @@ -9196,6 +9659,45 @@ mana={1}{U} type=Sorcery [/card] [card] +name=Chatterfang, Squirrel General +abilities=forestwalk +auto=@tokencreated(*|myBattlefield):name(Create squirrel) token(Squirrel,Creature Squirrel,1/1,green,notrigger) +auto={B}{S(squirrel|myBattlefield)}:name(Sacrifice 1 squirrel) target(creature) 1/-1 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 2 squirrels) target(creature) 2/-2 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 3 squirrels) target(creature) 3/-3 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 4 squirrels) target(creature) 4/-4 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 5 squirrels) target(creature) 5/-5 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 6 squirrels) target(creature) 6/-6 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 7 squirrels) target(creature) 7/-7 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 8 squirrels) target(creature) 8/-8 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 9 squirrels) target(creature) 9/-9 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 10 squirrels) target(creature) 10/-10 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 11 squirrels) target(creature) 11/-11 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 12 squirrels) target(creature) 12/-12 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 13 squirrels) target(creature) 13/-13 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 14 squirrels) target(creature) 14/-14 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 15 squirrels) target(creature) 15/-15 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 16 squirrels) target(creature) 16/-16 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 17 squirrels) target(creature) 17/-17 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 18 squirrels) target(creature) 18/-18 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 19 squirrels) target(creature) 19/-19 ueot +auto={B}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}{S(squirrel|myBattlefield)}:name(Sacrifice 20 squirrels) target(creature) 20/-20 ueot +text=Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) -- If one or more tokens would be created under your control, those tokens plus that many 1/1 green Squirrel creature tokens are created instead. -- {B}, Sacrifice X Squirrels: Target creature gets +X/-X until end of turn. +mana={2}{G} +type=Legendary Creature +subtype=Squirrel Warrior +power=3 +toughness=3 +[/card] +[card] +name=Chatterstorm +abilities=storm +auto=token(Squirrel,Creature Squirrel,1/1,green) +text=Create a 1/1 green Squirrel creature token. -- Storm (When you cast this spell, copy it for each spell cast before it this turn.) +mana={1}{G} +type=Sorcery +[/card] +[card] name=Checkpoint Officer auto={1}{W}{T}:tap target(creature) text={1}{W}, {T}: Tap target creature. @@ -9298,16 +9800,26 @@ toughness=3 [card] name=Chill Haunting target=creature -auto={E(*|myhand)}:-1/-1 ueot -auto={E(*|myhand)}{E(*|myhand)}:-2/-2 ueot -auto={E(*|myhand)}{E(*|myhand)}{E(*|myhand)}:-3/-3 ueot -auto={E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}:-4/-4 ueot -auto={E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}:-5/-5 ueot -auto={E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}:-6/-6 ueot -auto={E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}:-7/-7 ueot -auto={E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}:-8/-8 ueot -auto={E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}:-9/-9 ueot -auto={E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}{E(*|myhand)}:-10/-10 ueot +auto=if type(creature|mygraveyard)~morethan~0 then choice name(Exile 1 creature) name(Exile 1 creature) -1/-1 ueot && target(creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~1 then choice name(Exile 2 creatures) name(Exile 2 creatures) -2/-2 ueot && target(<2>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~2 then choice name(Exile 3 creatures) name(Exile 3 creatures) -3/-3 ueot && target(<3>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~3 then choice name(Exile 4 creatures) name(Exile 4 creatures) -4/-4 ueot && target(<4>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~4 then choice name(Exile 5 creatures) name(Exile 5 creatures) -5/-5 ueot && target(<5>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~5 then choice name(Exile 6 creatures) name(Exile 6 creatures) -6/-6 ueot && target(<6>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~6 then choice name(Exile 7 creatures) name(Exile 7 creatures) -7/-7 ueot && target(<7>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~7 then choice name(Exile 8 creatures) name(Exile 8 creatures) -8/-8 ueot && target(<8>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~8 then choice name(Exile 9 creatures) name(Exile 9 creatures) -9/-9 ueot && target(<9>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~9 then choice name(Exile 10 creatures) name(Exile 10 creatures) -10/-10 ueot && target(<10>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~10 then choice name(Exile 11 creatures) name(Exile 11 creatures) -11/-11 ueot && target(<11>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~11 then choice name(Exile 12 creatures) name(Exile 12 creatures) -12/-12 ueot && target(<12>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~12 then choice name(Exile 13 creatures) name(Exile 13 creatures) -13/-13 ueot && target(<13>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~13 then choice name(Exile 14 creatures) name(Exile 14 creatures) -14/-14 ueot && target(<14>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~14 then choice name(Exile 15 creatures) name(Exile 15 creatures) -15/-15 ueot && target(<15>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~15 then choice name(Exile 16 creatures) name(Exile 16 creatures) -16/-16 ueot && target(<16>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~16 then choice name(Exile 17 creatures) name(Exile 17 creatures) -17/-17 ueot && target(<17>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~17 then choice name(Exile 18 creatures) name(Exile 18 creatures) -18/-18 ueot && target(<18>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~18 then choice name(Exile 19 creatures) name(Exile 19 creatures) -19/-19 ueot && target(<19>creature|mygraveyard) moveTo(exile) +auto=if type(creature|mygraveyard)~morethan~19 then choice name(Exile 20 creatures) name(Exile 20 creatures) -20/-20 ueot && target(<20>creature|mygraveyard) moveTo(exile) text=As an additional cost to cast Chill Haunting, exile X creature cards from your graveyard. -- Target creature gets -X/-X until end of turn. mana={1}{B} type=Instant @@ -9403,6 +9915,15 @@ power=2 toughness=2 [/card] [card] +name=Chitterspitter +auto=@each my upkeep:may name(Sacrifice token) target(*[token]|mybattlefield) sacrifice && counter(0/0,1,acorn) all(this) +auto=thisforeach(counter{0/0.1.acorn}>0) lord(squirrel|mybattlefield) 1/1 +auto={G}{T}:name(Create Squirrel) token(Squirrel,Creature Squirrel,1/1,green) +text=At the beginning of your upkeep, you may sacrifice a token. If you do, put an acorn counter on Chitterspitter. -- Squirrels you control get +1/+1 for each acorn counter on Chitterspitter. -- {G}, {T}: Create a 1/1 green Squirrel creature token. +mana={2}{G} +type=Artifact +[/card] +[card] name=Choking Vines restriction=blockersonly target=creature[attacking] @@ -9443,6 +9964,18 @@ mana={7} type=Legendary Artifact [/card] [card] +name=Chrome Courier +abilities=flying +aicode=activate target(*[zpos<=2]|mylibrary) moveto(myhand) and!( transforms((,newability[if cantargetcard(*[artifact]|*) then life:3 controller],newability[target(*[zpos<=1]|mylibrary) moveto(myGraveyard)])) oneshot )! +auto=reveal:2 optionone name(Put card in hand) target(*|reveal) moveto(myhand) and!( if cantargetcard(*[artifact]|*) then life:3 controller )! optiononeend optiontwo name(put in graveyard) all(*|reveal) moveTo(myGraveyard) optiontwoend revealend +text=Flying -- When Chrome Courier enters the battlefield, reveal the top two cards of your library. Put one of them into your hand and the other into your graveyard. If you put an artifact card into your hand this way, you gain 3 life. +mana={1}{W}{U} +type=Artifact Creature +subtype=Thopter +power=1 +toughness=1 +[/card] +[card] name=Chrome Replicator auto=if type(*[share!name!;-token;-land]|myBattlefield)~morethan~1 then token(Construct Chr) text=When Chrome Replicator enters the battlefield, if you control two or more nonland, nontoken permanents with the same name as one another, create a 4/4 colorless Construct artifact creature token. @@ -9713,6 +10246,18 @@ mana={3}{R}{R} type=Instant [/card] [card] +name=Clattering Augur +abilities=cantblock +auto=draw:1 controller && life:-1 controller +autograveyard={2}{B}{B}: name(Return to hand) moveto(myhand) +text=Clattering Augur can't block. -- When Clattering Augur enters the battlefield, you draw a card and you lose 1 life. -- {2}{B}{B}: Return Clattering Augur from your graveyard to your hand. +mana={1}{B} +type=Creature +subtype=Skeleton Shaman +power=1 +toughness=1 +[/card] +[card] name=Cleansing auto=all(land|battlefield) transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?destroy])) forever text=For each land, destroy that land unless any player pays 1 life. @@ -10375,6 +10920,14 @@ power=2 toughness=3 [/card] [card] +name=Combine Chrysalis +auto=lord(creature[token]|myBattlefield) flying +auto={2}{G}{U}{S(*[token]|myBattlefield)}{T}:name(Create beast) token(Beast,Creature Beast,4/4,green) asSorcery +text=Creature tokens you control have flying. -- {2}{G}{U}, {T}, Sacrifice a token: Create a 4/4 green Beast creature token. Activate only as a sorcery. +mana={G}{U} +type=Artifact +[/card] +[card] name=Combine Guildmage auto={1}{G}{T}:name(1/1 counters) emblem transforms((,newability[@movedto(creature|myBattlefield):all(trigger[to]) counter(1/1)])) ueot auto={1}{U}{T}{C(1/1,-1),*|mybattlefield}:name(move a 1/1 counter) counter(1/1) target(creature) @@ -10903,6 +11456,17 @@ power=2 toughness=2 [/card] [card] +name=Constable of the Realm +auto=this(cantargetcard(*[-renown]) transforms((,newability[@combatdamaged(player) from(this):counter(1/1.2) && becomes(renown) forever])) +auto=@counteradded(1/1) from(this):may name(Exile non-land permanent) target(*[-land]|battlefield) (blink)forsrc +text=Renown 2 (When this creature deals combat damage to a player, if it isn't renowned, put two +1/+1 counters on it and it becomes renowned.) -- Whenever one or more +1/+1 counters are put on Constable of the Realm, exile up to one other target nonland permanent until Constable of the Realm leaves the battlefield. +mana={4}{W} +type=Creature +subtype=Giant Soldier +power=3 +toughness=3 +[/card] +[card] name=Construct anyzone=type:artifact:mybattlefield/type:artifact:mybattlefield cdaactive text=This creature gets +1/+1 for each artifact you control. @@ -11310,6 +11874,15 @@ mana={4}{B} type=Sorcery [/card] [card] +name=Crack Open +target=enchantment +auto=destroy +auto=token(Treasure Sur) +text=Destroy target artifact or enchantment. Create a Treasure token. (It's an artifact with " {T}, Sacrifice this artifact: Add one mana of any color.") +mana={2}{G} +type=Sorcery +[/card] +[card] name=Crackle with Power auto=target(player,creature,planeswalker) damage:fivetimesthirdpaid text=Crackle with Power deals five times X damage to each of up to X targets. @@ -11439,7 +12012,7 @@ toughness=4 [card] name=Crashing Footfalls auto=token(Rhino,creature Rhino,4/4,green,trample)*2 -text=Suspend {4} — G} (Rather than cast this card from your hand, pay {G} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) -- Create two 4/4 green Rhino creature tokens with trample. +text=Suspend 4—{G} (Rather than cast this card from your hand, pay {G} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) -- Create two 4/4 green Rhino creature tokens with trample. color=green restriction=never mana={0} @@ -11614,17 +12187,6 @@ mana={2} type=Artifact [/card] [card] -name=Crown-Hunter Hireling -auto=becomesmonarch controller -auto=this(variable{omonarch}<1) cantattack -text=When Crown-Hunter Hireling enters the battlefield, you become the monarch. -- Crown-Hunter Hireling can't attack unless defending player is the monarch. -mana={4}{R} -type=Creature -subtype=Ogre Mercenary -power=4 -toughness=4 -[/card] -[card] name=Crown of Skemfar target=creature auto=foreach(elf|mybattlefield) 1/1 @@ -11636,6 +12198,17 @@ type=Enchantment subtype=Aura [/card] [card] +name=Crown-Hunter Hireling +auto=becomesmonarch controller +auto=this(variable{omonarch}<1) cantattack +text=When Crown-Hunter Hireling enters the battlefield, you become the monarch. -- Crown-Hunter Hireling can't attack unless defending player is the monarch. +mana={4}{R} +type=Creature +subtype=Ogre Mercenary +power=4 +toughness=4 +[/card] +[card] name=Cruel Celebrant auto=@movedTo(*[creature;planeswalker]|graveyard) from(myBattlefield):life:-1 opponent && life:1 text=Whenever Cruel Celebrant or another creature or planeswalker you control dies, each opponent loses 1 life and you gain 1 life. @@ -11748,8 +12321,8 @@ type=Sorcery [card] name=Crypt Lurker auto=choice name(Do Nothing) donothing -auto=choice name(Sacrifice a creature) sacrifice notatarget(creature|mybattlefield) && draw:1 controller -auto=choice name(Discard a card):ability$!name(discard) target(*[creature]|myhand) reject!$ controller && draw:1 controller +auto=choice name(Sacrifice a creature) target(creature|mybattlefield) sacrifice and!( draw:1 controller )! +auto=choice name(Discard a card) target(creature|myhand) reject and!( draw:1 controller )! text=When Crypt Lurker enters the battlefield, you may sacrifice a creature or discard a creature card. If you do, draw a card. mana={3}{B} type=Creature @@ -12004,6 +12577,17 @@ type=Enchantment subtype=Aura [/card] [card] +name=Curiosity Crafter +abilities=flying,nomaxhand +auto=@combatdamaged(player) from(creature[token]|myBattlefield):draw:1 controller +text=Flying -- You have no maximum hand size. -- Whenever a creature token you control deals combat damage to a player, draw a card. +mana={3}{U} +type=Creature +subtype=Bird Wizard +power=3 +toughness=3 +[/card] +[card] name=Curious Herd auto=name(choose opponent) notatarget(opponent) deplete:0 && token(Beast Cur)*foreach(artifact|opponentBattlefield) text=Choose target opponent. You create X 3/3 green Beast creature tokens, where X is the number of artifacts that player controls. @@ -12054,17 +12638,6 @@ power=1 toughness=3 [/card] [card] -name=Curiosity Crafter -abilities=flying,nomaxhand -auto=@combatdamaged(player) from(creature[token]|myBattlefield):draw:1 controller -text=Flying -- You have no maximum hand size. -- Whenever a creature token you control deals combat damage to a player, draw a card. -mana={3}{U} -type=Creature -subtype=Bird Wizard -power=3 -toughness=3 -[/card] -[card] name=Curse of Bloodletting target=player auto=@damaged(targetedplayer) from(*[instant;sorcery]|Stack,graveyard):damage:thatmuch all(trigger[to]) @@ -12314,6 +12887,17 @@ power=2 toughness=4 [/card] [card] +name=Damn +target=creature +abilities=overload +other={2}{W}{W} name(Overload) +auto=overload destroy all(creature) +auto=paidmana destroy +text=Destroy target creature. A creature destroyed this way can't be regenerated. -- Overload {2}{W}{W} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") +mana={B}{B} +type=Sorcery +[/card] +[card] name=Dance of the Manse target=artifact,enchantment[-aura]|mygraveyard auto=moveto(myBattlefield) @@ -12476,6 +13060,15 @@ text={T}: Add {B}. // Slitherbore Pathway type=Land [/card] [card] +name=Darkmoss Bridge +abilities=indestructible +auto=tap(noevent) +auto={T}:add{B} +auto={T}:add{G} +text=Darkmoss Bridge enters the battlefield tapped. -- Indestructible -- {T}: Add {B} or {G}. +type=Artifact Land +[/card] +[card] name=Darksteel Mutation target=creature auto=indestructible @@ -12535,6 +13128,18 @@ mana={1}{W} type=Instant [/card] [card] +name=Dauthi Voidwalker +abilities=shadow +auto=@movedto(*|opponentgraveyard):name(Exile with void counter) transforms((,newability[all(*[zpos=type:*:opponentgraveyard]|opponentgraveyard) moveto(opponentexile) and!( counter(0/0.1.Void) )!])) forever +auto={T}{S}:name(Play exiled card) target(*[counter{0/0.1.Void}]|opponentexile) activate castcard(normal) +text=Shadow (This creature can block or be blocked by only creatures with shadow.) -- If a card would be put into an opponent's graveyard from anywhere, instead exile it with a void counter on it. -- {T}, Sacrifice Dauthi Voidwalker: Choose an exiled card an opponent owns with a void counter on it. You may play it this turn without paying its mana cost. +mana={B}{B} +type=Creature +subtype=Dauthi Rogue +power=3 +toughness=2 +[/card] +[card] name=Davriel's Shadowfugue target=player auto=ability$!name(discard) reject notatarget(<2>*|myhand)!$ targetedplayer && life:-2 @@ -13155,6 +13760,22 @@ mana={2}{U} type=Enchantment [/card] [card] +name=Deepwood Denizen +abilities=vigilance +auto=this(variable{totcntcre11}=0) {5}{G}{T}:draw:1 controller +auto=this(variable{totcntcre11}=1) {4}{G}{T}:draw:1 controller +auto=this(variable{totcntcre11}=2) {3}{G}{T}:draw:1 controller +auto=this(variable{totcntcre11}=3) {2}{G}{T}:draw:1 controller +auto=this(variable{totcntcre11}=4) {1}{G}{T}:draw:1 controller +auto=this(variable{totcntcre11}>=5) {G}{T}:draw:1 controller +text=Vigilance -- {5}{G}, {T}: Draw a card. This ability costs 1 less to activate for each +1/+1 counter on creatures you control. +mana={2}{G} +type=Creature +subtype=Elf Warrior +power=3 +toughness=2 +[/card] +[card] name=Deface auto=choice name(Destroy target artifact) destroy target(artifact) auto=choice name(Destroy target creature with defender) destroy target(creature[defender]) @@ -13490,6 +14111,17 @@ power=2 toughness=3 [/card] [card] +name=Dermotaxi +auto=this(variable{hasevict}=0) name(Imprint card from graveyard) imprint notatarget(creature|graveyard) +auto={T(creature|myBattlefield)}{T(creature|myBattlefield)}:transforms((,newability[all(creature[evictname]|exile) copy and!( all(this) transforms((Vehicle Artifact,newability[phaseaction[endofturn once] flip(Dermotaxi) undocpy])) forever )!])) oneshot +text=Imprint — As Dermotaxi enters the battlefield, exile a creature card from a graveyard. -- Tap two untapped creatures you control: Until end of turn, Dermotaxi becomes a copy of the exiled card, except it's a Vehicle artifact in addition to its other types. +mana={2} +type=Artifact +subtype=Vehicle +power=0 +toughness=0 +[/card] +[card] name=Desecrated Tomb auto=@movedTo(*[-mygraveyard]) from(mygraveyard):create(bat:creature bat:1/1:black:flying) text=Whenever one or more creature cards leave your graveyard, create a 1/1 black Bat creature token with flying. @@ -13900,6 +14532,20 @@ power=1 toughness=1 [/card] [card] +name=Diamond Lion +auto={T}{S}:name(Add 3 red mana) discard:type:*:myHand && add{R}{R}{R} +auto={T}{S}:name(Add 3 black mana) discard:type:*:myHand && add{B}{B}{B} +auto={T}{S}:name(Add 3 green mana) discard:type:*:myHand && add{G}{G}{G} +auto={T}{S}:name(Add 3 blue mana) discard:type:*:myHand && add{U}{U}{U} +auto={T}{S}:name(Add 3 white mana) discard:type:*:myHand && add{W}{W}{W} +text={T}, Discard your hand, Sacrifice Diamond Lion: Add three mana of any one color. Activate only as an instant. +mana={2} +type=Artifact Creature +subtype=Cat +power=2 +toughness=2 +[/card] +[card] name=Diamond Mare auto=chooseacolor transforms((,newability[@movedTo(*[chosencolor]|mystack):life:1])) forever chooseend text=As Diamond Mare enters the battlefield, choose a color. -- Whenever you cast a spell of the chosen color, you gain 1 life. @@ -13983,6 +14629,14 @@ power=3 toughness=3 [/card] [card] +name=Dihada's Ploy +auto=draw:2 && transforms((,newability[target(*|myhand) reject and!(life:type:*[discarded]:mygraveyard)!])) forever +flashback={1}{U}{B}{D(*|myhand)} +text=Draw two cards, then discard a card. You gain life equal to the number of cards you've discarded this turn. -- Jump-start (You may cast this card from your graveyard by discarding a card in addition to paying its other costs. Then exile this card.) +mana={1}{U}{B} +type=Instant +[/card] +[card] name=Diligent Excavator auto=@movedTo(*[artifact;legendary;saga]|mystack):target(player) deplete:2 text=Whenever you cast a historic spell, target player puts the top two cards of their library into their graveyard. (Artifacts, legendaries, and Sagas are historic.) @@ -14230,6 +14884,25 @@ mana={5}{R}{R} type=Sorcery [/card] [card] +name=Discerning Taste +aicode=activate target(*[zpos<=4]|mylibrary) moveto(myhand) and!( transforms((,newability[life:power:highest:creature[zpos<=4]:mylibrary controller],newability[all(*[zpos<=4]|mylibrary) moveto(mygraveyard)])) oneshot )! +auto=name(Look top 4 cards) reveal:4 optionone name(Get a Card) target(*|reveal) moveto(myhand) and!( life:power:highest:creature:reveal controller )! optiononeend optiontwo name(put in grave) all(*|reveal) moveto(mygraveyard) optiontwoend revealend +text=Look at the top four cards of your library. Put one of them into your hand and the rest into your graveyard. You gain life equal to the greatest power among creature cards put into your graveyard this way. +mana={2}{B} +type=Sorcery +[/card] +[card] +name=Disciple of the Sun +abilities=lifelink +auto=name(Return permanent) target(*[-instant;-sorcery;manacost<=3]|myGraveyard) moveto(myHand) +text=Lifelink -- When Disciple of the Sun enters the battlefield, return target permanent card with mana value 3 or less from your graveyard to your hand. +mana={4}{W} +type=Creature +subtype=Human Cleric +power=3 +toughness=3 +[/card] +[card] name=Discordant Piper auto=@movedTo(this|mygraveyard) from(Battlefield):token(Goat,Creature Goat,0/1,white) text=When Discordant Piper dies, create a 0/1 white Goat creature token. @@ -14819,15 +15492,18 @@ mana={2}{W} type=Instant [/card] [card] -name=Dragonsguard Elite -auto=@movedto(*[instant;sorcery]|mystack):name(Put 1/1 counter) counter(1/1) -auto={4}{G}{G}:name(Double 1/1 counters) thisforeach(counter{1/1.1}) counter(1/1,1) -text=Magecraft — Whenever you cast or copy an instant or sorcery spell, put a +1/+1 counter on Dragonsguard Elite. -- {4}{G}{G}: Double the number of +1/+1 counters on Dragonsguard Elite. -mana={1}{G} +name=Dragon's Rage Channeler +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=@movedTo(*[-creature]|myStack):name(Surveil 1) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend +auto=while(restriction{delirium}) 2/2 +auto=while(restriction{delirium}) flying +auto=while(restriction{delirium}) mustattack +text=Whenever you cast a noncreature spell, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.) -- Delirium — As long as there are four or more card types among cards in your graveyard, Dragon's Rage Channeler gets +2/+2, has flying, and attacks each combat if able. +mana={R} type=Creature -subtype=Human Druid -power=2 -toughness=2 +subtype=Human Shaman +power=1 +toughness=1 [/card] [card] name=Dragonkin Berserker @@ -14864,6 +15540,17 @@ power=8 toughness=8 [/card] [card] +name=Dragonsguard Elite +auto=@movedto(*[instant;sorcery]|mystack):name(Put 1/1 counter) counter(1/1) +auto={4}{G}{G}:name(Double 1/1 counters) thisforeach(counter{1/1.1}) counter(1/1,1) +text=Magecraft — Whenever you cast or copy an instant or sorcery spell, put a +1/+1 counter on Dragonsguard Elite. -- {4}{G}{G}: Double the number of +1/+1 counters on Dragonsguard Elite. +mana={1}{G} +type=Creature +subtype=Human Druid +power=2 +toughness=2 +[/card] +[card] name=Dragonshift abilities=overload target=creature|mybattlefield @@ -15351,6 +16038,26 @@ power=2 toughness=2 [/card] [card] +name=Dress Down +abilities=flash,treason +auto=lord(creature|battlefield) loseabilities +auto=draw:1 controller +text=Flash -- When Dress Down enters the battlefield, draw a card. -- Creatures lose all abilities. -- At the beginning of the end step, sacrifice Dress Down. +mana={1}{U} +type=Enchantment +[/card] +[card] +name=Drey Keeper +auto=token(Squirrel,Creature Squirrel,1/1,green)*2 +auto={3}{B}:name(Squirrels get 1/0) all(squirrel|myBattlefield) 1/0 ueot +text=When Drey Keeper enters the battlefield, create two 1/1 green Squirrel creature tokens. -- {3}{B}: Squirrels you control get +1/+0 and gain menace until end of turn. +mana={3}{B}{G} +type=Creature +subtype=Elf Druid +power=2 +toughness=2 +[/card] +[card] name=Drill Bit target=player auto=activate reject notatarget(*[-land]|targetedpersonshand) @@ -15370,6 +16077,15 @@ mana={1}{G} type=Sorcery [/card] [card] +name=Drossforge Bridge +abilities=indestructible +auto=tap(noevent) +auto={T}:add{B} +auto={T}:add{R} +text=Drossforge Bridge enters the battlefield tapped. -- Indestructible -- {T}: Add {B} or {R}. +type=Artifact Land +[/card] +[card] name=Drover of the Mighty auto=aslongas(dinosaur|mybattlefield) 2/2 auto={T}:add{G} @@ -15635,6 +16351,17 @@ power=2 toughness=2 [/card] [card] +name=Duskshell Crawler +auto=name(Put 1/1 counter) target(creature) counter(1/1) +auto=lord(creature[counter{1/1.1}]|myBattlefield) trample +text=When Duskshell Crawler enters the battlefield, put a +1/+1 counter on target creature. -- Each creature you control with a +1/+1 counter on it has trample. +mana={1}{G} +type=Creature +subtype=Insect +power=0 +toughness=3 +[/card] +[card] name=Duskwielder abilities=boast auto={1} restriction{didattack,compare(hascntbstreduce)~equalto~0}:doboast && life:-1 opponent && life:1 controller limit:hasabilitytwoboastplus1plusend @@ -15872,6 +16599,15 @@ mana={2}{U}{U} type=Sorcery [/card] [card] +name=Echoing Return +target=creature|mygraveyard +auto=moveto(myhand) +auto=all(creature[share!name!]|mygraveyard) moveto(myHand) +text=Return target creature card and all other cards with the same name as that card from your graveyard to your hand. +mana={B} +type=Sorcery +[/card] +[card] name=Ecological Appreciation abilities=exiledeath auto=count(type:*:myhand) @@ -16837,6 +17573,20 @@ power=3 toughness=3 [/card] [card] +name=Endurance +abilities=flash,reach +other={E(*[green]|myhand)} name(Evoke) +auto=if paid(alternative) then sacrifice +auto=choice name(Target opponent) all(*|opponentgraveyard) transforms((,newability[bottomoflibrary])) oneshot +auto=choice name(Target yourself) all(*|myGraveyard) transforms((,newability[bottomoflibrary])) oneshot +text=Flash -- Reach -- When Endurance enters the battlefield, up to one target player puts all the cards from their graveyard on the bottom of their library in a random order. -- Evoke—Exile a green card from your hand. +mana={1}{G}{G} +type=Creature +subtype=Elemental Incarnation +power=3 +toughness=4 +[/card] +[card] name=Enduring Renewal auto=replacedraw if type(creature[zpos=1|mylibrary)~morethan~0 then moveto(ownergraveyard) all(*[zpos=1|mylibrary) else draw:1 controller auto=@movedTo(creature|mygraveyard) from(battlefield):all(trigger[to]) moveTo(myhand) @@ -17292,6 +18042,46 @@ power=1 toughness=3 [/card] [card] +name=Esix, Fractal Bloom +abilities=flying +auto=@movedto(*[token]|mybattlefield) turnlimited:all(trigger[to] transforms((,newability[may name(Copy a creature) target(creature[-Esix^ Fractal Bloom]|battlefield) copy])) oneshot +text=Flying -- The first time you would create one or more tokens during each of your turns, you may instead choose a creature other than Esix, Fractal Bloom and create that many tokens that are copies of that creature. +mana={4}{G}{U} +type=Legendary Creature +subtype=Fractal +power=4 +toughness=4 +[/card] +[card] +name=Esper Sentinel +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~1,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~2,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~3,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~4,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{4}]] name(pay 4 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~5,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{5}]] name(pay 5 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~6,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{6}]] name(pay 6 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~7,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{7}]] name(pay 7 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~8,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{8}]] name(pay 8 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~9,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{9}]] name(pay 9 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~10,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{10}]] name(pay 10 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~11,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{11}]] name(pay 11 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~12,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{12}]] name(pay 12 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~13,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{13}]] name(pay 13 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~14,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{14}]] name(pay 14 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~15,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{15}]] name(pay 15 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~16,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{16}]] name(pay 16 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~17,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{17}]] name(pay 17 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~18,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{18}]] name(pay 18 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~equalto~19,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{19}]] name(pay 19 mana) donothing?draw:1 opponent])) forever +auto=@movedto(*[-creature]|opponentstack) restriction{compare(power)~morethan~19,thisturn(*[-creature]|opponentstack)~equalto~0}:all(trigger) transforms((,newability[pay[[{20}]] name(pay 20 mana) donothing?draw:1 opponent])) forever +text=Whenever an opponent casts their first noncreature spell each turn, draw a card unless that player pays {X}, where X is Esper Sentinel's power. +mana={W} +type=Artifact Creature +subtype=Human Soldier +power=1 +toughness=1 +[/card] +[card] name=Essence Capture target=creature|stack auto=fizzle @@ -17309,16 +18099,6 @@ mana={1}{B} type=Sorcery [/card] [card] -name=Essence of the Wild -auto=@movedto(creature|mybattlefield):all(trigger[to]) transforms((,newability[copy all(Essence of the Wild)])) forever -text=Creatures you control enter the battlefield as a copy of Essence of the Wild. -mana={3}{G}{G}{G} -type=Creature -subtype=Avatar -power=6 -toughness=6 -[/card] -[card] name=Essence Pulse auto=life:2 controller && all(creature|battlefield) transforms((,newability[-lifegain/-lifegain])) ueot text=You gain 2 life. Each creature gets -X/-X until end of turn, where X is the amount of life you gained this turn. @@ -17337,6 +18117,16 @@ power=2 toughness=2 [/card] [card] +name=Essence of the Wild +auto=@movedto(creature|mybattlefield):all(trigger[to]) transforms((,newability[copy all(Essence of the Wild)])) forever +text=Creatures you control enter the battlefield as a copy of Essence of the Wild. +mana={3}{G}{G}{G} +type=Creature +subtype=Avatar +power=6 +toughness=6 +[/card] +[card] name=Estrid's Invocation auto=this(cantargetcard(*[enchantment|myBattlefield])) may copy notatarget(enchantment|myBattlefield) transforms((,newability[@each my upkeep:moveto(exile) and!(moveto(mybattlefield))!])) text=You may have Estrid’s Invocation enter the battlefield as a copy of any enchantment you control, except it has “At the beginning of your upkeep, you may exile this enchantment. If you do, return it to the battlefield under its owner’s control.” @@ -17344,17 +18134,6 @@ mana={2}{U} type=Enchantment [/card] [card] -name=Esix, Fractal Bloom -abilities=flying -auto=@movedto(*[token]|mybattlefield) turnlimited:all(trigger[to] transforms((,newability[may name(Copy a creature) target(creature[-Esix^ Fractal Bloom]|battlefield) copy])) oneshot -text=Flying -- The first time you would create one or more tokens during each of your turns, you may instead choose a creature other than Esix, Fractal Bloom and create that many tokens that are copies of that creature. -mana={4}{G}{U} -type=Legendary Creature -subtype=Fractal -power=4 -toughness=4 -[/card] -[card] name=Etali, Primal Storm auto=@combat(attacking) source(this):Reveal:1 revealzone(mylibrary) revealuntil(*|mylibrary) optionone choice name(Cast Card) target(*|reveal) moveto(mylibrary) and!(may castcard(normal))! optiononeend optiontwo target(<1>*|reveal) bottomoflibrary and!(all(*|reveal) bottomoflibrary)! optiontwoend revealend auto=@combat(attacking) source(this):Reveal:1 revealzone(opponentlibrary) revealuntil(*|opponentlibrary) optionone choice name(Cast Card) target(*|reveal) moveto(opponentlibrary) and!(may castcard(normal))! optiononeend optiontwo target(<1>*|reveal) bottomoflibrary and!(all(*|reveal) bottomoflibrary)! optiontwoend revealend @@ -17461,6 +18240,27 @@ power=4 toughness=4 [/card] [card] +name=Etherium Spinner +auto=@movedto(*[manacost>=4]|myStack):name(Create Thopter) token(Thopter,Creature Thopter,1/1,flying) +text=Whenever you cast a spell with mana value 4 or greater, create a 1/1 colorless Thopter artifact creature token with flying. +mana={2}{U} +type=Artifact Creature +subtype=Human Wizard +power=2 +toughness=1 +[/card] +[card] +name=Ethersworn Sphinx +abilities=flying,affinityartifacts +autostack=if casted(this) then cascade:plibrarycount +text=Affinity for artifacts (This spell costs 1 less to cast for each artifact you control.) -- Flying -- Cascade (When you cast this spell, exile cards from the top of your library until you exile a nonland card with lesser mana value. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order.) +mana={7}{W}{U} +type=Artifact Creature +subtype=Sphinx +power=4 +toughness=4 +[/card] +[card] name=Eureka auto=moveto(ownerbattlefield) notatarget(*[creature;artifact;enchantment;land;planeswalker]|myhand) auto=ability$! moveto(ownerbattlefield) notatarget(*[creature;artifact;enchantment;land;planeswalker]|myhand) !$ opponent @@ -18152,6 +18952,15 @@ mana={2}{U} type=Sorcery [/card] [card] +name=Fae Offering +auto=@each my end restriction{thisturn(*[-creature]|mystack)~morethan~0,thisturn(*[creature]|mystack)~morethan~0}:token(Clue,Artifact Clue,0/0) and!( transforms((,newability[{S}{2}:draw:1])) forever )! controller +auto=@each my end restriction{thisturn(*[-creature]|mystack)~morethan~0,thisturn(*[creature]|mystack)~morethan~0}:token(Food,Artifact Food,0/0) and!( transforms((,newability[{2}{T}{S}:life:3])) forever )! controller +auto=@each my end restriction{thisturn(*[-creature]|mystack)~morethan~0,thisturn(*[creature]|mystack)~morethan~0}:token(Treasure Sur) +text=At the beginning of each end step, if you've cast both a creature spell and a noncreature spell this turn, create a Clue token, a Food token, and a Treasure token. +mana={2}{G} +type=Enchantment +[/card] +[card] name=Fae of Wishes // Granted abilities=flying,adventure other={3}{U} name(Adventure) @@ -18269,6 +19078,16 @@ power=3 toughness=3 [/card] [card] +name=Fairgrounds Patrol +autograveyard={1}{W}{E}:name(Create Thopter) token(Thopter,Artifact Creature Thopter,1/1,flying) asSorcery +text={1}{W}, Exile Fairgrounds Patrol from your graveyard: Create a 1/1 colorless Thopter artifact creature token with flying. Activate only as a sorcery. +mana={1}{W} +type=Creature +subtype=Human Soldier +power=2 +toughness=1 +[/card] +[card] name=Fairgrounds Trumpeter auto=@counteradded(1/1) from(*|mybattlefield):counter(1/1) text=At the beginning of each end step, if a +1/+1 counter was placed on a permanent under your control this turn, put a +1/+1 counter on Fairgrounds Trumpeter. @@ -18286,6 +19105,15 @@ mana={2}{B} type=Enchantment [/card] [card] +name=Faithless Salvaging +auto=target(*|myHand) reject and!( transforms((,newability[name(Draw 1 card) draw:1 controller])) oneshot )! +auto=if rebound then ability$!moveto(exile) all(Faithless Salvaging|mystack)!$ controller +autoexile=@rebounded:may activate castcard(normal) +text=Discard a card, then draw a card. -- Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.) +mana={1}{R} +type=Instant +[/card] +[card] name=Falconer Adept auto=@combat(attacking) source(this):token(Bird,Creature Bird,1/1,white,flying,battleready) text=Whenever Falconer Adept attacks, create a 1/1 white Bird creature token with flying that's tapped and attacking. @@ -18475,6 +19303,16 @@ power=3 toughness=3 [/card] [card] +name=Fast // Furious +other={3}{R}{R} name(Furious) +otherrestriction=can play sorcery +auto=if paid(alternative) then all(creature[-flying]|battlefield) damage:3 +auto=ifnot paid(alternative) then target(*|myHand) reject and!( transforms((,newability[name(Draw 2 cards) draw:2 controller])) oneshot )! +text=Discard a card, then draw two cards. -- Furious deals 3 damage to each creature without flying. +mana={2}{R} +type=Instant +[/card] +[card] name=Fateful End target=player,creature,plansewalker auto=damage:3 @@ -18616,6 +19454,14 @@ power=1 toughness=1 [/card] [card] +name=Feast of Sanity +auto=@discarded(*|myhand):name(Deals 1 damage) damage:1 target(player,creature,planeswalker) +auto=@discarded(*|myhand):life:1 controller +text=Whenever you discard a card, Feast of Sanity deals 1 damage to any target and you gain 1 life. +mana={3}{B} +type=Enchantment +[/card] +[card] name=Feast of Succession auto=becomesmonarch controller auto=all(creature|battlefield) -4/-4 ueot @@ -19213,6 +20059,17 @@ mana={2}{R} type=Sorcery [/card] [card] +name=Filigree Attendant +abilities=flying +anyzone=type:artifact:myBattlefield/3 cdaactive +text=Flying -- Filigree Attendant's power is equal to the number of artifacts you control. +mana={2}{U}{U} +type=Artifact Creature +subtype=Homunculus +power=* +toughness=3 +[/card] +[card] name=Fin-Clade Fugitives auto=cantbeblockedby(creature[power<=2]) autograveyard={4}{G}:name(Activate Encore) name(Activate Encore) moveto(exile) and!(clone with(unearth,haste,mustattack))! asSorcery @@ -19782,6 +20639,15 @@ power=2 toughness=2 [/card] [card] +name=Flame Blitz +abilities=cycling +autohand=__CYCLING__({2}) +auto=@each my endofturn:damage:5 all(planeswalker) +text=At the beginning of your end step, Flame Blitz deals 5 damage to each planeswalker. -- Cycling {2} ({2} , Discard this card: Draw a card.) +mana={R} +type=Enchantment +[/card] +[card] name=Flame Spill target=creature auto=transforms((,newability[this(toughness=1) damage:1 && damage:3 targetController])) oneshot @@ -19919,6 +20785,18 @@ mana={1}{R} type=Sorcery [/card] [card] +name=Flametongue Yearling +kicker=multi{2} +auto=counter(1/1,kicked) +auto=damage:power target(creature) +text=Multikicker {2} (You may pay an additional 2 any number of times as you cast this spell.) -- Flametongue Yearling enters the battlefield with a +1/+1 counter on it for each time it was kicked. -- When Flametongue Yearling enters the battlefield, it deals damage equal to its power to target creature. +mana={R}{R} +type=Creature +subtype=Kavu +power=2 +toughness=1 +[/card] +[card] name=Flash Foliage restriction=blockersonly auto=token(Saproling,Creature Saproling,1/1,green) and!(transforms((,newability[mustblock])) ueot)! @@ -19951,6 +20829,14 @@ power=1 toughness=2 [/card] [card] +name=Flay Essence +auto=choice name(Exile opponent's creature or planeswalker) target(*[creature;planeswalker]|opponentbattlefield) transforms((,newability[life:hascntanycnt opponent],newability[moveto(exile)])) forever +auto=choice name(Exile your creature or planeswalker) target(*[creature;planeswalker]|mybattlefield) transforms((,newability[life:hascntanycnt controller],newability[moveto(exile)])) forever +text=Exile target creature or planeswalker. You gain life equal to the number of counters on it. +mana={1}{B}{B} +type=Sorcery +[/card] +[card] name=Fleet Swallower auto=@combat(attacking) source(this):target(player) deplete:halfdowntype:*:targetedpersonslibrary text=Whenever Fleet Swallower attacks, target player puts the top half of his or her library, rounded up, into his or her graveyard. @@ -20011,6 +20897,16 @@ mana={4}{U}{U} type=Sorcery [/card] [card] +name=Floodhound +auto={3}{T}:name(Investigate) token(Clue,Artifact Clue,0/0) and!( transforms((,newability[{S}{2}:draw:1])) forever )! controller +text={3}, {T}: Investigate. (Create a colorless Clue artifact token with "{2}, Sacrifice this artifact: Draw a card.") +mana={U} +type=Creature +subtype=Elemental Dog +power=1 +toughness=2 +[/card] +[card] name=Floodwaters abilities=cycling target=creature @@ -20033,6 +20929,16 @@ power=1 toughness=1 [/card] [card] +name=Flourishing Strike +other={2}{G} name(Entwine) +auto=ifnot paid(alternative) then choice name(Deal 5 damage) name(Deal 5 damage) target(creature[flying]|battlefield) damage:5 +auto=ifnot paid(alternative) then choice name(Creature gets 3/3) name(Creature gets 3/3) target(creature) transforms((,newability[3/3])) ueot +auto=if paid(alternative) then choice name(Creature gets 3/3) name(Creature gets 3/3) target(creature) transforms((,newability[3/3],newability[name(Deal 5 damage) target(creature[flying]|battlefield) damage:5])) ueot +text=Choose one — -- • Flourishing Strike deals 5 damage to target creature with flying. -- • Target creature gets +3/+3 until end of turn. -- Entwine {2}{G} (Choose both if you pay the entwine cost.) +mana={1}{G} +type=Instant +[/card] +[card] name=Flower // Flourish other={4}{G}{W} name(Flourish) auto=if paid(alternative) then all(creature|mybattlefield) 2/2 ueot @@ -20111,6 +21017,13 @@ power=3 toughness=5 [/card] [card] +name=Fodder Tosser +auto={T}{D(*|myHand)}:name(Deal 2 damage) target(player,planeswalker) damage:2 +text={T}, Discard a card: Fodder Tosser deals 2 damage to target player or planeswalker. +mana={3} +type=Artifact +[/card] +[card] name=Foe-Razer Regent abilities=flying auto=@movedTo(this|mybattlefield) from(myHand):all(trigger[to]) transforms((,newability[choice name(Fight target creature you don't control) dynamicability target(creature|opponentBattlefield)])) forever @@ -20439,6 +21352,19 @@ mana={3}{W}{W} type=Sorcery [/card] [card] +name=Foul Watcher +abilities=flying +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=name(Surveil 1) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend +auto=while(restriction{delirium}) 1/0 +text=Flying -- When Foul Watcher enters the battlefield, surveil 1. (Look at the top card of your library. You may put that card into your graveyard.) -- Delirium — Foul Watcher gets +1/+0 as long as there are four or more card types among cards in your graveyard. +mana={1}{U} +type=Creature +subtype=Nightmare Bird +power=1 +toughness=2 +[/card] +[card] name=Foulmire Knight // Profane Insight abilities=deathtouch,flash,adventure restriction=can play creature @@ -20453,6 +21379,30 @@ power=1 toughness=1 [/card] [card] +name=Foundation Breaker +other={1}{G} name(Evoke) +auto=if paid(alternative) then sacrifice +auto=may name(Destroy artifact or enchantment) target(*[artifact;enchantment]|battlefield) destroy +text=When Foundation Breaker enters the battlefield, you may destroy target artifact or enchantment. -- Evoke {1}{G} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) +mana={3}{G} +type=Creature +subtype=Elemental +power=2 +toughness=2 +[/card] +[card] +name=Foundry Helix +target=player,creature,planeswalker +other={1}{R}{W}{S(artifact|myBattlefield)} name(Sacrifice an artifact) +otherrestriction=type(artifact|myBattlefield)~morethan~0 +restriction=type(*[-artifact]|myBattlefield)~morethan~0 +auto=damage:4 +auto=if paid(alternative) then life:4 controller +text=As an additional cost to cast this spell, sacrifice a permanent. -- Foundry Helix deals 4 damage to any target. If the sacrificed permanent was an artifact, you gain 4 life. +mana={1}{R}{W}{S(*[-artifact]|myBattlefield)} +type=Instant +[/card] +[card] name=Fountain of Ichor auto={T}:Add{W} auto={T}:Add{U} @@ -20520,6 +21470,15 @@ mana={3}{W}{U} type=Sorcery [/card] [card] +name=Fractured Sanity +auto=deplete:14 opponent +abilities=cycling +autohand={1}{U}{cycle}:name(cycling) draw:1 controller && deplete:4 opponent +text=Each opponent mills fourteen cards. -- Cycling {1}{U} -- ({1}{U}, Discard this card: Draw a card.) -- When you cycle Fractured Sanity, each opponent mills four cards. +mana={U}{U}{U} +type=Sorcery +[/card] +[card] name=Frantic Inventory auto=draw:1 controller auto=foreach(Frantic Inventory|myGraveyard) draw:1 controller @@ -20747,17 +21706,6 @@ mana={R} type=Snow Instant [/card] [card] -name=Frost Trickster -abilities=flying -auto=name(Tap creature) target(creature|opponentbattlefield) freeze -text=Flying -- When Frost Trickster enters the battlefield, tap target creature an opponent controls. That creature doesn't untap during its controller's next untap step. -mana={2}{U} -type=Creature -subtype=Bird Wizard -power=2 -toughness=2 -[/card] -[card] name=Frost Titan auto=@targeted(this) from(opponent):transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) oneshot auto=frozen target(*) @@ -20770,6 +21718,17 @@ power=6 toughness=6 [/card] [card] +name=Frost Trickster +abilities=flying +auto=name(Tap creature) target(creature|opponentbattlefield) freeze +text=Flying -- When Frost Trickster enters the battlefield, tap target creature an opponent controls. That creature doesn't untap during its controller's next untap step. +mana={2}{U} +type=Creature +subtype=Bird Wizard +power=2 +toughness=2 +[/card] +[card] name=Frostboil Snarl auto=if type(*[island;mountain]|myhand)~equalto~0 then tap(noevent) auto={T}:add{U} @@ -20939,6 +21898,17 @@ mana={2}{G} type=Instant [/card] [card] +name=Funnel-Web Recluse +abilities=reach +auto=if morbid then token(Clue,Artifact Clue,0/0) and!( transforms((,newability[{S}{2}:draw:1])) forever )! controller +text=Reach -- Morbid — When Funnel-Web Recluse enters the battlefield, if a creature died this turn, investigate. (Create a colorless Clue artifact token with "{2}, Sacrifice this artifact: Draw a card.") +mana={4}{G} +type=Creature +subtype=Spider +power=3 +toughness=5 +[/card] +[card] name=Furious Rise auto=@each my endofturn aslongas(creature[power>=4]|myBattlefield):moveto(exile) and!( transforms((,canplayfromexile)) ueot )! all(*[zpos=1]|mylibrary) uynt text=At the beginning of your end step, if you control a creature with power 4 or greater, exile the top card of your library. You may play that card until you exile another card with Furious Rise. @@ -20958,6 +21928,19 @@ mana={1}{R}{R}{R} type=Enchantment [/card] [card] +name=Fury +other={E(*[red]|myhand)} name(Evoke) +auto=if paid(alternative) then sacrifice +abilities=double strike +auto=thisforeach(variable{4}) ability$!name(Deal 1 damage) name(Deal 1 damage) target(*[creature;planeswalker]|battlefield) damage:1!$ controller +text=Double strike -- When Fury enters the battlefield, it deals 4 damage divided as you choose among any number of target creatures and/or planeswalkers. -- Evoke—Exile a red card from your hand. +mana={3}{R}{R} +type=Creature +subtype=Elemental Incarnation +power=3 +toughness=3 +[/card] +[card] name=Fury Storm auto=thisforeach(variable{pnumofcommandcastplus1plusend}) ability$!name(Copy target instant or sorcery spell) name(Copy target instant or sorcery spell) castcard(copied noevent) target(*[instant;sorcery]|stack)!$ controller text=When you cast this spell, copy it for each time you've cast your commander from the command zone this game. You may choose new targets for the copies. -- Copy target instant or sorcery spell. You may choose new targets for the copy. @@ -21038,6 +22021,16 @@ mana={G}{G} type=Enchantment [/card] [card] +name=Gaea's Will +auto=emblem transforms((,newability[lord(*|myGraveyard) canplayfromgraveyard],newability[lord(*|myzones) exiledeath])) ueot +text=Suspend 4—{G} -- Until end of turn, you may play lands and cast spells from your graveyard. -- If a card would be put into your graveyard from anywhere this turn, exile that card instead. +color=green +restriction=never +mana={0} +suspend(4)={G} +type=Sorcery +[/card] +[card] name=Gahiji, Honored One auto=@combat(attacking) source(creature|myBattlefield):all(trigger[to]) 2/0 ueot text=Whenever a creature attacks one of your opponents or a planeswalker an opponent controls, that creature gets +2/+0 until end of turn. @@ -21125,6 +22118,16 @@ power=3 toughness=3 [/card] [card] +name=Galvanic Relay +abilities=storm +auto=all(*[zpos=1]|myLibrary) moveto(myexile) and!( transforms((,newability[phaseaction[opponent end once checkex] counter(0/0.1.GalvanicEffect)])) forever )! +auto=emblem transforms((,newability[lord(*[counter{0/0.1.GalvanicEffect}]|myexile) canplayfromexile])) forever dontremove +auto=emblem transforms((,newability[@each my end:all(*[counter{0/0.1.GalvanicEffect}]|myexile) counter(0/0.-1.GalvanicEffect)] forever dontremove +text=Exile the top card of your library. During your next turn, you may play that card. -- Storm (When you cast this spell, copy it for each spell cast before it this turn.) +mana={2}{R} +type=Sorcery +[/card] +[card] name=Game Plan auto=moveto(opponentlibrary) all(*|opponenthand) auto=moveto(opponentlibrary) all(*|opponentgraveyard) && shuffle @@ -21214,6 +22217,17 @@ power=2 toughness=2 [/card] [card] +name=Gargadon +abilities=trample +suspend(4)={1}{R} +text=Trample -- Suspend 4—{1}{R} (Rather than cast this card from your hand, you may pay 1{R} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.) +mana={5}{R}{R} +type=Creature +subtype=Beast +power=7 +toughness=5 +[/card] +[card] name=Gargos, Vicious Watcher abilities=vigilance auto=lord(hydra|mycastingzone) altercost(colorless, -4) @@ -21320,6 +22334,21 @@ power=1 toughness=4 [/card] [card] +name=Garth One-Eye +auto=this(cantargetcard(*[-disenchant]) {1}{W}{T}:name(Choose disenchant) becomes(disenchant) forever && activate castcard(copied noevent named!:disenchant:!) +auto=this(cantargetcard(*[-braingeyser]) {X}{U}{U}{T}:name(Choose braingeyser) name(Choose braingeyser) transforms((,newability[becomes(braingeyser)],newability[activate castcard(copied noevent named!:braingeyser:! costx!:x:!)])) forever +auto=this(cantargetcard(*[-terror]) {1}{B}{T}:name(Choose terror) becomes(terror) forever && activate castcard(copied noevent named!:terror:!) +auto=this(cantargetcard(*[-shivan]) {4}{R}{R}{T}:name(Choose shivan dragon) becomes(shivan) forever && activate castcard(copied noevent named!:shivan dragon:!) +auto=this(cantargetcard(*[-regrowth]) {1}{G}{T}:name(Choose regrowth) becomes(regrowth) forever && activate castcard(copied noevent named!:regrowth:!) +auto=this(cantargetcard(*[-lotus]) {0}{T}:name(Choose black lotus) becomes(lotus) forever && activate castcard(copied noevent named!:black lotus:!) +text={T}: Choose a card name that hasn't been chosen from among Disenchant, Braingeyser, Terror, Shivan Dragon, Regrowth, and Black Lotus. Create a copy of the card with the chosen name. You may cast the copy. (You still pay its costs.) +mana={W}{U}{B}{R}{G} +type=Legendary Creature +subtype=Human Wizard +power=5 +toughness=5 +[/card] +[card] name=Gate Colossus anyzone=foreach(land[Gate]|myBattlefield) changecost(colorless:-1) forcedalive auto=cantbeblockedby(creature[power>=2]) @@ -21473,6 +22502,17 @@ text=If Gemstone Caverns is in your opening hand and you're not playing first, y type=Legendary Land [/card] [card] +name=General Ferrous Rokiric +auto=cantbetargetof(*[-multicolor;-colorless]|opponentBattlefield,opponenthand,opponentgraveyard,opponentstack) +auto=@movedto(*[multicolor]|mystack):name(Create golem) token(Golem,Creature Artifact Golem,4/4,red,white) +text=Hexproof from monocolored -- Whenever you cast a multicolored spell, create a 4/4 red and white Golem artifact creature token. +mana={1}{R}{W} +type=Legendary Creature +subtype=Human Soldier +power=3 +toughness=1 +[/card] +[card] name=General Kudro of Drannith auto=lord(other creature[human]|myBattlefield) 1/1 auto=moveTo(exile) target(*|opponentGraveyard) @@ -21781,6 +22821,37 @@ power=2 toughness=3 [/card] [card] +name=Ghost-Lit Drifter +abilities=flying +autohand={1}{U}{D}:name(1 creature gains flying) target(creature|battlefield) transforms((,newability[flying])) ueot +autohand={2}{U}{D}:name(2 creatures gains flying) target(<2>creature|battlefield) transforms((,newability[flying])) ueot +autohand={3}{U}{D}:name(3 creatures gains flying) target(<3>creature|battlefield) transforms((,newability[flying])) ueot +autohand={4}{U}{D}:name(4 creatures gains flying) target(<4>creature|battlefield) transforms((,newability[flying])) ueot +autohand={5}{U}{D}:name(5 creatures gains flying) target(<5>creature|battlefield) transforms((,newability[flying])) ueot +autohand={6}{U}{D}:name(6 creatures gains flying) target(<6>creature|battlefield) transforms((,newability[flying])) ueot +autohand={7}{U}{D}:name(7 creatures gains flying) target(<7>creature|battlefield) transforms((,newability[flying])) ueot +autohand={8}{U}{D}:name(8 creatures gains flying) target(<8>creature|battlefield) transforms((,newability[flying])) ueot +autohand={9}{U}{D}:name(9 creatures gains flying) target(<9>creature|battlefield) transforms((,newability[flying])) ueot +autohand={10}{U}{D}:name(10 creatures gains flying) target(<10>creature|battlefield) transforms((,newability[flying])) ueot +autohand={11}{U}{D}:name(11 creatures gains flying) target(<11>creature|battlefield) transforms((,newability[flying])) ueot +autohand={12}{U}{D}:name(12 creatures gains flying) target(<12>creature|battlefield) transforms((,newability[flying])) ueot +autohand={13}{U}{D}:name(13 creatures gains flying) target(<13>creature|battlefield) transforms((,newability[flying])) ueot +autohand={14}{U}{D}:name(14 creatures gains flying) target(<4>creature|battlefield) transforms((,newability[flying])) ueot +autohand={15}{U}{D}:name(15 creatures gains flying) target(<15>creature|battlefield) transforms((,newability[flying])) ueot +autohand={16}{U}{D}:name(16 creatures gains flying) target(<16>creature|battlefield) transforms((,newability[flying])) ueot +autohand={17}{U}{D}:name(17 creatures gains flying) target(<17>creature|battlefield) transforms((,newability[flying])) ueot +autohand={18}{U}{D}:name(18 creatures gains flying) target(<18>creature|battlefield) transforms((,newability[flying])) ueot +autohand={19}{U}{D}:name(19 creatures gains flying) target(<19>creature|battlefield) transforms((,newability[flying])) ueot +autohand={20}{U}{D}:name(20 creatures gains flying) target(<20>creature|battlefield) transforms((,newability[flying])) ueot +auto={2}{U}:target(other creature|battlefield) transforms((,newability[flying])) ueot +text=Flying -- {2}{U}: Another target creature gains flying until end of turn. -- Channel — {X}{U}, Discard Ghost-Lit Drifter: X target creatures gain flying until end of turn. +mana={2}{U} +type=Creature +subtype=Spirit +power=2 +toughness=2 +[/card] +[card] name=Ghostfire Blade auto={3}:equip auto={1}:rehook target(creature[colorless]|mybattlefield) @@ -21890,7 +22961,7 @@ subtype=Aura name=Giant's Skewer auto={3}:equip auto=teach(creature) 2/1 -auto=teach(creature) @combatdamaged(creature) from(mytgt):token(-473141) +auto=teach(creature) transforms((,newability[@combatdamaged(creature) from(this):token(-473141)])) text=Equipped creature gets +2/+1. -- Whenever equipped creature deals combat damage to a creature, create a Food token. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") -- Equip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.) mana={1}{B} type=Artifact @@ -22095,6 +23166,16 @@ power=1 toughness=3 [/card] [card] +name=Gilt-Blade Prowler +auto=@discarded(*|myHand) turnlimited:all(this) transforms((,newability[{1}{T}{L:1}:draw:1 controller])) ueot +text={1}, {T}, Pay 1 life: Draw a card. Activate only if you've discarded a card this turn. +mana={2}{B} +type=Creature +subtype=Human Rogue +power=2 +toughness=3 +[/card] +[card] name=Gilt-Leaf Winnower abilities=menace auto=may name(Destroy non-elf) target(creature[-elf]) transforms((,newability[if compare(power)~morethan~compare(toughness) then destroy],newability[if compare(power)~lessthan~compare(toughness) then destroy])) oneshot @@ -22380,6 +23461,16 @@ mana={0} type=Artifact [/card] [card] +name=Glimmer Bairn +auto={S(*[token]|myBattlefield)}:name(Gets 2/2) 2/2 ueot +text=Sacrifice a token: Glimmer Bairn gets +2/+2 until end of turn. +mana={G} +type=Creature +subtype=Ouphe +power=1 +toughness=2 +[/card] +[card] name=Glimmerbell abilities=flying auto={1}{U}:untap(this) @@ -22399,6 +23490,18 @@ mana={1}{U} type=Instant [/card] [card] +name=Glimpse of Tomorrow +suspend(3)={R}{R} +auto=count(type:*:mybattlefield) +auto=all(*|myBattlefield) moveto(myLibrary) and!( shuffle )! +auto=name(search card) reveal:countedamount optionone name(Choose non-aura cards) target(*[-aura;-instant;-sorcery]|reveal) moveto(mybattlefield) and!( all(*[aura]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! )! optiononeend optiontwo name(put on bottom) target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(myBattlefield) afterrevealedend revealend +text=Suspend 3—{R}{R} -- Shuffle all permanents you own into your library, then reveal that many cards from the top of your library. Put all non-Aura permanent cards revealed this way onto the battlefield, then do the same for Aura cards, then put the rest on the bottom of your library in a random order. +mana={0} +color=red +restriction=never +type=Sorcery +[/card] +[card] name=Glimpse the Cosmos aicode=activate target(*[zpos<=3]|mylibrary) moveto(myhand) auto=name(look) reveal:3 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<3>*|reveal) bottomoflibrary optiontwoend revealend @@ -22411,7 +23514,7 @@ type=Sorcery [card] name=Glint-Horn Buccaneer abilities=haste -auto=@discard(controller):damage:1 opponent +auto=@discarded(*|myhand):damage:1 opponent auto=this(attacking) {1}{R}{D(*|myhand)}:draw:1 controller text=Haste -- Whenever you discard a card, Glint-Horn Buccaneer deals 1 damage to each opponent. -- {1}{R}, Discard a card: Draw a card. Activate this ability only if Glint-Horn Buccaneer is attacking. mana={1}{R}{R} @@ -22421,6 +23524,17 @@ power=2 toughness=4 [/card] [card] +name=Glinting Creeper +auto=cantbeblockedby(creature[power<=2]) +auto=counter(1/1,twiceconverge) +text=Converge — Glinting Creeper enters the battlefield with two +1/+1 counters on it for each color of mana spent to cast it. -- Glinting Creeper can't be blocked by creatures with power 2 or less. +mana={4}{G} +type=Creature +subtype=Plant +power=0 +toughness=0 +[/card] +[card] name=Glissa Sunseeker abilities=first strike auto={T}:name(destroy artifact) name(destroy artifact) destroy target(artifact[manacost=mypoolcount]) @@ -22497,6 +23611,17 @@ power=4 toughness=4 [/card] [card] +name=Glorious Enforcer +abilities=flying,lifelink +auto=@each combatbegins restriction{compare(lifetotal)~morethan~compare(opponentlifetotal)}:name(Gains double strike) transforms((,newability[double strike])) ueot +text=Flying, lifelink -- At the beginning of each combat, if you have more life than an opponent, Glorious Enforcer gains double strike until end of turn. +mana={5}{W}{W} +type=Creature +subtype=Angel +power=5 +toughness=5 +[/card] +[card] name=Glorious Protector abilities=foretell,flash,flying autohand={2}:name(Pay 2 and exile face-down) name(Pay 2 and exile face-down) doforetell myturnonly @@ -22749,6 +23874,16 @@ mana={2}{R} type=Sorcery [/card] [card] +name=Goblin Anarchomancer +auto=lord(*[red;green]|nonbattlezone) altercost(colorless,-1) +text=Each spell you cast that's red or green costs 1 less to cast. +mana={R}{G} +type=Creature +subtype=Goblin Shaman +power=2 +toughness=2 +[/card] +[card] name=Goblin Assailant mana={1}{R} type=Creature @@ -23036,6 +24171,18 @@ power=2 toughness=1 [/card] [card] +name=Goblin Traprunner +auto=@combat(attacking) source(this):name(Flip a coin) flipacoin winability token(Goblin,Creature Goblin,1/1,red,battleready) winabilityend flipend +auto=@combat(attacking) source(this):name(Flip a coin) flipacoin winability token(Goblin,Creature Goblin,1/1,red,battleready) winabilityend flipend +auto=@combat(attacking) source(this):name(Flip a coin) flipacoin winability token(Goblin,Creature Goblin,1/1,red,battleready) winabilityend flipend +text=Whenever Goblin Traprunner attacks, flip three coins. For each flip you win, create a 1/1 red Goblin creature token that's tapped and attacking. +mana={3}{R} +type=Creature +subtype=Goblin +power=4 +toughness=2 +[/card] +[card] name=Goblin Trashmaster auto=lord(other goblin|myBattlefield) +1/+1 auto={S(Goblin|myBattlefield)}:destroy target(artifact) @@ -23065,7 +24212,7 @@ type=Sorcery [card] name=Goblin Wiz abilities=prowess -auto=@movedTo(*[-creature]|myStack) 1/1 ueot +auto=@movedTo(*[-creature]|myStack):1/1 ueot text=Whenever you cast a noncreature spell, this get +1/+1 until end of turn. type=Creature subtype=Goblin Wizard @@ -23302,6 +24449,15 @@ power=2 toughness=2 [/card] [card] +name=Goldmire Bridge +abilities=indestructible +auto=tap(noevent) +auto={T}:add{B} +auto={T}:add{W} +text=Goldmire Bridge enters the battlefield tapped. -- Indestructible -- {T}: Add {W} or {B}. +type=Artifact Land +[/card] +[card] name=Goldnight Castigator abilities=flying,haste auto=@damaged(this) from(*[instant;sorcery]|stack,graveyard):damage:thatmuch all(this) @@ -23491,6 +24647,17 @@ mana={W}{W} type=Enchantment [/card] [card] +name=Gouged Zealot +abilities=reach +auto=@combat(attacking) source(this) restriction{delirium}:name(Deals 1 damage) damage:1 all(creature|opponentbattlefield) +text=Reach -- Delirium — Whenever Gouged Zealot attacks, if there are four or more card types among cards in your graveyard, Gouged Zealot deals 1 damage to each creature defending player controls. +mana={3}{R} +type=Creature +subtype=Cyclops Berserker +power=4 +toughness=3 +[/card] +[card] name=Govern the Guildless target=creature[-multicolor] auto=moveto(mybattlefield) @@ -23531,6 +24698,14 @@ power=2 toughness=2 [/card] [card] +name=Graceful Restoration +auto=if type(creature|myGraveyard)~morethan~0 then choice name(Return one creature with 1/1 counter) name(Return one creature with 1/1 counter) target(creature|mygraveyard) moveto(myBattlefield) and!( counter(1/1) )! +auto=if type(creature[power<=2]|myGraveyard)~morethan~0 then choice name(Return up to 2 creatures) name(Return up to 2 creatures) target(creature[power<=2]|mygraveyard) moveto(myBattlefield) +text=Choose one — -- • Return target creature card from your graveyard to the battlefield with an additional +1/+1 counter on it. -- • Return up to two target creature cards with power 2 or less from your graveyard to the battlefield. +mana={3}{W}{B} +type=Sorcery +[/card] +[card] name=Grakmaw, Skyclave Ravager auto=counter(1/1,3) auto=@movedTo(other creature[counter{1/1}]|myGraveyard) from(mybattlefield):counter(1/1) all(this) @@ -23905,6 +25080,20 @@ power=5 toughness=5 [/card] [card] +name=Grief +abilities=menace +other={E(*[black]|myhand)} name(Evoke) +auto=if paid(alternative) then sacrifice +auto=if type(*[-land]|opponenthand)~morethan~0 then name(Discard non-land card) name(Discard a non-land card) reject target(*[-land]|opponenthand) +auto=if type(*[-land]|opponenthand)~equalto~0 then name(Reveal hand) name(Reveal hand) target(*|opponenthand) moveto(opponentreveal) and!( moveto(opponenthand) )! +text=Menace -- When Grief enters the battlefield, target opponent reveals their hand. You choose a nonland card from it. That player discards that card. -- Evoke—Exile a black card from your hand. +mana={2}{B}{B} +type=Creature +subtype=Elemental Incarnation +power=3 +toughness=2 +[/card] +[card] name=Griffin Aerie auto=@each my endofturn restriction{compare(lifegain)~morethan~2}:token(Griffin Gri) controller text=At the beginning of your end step, if you gained 3 or more life this turn, create a 2/2 white Griffin creature token with flying. @@ -24294,6 +25483,17 @@ power=1 toughness=1 [/card] [card] +name=Guardian Kirin +abilities=flying +auto=@movedTo(other creature|graveyard) from(myBattlefield):name(Put 1/1 counter) counter(1/1) +text=Flying -- Whenever another creature you control dies, put a +1/+1 counter on Guardian Kirin. +mana={3}{W} +type=Creature +subtype=Kirin +power=2 +toughness=3 +[/card] +[card] name=Guardian Project auto=@movedto(creature[-token]|mybattlefield):all(trigger[to]) transforms((,newability[if type(creature[share!name!]|mybattlefield)~lessthan~2 then if type(creature[share!name!]|mygraveyard)~lessthan~1 then draw:1 controller])) ueot text=Whenever a nontoken creature enters the battlefield under your control, if it doesn't have the same name as another creature you control or a creature card in your graveyard, draw a card. @@ -24422,7 +25622,8 @@ toughness=6 [/card] [card] name=Gurmag Drowner -auto=may name(Exploit) sacrifice notatarget(creature|mybattlefield) && name(look) reveal:4 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put in graveyard) target(<4>*|reveal) moveto(graveyard) optiontwoend afterrevealed afterrevealedend revealend +aicode=activate transforms((,newability[target(*[zpos<=4]|mylibrary) moveto(myhand) and!( all(*[zpos<=4]|mylibrary) moveto(mygraveyard) )!])) ueot +auto=may name(Exploit) sacrifice target(creature|mybattlefield) && name(look) reveal:4 optionone name(Get a card) target(*|reveal) moveto(myhand) optiononeend optiontwo name(put in graveyard) all(*|reveal) moveto(graveyard) optiontwoend revealend text=Exploit (When this creature enters the battlefield, you may sacrifice a creature.) -- When Gurmag Drowner exploits a creature, look at the top four cards of your library. Put one of them into your hand and the rest into your graveyard. mana={3}{U} type=Creature @@ -24957,6 +26158,14 @@ type=Enchantment subtype=Aura [/card] [card] +name=Hard Evidence +auto=token(Crab,Creature Crab,0/3,blue) +auto=token(Clue,Artifact Clue,0/0)*2 and!( transforms((,newability[{S}{2}:draw:1])) forever )! +text=Create a 0/3 blue Crab creature token. -- Investigate. (Create a colorless Clue artifact token with "{2} , Sacrifice this artifact: Draw a card.") +mana={U} +type=Sorcery +[/card] +[card] name=Hardened Berserker auto=@combat(attacking) source(this):lord(*|mycastingzone):altercost(colorless,-1) oneshot text=Whenever Hardened Berserker attacks, the next spell you cast this turn costs {1} less to cast. @@ -24993,6 +26202,18 @@ power=2 toughness=2 [/card] [card] +name=Harmonic Prodigy +#MISSING: not possible to trigger twice any ability ATM +abilities=prowess +auto=@movedTo(*[-creature]|mystack):1/1 ueot +text=Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.) -- If an ability of a Shaman or another Wizard you control triggers, that ability triggers an additional time. +mana={1}{R} +type=Creature +subtype=Human Wizard +power=1 +toughness=3 +[/card] +[card] name=Harmonious Archon abilities=flying auto=lord(creature[-archon]|battlefield) transforms((,setpower=3,settoughness=3)) forever @@ -25005,6 +26226,17 @@ power=4 toughness=5 [/card] [card] +name=Harness Infinity +abilities=exiledeath +auto=count(type:*:myhand) && countb(type:*:mygraveyard) +auto=if compare(countedamount)~morethan~0 then if compare(countedbamount)~morethan~0 then all(*|myhand) moveto(myreveal) and!( transforms((,newability[all(*|mygraveyard) moveto(myhand) and!( transforms((,newability[all(*|myreveal) moveto(mygraveyard)])) oneshot )!])) oneshot )! +auto=if compare(countedamount)~equalto~0 then if compare(countedbamount)~morethan~0 then then all(*|mygraveyard) moveto(myhand) +auto=if compare(countedamount)~morethan~0 then if compare(countedbamount)~equalto~0 then then all(*|myhand) moveto(mygraveyard) +text=Exchange your hand and graveyard. -- Exile Harness Infinity. +mana={1}{B}{B}{B}{G}{G}{G} +type=Instant +[/card] +[card] name=Harness by Force kicker=multi{2}{R} auto=if compare(kicked)~equalto~0 then name(choose 1 creature) name(choose 1 creature) target(creature) transforms((,newability[moveTo(opponentbattlefield)],newability[phaseaction[endofturn sourceinplay] moveTo(ownerbattlefield)],newability[untap],haste)) ueot @@ -25032,17 +26264,6 @@ mana={1}{R}{R} type=Sorcery [/card] [card] -name=Harness Infinity -abilities=exiledeath -auto=count(type:*:myhand) && countb(type:*:mygraveyard) -auto=if compare(countedamount)~morethan~0 then if compare(countedbamount)~morethan~0 then all(*|myhand) moveto(myreveal) and!( transforms((,newability[all(*|mygraveyard) moveto(myhand) and!( transforms((,newability[all(*|myreveal) moveto(mygraveyard)])) oneshot )!])) oneshot )! -auto=if compare(countedamount)~equalto~0 then if compare(countedbamount)~morethan~0 then then all(*|mygraveyard) moveto(myhand) -auto=if compare(countedamount)~morethan~0 then if compare(countedbamount)~equalto~0 then then all(*|myhand) moveto(mygraveyard) -text=Exchange your hand and graveyard. -- Exile Harness Infinity. -mana={1}{B}{B}{B}{G}{G}{G} -type=Instant -[/card] -[card] name=Harness the Storm auto=@movedto(*[instant;sorcery]|mystack) from(myhand):all(trigger[to]) transforms((,newability[if casted(this) then may name(Cast from graveyard) target(*[share!name!]|mygraveyard) canplayfromgraveyard ueot])) oneshot text=Whenever you cast an instant or sorcery spell from your hand, you may cast target card with the same name as that spell from your graveyard. (You still pay its costs.) @@ -25332,6 +26553,16 @@ power=1 toughness=2 [/card] [card] +name=Healer's Flock +abilities=flying,lifelink +text=Flying, lifelink +mana={W}{W}{W} +type=Creature +subtype=Bird +power=3 +toughness=3 +[/card] +[card] name=Healer's Hawk abilities=flying, lifelink text=Flying, lifelink @@ -25582,6 +26813,18 @@ power=5 toughness=5 [/card] [card] +name=Hell Mongrel +abilities=madness +autoexile=restriction{discarded} pay({2}{B}) name(pay 2 B to cast) activate name(pay 2 B to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard) +auto={D(*|myhand)}:1/1 ueot +text=Discard a card: Hell Mongrel gets +1/+1 until end of turn. -- Madness {2}{B} (If you discard this card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.) +mana={3}{B} +type=Creature +subtype=Nightmare Dog +power=4 +toughness=3 +[/card] +[card] name=Hellcarver Demon #you can't order the stack abilities=flying @@ -25757,6 +27000,16 @@ mana={3} type=Artifact [/card] [card] +name=Herd Baloth +auto=@counteradded(1/1) from(this):may name(Create beast) token(Beast,Creature Beast,4/4,green) +text=Whenever one or more +1/+1 counters are put on Herd Baloth, you may create a 4/4 green Beast creature token. +mana={3}{G}{G} +type=Creature +subtype=Beast +power=4 +toughness=4 +[/card] +[card] name=Hero of Bretagard auto=@movedto(*|exile) from(myhand):counter(1/1) auto=@movedto(*[-instant;-sorcery]|exile) from(mybattlefield):counter(1/1) @@ -26177,14 +27430,6 @@ power=6 toughness=6 [/card] [card] -name=Honor the God-Pharaoh -auto=draw:2 -auto=_AMASS_(1) -text=As an additional cost to cast this spell, discard a card. -- Draw two cards. Amass 1. (Put a +1/+1 counter on an Army you control. If you don't control one, create a 0/0 black Zombie Army creature token first.) -mana={2}{R}{D(other *|myhand)} -type=Sorcery -[/card] -[card] name=Honor Troll abilities=vigilance,lifefaker auto=this(controllerlife > 24) 2/1 @@ -26197,6 +27442,14 @@ power=2 toughness=3 [/card] [card] +name=Honor the God-Pharaoh +auto=draw:2 +auto=_AMASS_(1) +text=As an additional cost to cast this spell, discard a card. -- Draw two cards. Amass 1. (Put a +1/+1 counter on an Army you control. If you don't control one, create a 0/0 black Zombie Army creature token first.) +mana={2}{R}{D(other *|myhand)} +type=Sorcery +[/card] +[card] name=Honored Crop-Captain auto=@combat(attacking) source(this):all(other creature[attacking]) 1/0 ueot text=Whenever Honored Crop-Captain attacks, other attacking creatures get +1/+0 until end of turn. @@ -26730,7 +27983,7 @@ type=Instant [/card] [card] name=Hungry Hungry Heifer -auto=@each my upkeep:if type(*[counter{any}]|mybattlefield)~equalto~0 then sacrifice all(this) else ability!$name(Choose one) choice name(Remove a counter) removesinglecountertype(1) target(*[counter{any}]|mybattlefield) _ choice name(Sacrifice) sacrifice all(mysource)!$ controller +auto=@each my upkeep:if type(*[counter{any}]|mybattlefield)~equalto~0 then sacrifice all(this) else ability$! name(Choose one) choice name(Remove a counter) removesinglecountertype(1) target(*[counter{any}]|mybattlefield) _ choice name(Sacrifice) sacrifice all(mysource) !$ controller text=During your upkeep, remove a counter from any card you control or sacrifice Hungry Hungry Heifer. mana={2}{G} type=Summon @@ -27151,6 +28404,19 @@ mana={3}{R} type=Sorcery [/card] [card] +name=Ignoble Hierarch +abilities=exalted +auto={T}:add{B} +auto={T}:add{G} +auto={T}:add{R} +text=Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.) -- {T}: Add {B}, {R}, or {G}. +mana={G} +type=Creature +subtype=Goblin Shaman +power=0 +toughness=1 +[/card] +[card] name=Ikra Shidiqi, the Usurper abilities=menace,partner auto=@combatdamaged(player) from(creature|myBattlefield):dynamicability @@ -27926,6 +29192,16 @@ power=3 toughness=3 [/card] [card] +name=Inevitable Betrayal +suspend(3)={1}{U}{U} +auto=name(Search creature) target(creature|opponentlibrary) moveto(myBattlefield) and!( shuffle opponent )! +text=Suspend 3—{1}{U}{U} (Rather than cast this card from your hand, pay 1{U}{U} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) -- Search target opponent's library for a creature card and put that card onto the battlefield under your control. Then that player shuffles. +mana={0} +color=blue +restriction=never +type=Sorcery +[/card] +[card] name=Inevitable End target=creature auto=teach(creature) upcost sacrifice @@ -29107,6 +30383,16 @@ power=1 toughness=1 [/card] [card] +name=Jade Avenger +auto=bushido(2/2) +text=Bushido 2 (Whenever this creature blocks or becomes blocked, it gets +2/+2 until end of turn.) +mana={1}{G} +type=Creature +subtype=Frog Samurai +power=2 +toughness=2 +[/card] +[card] name=Jade Bearer auto=counter(1/1) target(other merfolk|myBattlefield) text=When Jade Bearer enters the battlefield, put a +1/+1 counter on another target Merfolk you control. @@ -29314,6 +30600,17 @@ mana={5} type=Artifact [/card] [card] +name=Jewel-Eyed Cobra +abilities=deathtouch +auto=@movedto(this|graveyard) from(battlefield):name(Create Treasure) token(Treasure Sur) +text=Deathtouch -- When Jewel-Eyed Cobra dies, create a Treasure token. (It's an artifact with " {T}, Sacrifice this artifact: Add one mana of any color.") +mana={2}{G} +type=Creature +subtype=Snake +power=3 +toughness=1 +[/card] +[card] name=Jeweled Lotus auto=this(variable{type:*[iscommander]:myrestrictedcastingzone}>0) {T}{S}:ability$!name(Choose one) choice name(Add 3 white mana) add{W}{W}{W} _ choice name(Add 3 black mana) add{B}{B}{B} _ choice name(Add 3 green mana) add{G}{G}{G} _ choice name(Add 3 red mana) add{R}{R}{R} _ choice name(Add 3 blue mana) add{U}{U}{U}!$ controller text={T}, Sacrifice Jeweled Lotus: Add three mana of any one color. Spend this mana only to cast your commander. @@ -29624,6 +30921,19 @@ power=2 toughness=2 [/card] [card] +name=Junk Winder +autoexile=thisforeach(variable{type:*[token]:mybattlefield}>0) changecost(colorless:-1) forcedalive +autograveyard=thisforeach(variable{type:*[token]:mybattlefield}>0) changecost(colorless:-1) forcedalive +autohand=thisforeach(variable{type:*[token]:mybattlefield}>0) changecost(colorless:-1) forcedalive +auto=@movedto(*[token]|myBattlefield):name(Freeze non-land permanent) target(*[-land]|opponentBattlefield) freeze +text=Affinity for tokens (This spell costs 1 less to cast for each token you control.) -- Whenever a token enters the battlefield under your control, tap target nonland permanent an opponent controls. It doesn't untap during its controller's next untap step. +mana={5}{U}{U} +type=Creature +subtype=Serpent +power=5 +toughness=6 +[/card] +[card] name=Juri, Master of the Revue auto=@sacrificed(*|mybattlefield):counter(1/1) all(this) auto=@movedTo(this|graveyard) from(Battlefield):damage:power target(player,creature,planeswalker) @@ -29782,6 +31092,22 @@ power=4 toughness=4 [/card] [card] +name=Kaldra Compleat +abilities=indestructible +auto={7}:equip +auto=teach(creature) 5/5 +auto=teach(creature) trample +auto=teach(creature) first strike +auto=teach(creature) haste +auto=teach(creature) indestructible +auto=teach(creature) transforms((,newability[@combatdamaged(creature) from(this):all(trigger[to]) moveto(exile)])) +auto=livingweapontoken(Germ,Creature Germ,0/0,black) +text=Living weapon -- Indestructible -- Equipped creature gets +5/+5 and has first strike, trample, indestructible, haste, and "Whenever this creature deals combat damage to a creature, exile that creature." -- Equip {7} +mana={7} +type=Legendary Artifact +subtype=Equipment +[/card] +[card] name=Kaldring, the Rimestaff auto={T}:name(Choose snow permanent) name(Choose snow permanent) target(*[snow]|mygraveyard) transforms((,newability[canplayfromgraveyard])) ueot && counter(0/0,1,KaldEffect) all(this) auto=@movedto(*[snow]|mybattlefield) from(mygraveyard):this(counter{0/0.1.KaldEffect}>0) all(trigger[to]) tap(noevent) && ability$!counter(0/0,-1,KaldEffect) all(mysource)!$ controller @@ -29794,6 +31120,15 @@ mana={1}{U}{B} type=Legendary Snow Artifact [/card] [card] +name=Kaleidoscorch +target=player,creature,planeswalker +auto=damage:converge +flashback={4}{R} +text=Converge — Kaleidoscorch deals X damage to any target, where X is the number of colors of mana spent to cast this spell. -- Flashback {4}{R} (You may cast this card from your graveyard for its flashback cost. Then exile it.) +mana={1}{R} +type=Sorcery +[/card] +[card] name=Kalemne, Disciple of Iroas abilities=double strike, vigilance auto=@movedto(creature[manacost>=5]|mystack):alterexperience:1 controller @@ -30788,6 +32123,17 @@ mana={U} type=Instant [/card] [card] +name=Kitchen Imp +abilities=madness,flying,haste +autoexile=restriction{discarded} pay({B}) name(pay B to cast) activate name(pay B to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard) +text=Flying, haste -- Madness {B} (If you discard this card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.) +mana={3}{B} +type=Creature +subtype=Imp +power=2 +toughness=2 +[/card] +[card] name=Kitesail Cleric abilities=flying kicker={2}{W} @@ -31050,6 +32396,17 @@ type=Enchantment subtype=Aura [/card] [card] +name=Knighted Myr +auto={2}{W}:this(counter{1/1.1}<1) transforms((,newability[counter(1/1.1)])) forever +auto=@counteradded(1/1) from(this):name(Gains double strike) transforms((,newability[double strike])) ueot +text={2}{W}: Adapt 1. (If this creature has no +1/+1 counters on it, put a +1/+1 counter on it.) -- Whenever one or more +1/+1 counters are put on Knighted Myr, it gains double strike until end of turn. +mana={2}{W} +type=Artifact Creature +subtype=Myr Knight +power=2 +toughness=2 +[/card] +[card] name=Knights of the Black Rose auto=becomesmonarch controller auto=@becomesmonarchfoeof(player):life:-2 opponent && life:2 controller @@ -31772,6 +33129,18 @@ power=2 toughness=2 [/card] [card] +name=Landscaper Colos +aicode=activate target(land[basic]|mylibrary) moveto(myhand) +autohand={1}{W}{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 +auto=name(Move to bottom) target(*|opponentgraveyard) transforms((,newability[bottomoflibrary])) ueot +text=When Landscaper Colos enters the battlefield, put target card from an opponent's graveyard on the bottom of their library. -- Basic landcycling {1}{W} ({1}{W}, Discard this card: Search your library for a basic land card, reveal it, put it into your hand, then shuffle.) +mana={5}{W} +type=Creature +subtype=Goat Beast +power=4 +toughness=6 +[/card] +[card] name=Lash of Malice target=creature auto=2/-2 ueot @@ -31839,6 +33208,15 @@ mana={R} type=Instant [/card] [card] +name=Late to Dinner +target=creature|mygraveyard +auto=moveto(myBattlefield) +auto=token(Food,Artifact Food,0/0) and!( transforms((,newability[{2}{T}{S}:life:3])) forever )! +text=Return target creature card from your graveyard to the battlefield. Create a Food token. (It's an artifact with " 2 , {T}, Sacrifice this artifact: You gain 3 life.") +mana={3}{W} +type=Sorcery +[/card] +[card] name=Lathiel, the Bounteous Dawn abilities=lifelink auto=@each endofturn restriction{compare(lifegain)~morethan~0}:thisforeach(variable{lifegain}) ability$!name(Choose a creature) counter(1/1) target(other creature[-Lathiel])!$ controller @@ -32064,6 +33442,16 @@ power=5 toughness=4 [/card] [card] +name=Lazotep Chancellor +auto=@discarded(*|myHand):name(Amass 2) pay[[{1}]] if type(army|mybattlefield)~equalto~0 then token(Zombie Army,Creature Zombie Army,0/0,black) and!( counter(1/1,2) )! else counter(1/1,2) target(army|myBattlefield) +text=Whenever you discard a card, you may pay {1}. If you do, amass 2. (Put two +1/+1 counters on an Army you control. If you don't control one, create a 0/0 black Zombie Army creature token first.) +mana={U}{B} +type=Creature +subtype=Zombie Wizard +power=1 +toughness=3 +[/card] +[card] name=Lazotep Plating auto=_AMASS_(1) auto=playershroud ueot @@ -32262,6 +33650,17 @@ power=2 toughness=2 [/card] [card] +name=Legion Vanguard +aicode=activate transforms((,newability[explores],newability[if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand)])) oneshot +auto={1}{S(other creature|mybattlefield)}:name(Explores) reveal:1 optionone if type(land|reveal)~lessthan~1 then transforms((,newability[counter(1/1)])) forever 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)])) oneshot optiontwoend afterrevealed explores afterrevealedend revealend +text={1}, Sacrifice another creature: Legion Vanguard explores. (Reveal the top card of your library. Put that card into your hand if it's a land. Otherwise, put a +1/+1 counter on this creature, then put the card back or put it into your graveyard.) +mana={1}{B} +type=Creature +subtype=Vampire Soldier +power=2 +toughness=2 +[/card] +[card] name=Legion Warboss abilities=mentor auto=@combat(attacking) source(this):name(Choose attacking creature) transforms((,newability[target(other creature[attacking;power<=pminus1minusend]|myBattlefield) counter(1/1)])) oneshot @@ -32313,6 +33712,15 @@ power=3 toughness=3 [/card] [card] +name=Lens Flare +abilities=affinityartifacts +target=creature[attacking;blocking] +auto=damage:5 +text=Affinity for artifacts (This spell costs 1 less to cast for each artifact you control.) -- Lens Flare deals 5 damage to target attacking or blocking creature. +mana={4}{W} +type=Instant +[/card] +[card] name=Leonin Lightscribe auto=@movedto(*[instant;sorcery]|mystack):all(creature|mybattlefield) transforms((,newability[1/1])) ueot text=Magecraft — Whenever you cast or copy an instant or sorcery spell, creatures you control get +1/+1 until end of turn. @@ -32671,6 +34079,16 @@ power=6 toughness=1 [/card] [card] +name=Lightning Spear +auto={1}:equip +auto=teach(creature) 1/0 +auto={2}{R}{S}:name(Deal 3 damage) damage:3 target(player,creature,planeswalker) +text=Equipped creature gets +1/+0 and has trample. -- {2}{R}, Sacrifice Lightning Spear: It deals 3 damage to any target. -- Equip {1} +mana={1}{R} +type=Artifact +subtype=Equipment +[/card] +[card] name=Lightning Stormkin abilities=flying,haste text=Flying -- Haste (This creature can attack and {T} as soon as it comes under your control.) @@ -32953,6 +34371,14 @@ mana={4}{R}{R} type=Sorcery [/card] [card] +name=Liquimetal Torque +auto={T}:add{C} +auto={T}:name(Becomes artifact) target(*[-land]|battlefield) transforms((artifact)) ueot +text={T}: Add {C}. -- {T}: Target nonland permanent becomes an artifact in addition to its other types until end of turn. +mana={2} +type=Artifact +[/card] +[card] name=Lisette, Dean of the Root auto=@lifeof(player) from(*[-lifefaker]):pay({1}) name(Put 1/1 counter) all(creature|mybattlefield) tansforms((,newability[counter(1/1)],newability[trample])) ueot text=Whenever you gain life, you may pay 1 . If you do, put a +1/+1 counter on each creature you control and those creatures gain trample until end of turn. // {B} Valentin, Dean of the Vein @@ -33183,6 +34609,17 @@ power=4 toughness=1 [/card] [card] +name=Loathsome Curator +abilities=menace +auto=may name(Exploit) target(creature|mybattlefield) transforms((,newability[sacrifice],newability[name(Destroy creature) target(creature[manacost<=3]|opponentbattlefield) destroy])) oneshot +text=Exploit (When this creature enters the battlefield, you may sacrifice a creature.) -- Menace -- When Loathsome Curator exploits a creature, destroy target creature you don't control with mana value 3 or less. +mana={4}{B} +type=Creature +subtype=Gorgon Wizard +power=5 +toughness=4 +[/card] +[card] name=Lobe Lobber auto={2}:equip auto=teach(creature) transforms((,newability[{T} restriction{type(planeswalker|battlefield)~morethan~0}:name(Damage planeswalker) name(Damage planeswalker) target(planeswalker) damage:1 && all(this) rolladie 5 winability untap winabilityend loseability if compare(lastrollresult)~equalto~6 then untap loseabilityend rollend],newability[{T}:name(Damage opponent) name(Damage opponent) damage:1 opponent && all(this) rolladie 5 winability untap winabilityend loseability if compare(lastrollresult)~equalto~6 then untap loseabilityend rollend],newability[{T}:name(Damage controller) name(Damage controller) damage:1 controller && all(this) rolladie 5 winability untap winabilityend loseability if compare(lastrollresult)~equalto~6 then untap loseabilityend rollend])) @@ -33286,6 +34723,37 @@ power=3 toughness=2 [/card] [card] +name=Lonis, Cryptozoologist +aicode=activate target(*[-land;zpos<=1]|opponentlibrary) moveto(myBattlefield) +auto=@movedTo(other creature[-token]|mybattlefield):token(Clue,Artifact Clue,0/0) and!( transforms((,newability[{S}{2}:draw:1])) forever )! +auto={T}{S(clue[token]|myBattlefield)}:name(Sacrifice 1 clue) reveal:1 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 2 clues) reveal:2 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 3 clues) reveal:3 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 4 clues) reveal:4 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 5 clues) reveal:5 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 6 clues) reveal:6 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 7 clues) reveal:7 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 8 clues) reveal:8 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 9 clues) reveal:9 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 10 clues) reveal:10 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 11 clues) reveal:11 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 12 clues) reveal:12 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 13 clues) reveal:13 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 14 clues) reveal:14 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 15 clues) reveal:15 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 16 clues) reveal:16 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 17 clues) reveal:17 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 18 clues) reveal:18 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 19 clues) reveal:19 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +auto={T}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}{S(clue[token]|myBattlefield)}:name(Sacrifice 20 clues) reveal:20 revealzone(opponentlibrary) optionone target(*|reveal) moveto(myBattlefield) optiononeend optiontwo target(*|reveal) bottomoflibrary and!( all(*|reveal) bottomoflibrary )! optiontwoend revealend +text=Whenever another nontoken creature enters the battlefield under your control, investigate. -- {T}, Sacrifice X Clues: Target opponent reveals the top X cards of their library. You may put a nonland permanent card with mana value X or less from among them onto the battlefield under your control. That player puts the rest on the bottom of their library in a random order. +mana={G}{U} +type=Legendary Creature +subtype=Snake Elf Scout +power=1 +toughness=2 +[/card] +[card] name=Lookout's Dispersal target=*|stack auto=name(counter spell) target(*|stack) transforms((,newability[pay[[{4}]] name(pay 4 mana) donothing?fizzle])) forever @@ -33399,6 +34867,16 @@ power=2 toughness=2 [/card] [card] +name=Lose Focus +target=*|stack +kicker=multi{U} +auto=transforms((,newability[pay[[{2}]] name(pay 2 mana) donothing?fizzle])) forever +auto=thisforeach(variable{kicked}>0) all(this) activate castcard(copied) +text=Replicate -- {U} (When you cast this spell, copy it for each time you paid its replicate cost. You may choose new targets for the copies.) -- Counter target spell unless its controller pays {2}. +mana={1}{U} +type=Instant +[/card] +[card] name=Losheel, Clockwork Scholar auto=preventAllCombatDamage to(artifact[attacking]|myBattlefield) auto=@movedto(artifact[creature]|myBattlefield) restriction{type(artifact[fresh;creature]|mybattlefield)~equalto~1}:draw:1 controller @@ -33575,6 +35053,13 @@ power=3 toughness=4 [/card] [card] +name=Lucid Dreams +auto=draw:mygravecardtypes controller +text=Draw X cards, where X is the number of card types among cards in your graveyard. +mana={3}{U}{U} +type=Sorcery +[/card] +[card] name=Ludevic, Necro-Alchemist abilities=partner auto=@each my end restriction{compare(oplifelost)~morethan~0}:may draw:1 controller @@ -33672,7 +35157,7 @@ subtype=Aura [card] name=Luminous Broodmoth abilities=flying -auto=@movedto(creature[-flying]|myGraveyard) from(myBattlefield):all(trigger[to]) moveTo(myBattlefield) && transforms((,newability[counter(0/0,1,Flying],newability[this(counter{0/0.1.Flying}>=1) flying])) +auto=@movedto(creature[-flying]|myGraveyard) from(myBattlefield):all(trigger[to]) moveTo(myBattlefield) and!( transforms((,newability[counter(0/0.1.Flying],newability[this(counter{0/0.1.Flying}>=1) flying])) forever )! text=Flying -- Whenever a creature you control without flying dies, return it to the battlefield under its owner's control with a flying counter on it. mana={2}{W}{W} type=Creature @@ -34006,6 +35491,17 @@ power=2 toughness=2 [/card] [card] +name=Magus of the Bridge +auto=@movedTo(creature[-token]|mygraveyard) from(battlefield):token(Zombie,Creature Zombie,2/2,black) +auto=@movedTo(creature[-token]|opponentgraveyard) from(battlefield):all(this) moveto(exile) +text=Whenever a nontoken creature is put into your graveyard from the battlefield, create a 2/2 black Zombie creature token. -- When a creature is put into an opponent's graveyard from the battlefield, exile Magus of the Bridge. +mana={B}{B}{B} +type=Creature +subtype=Human Wizard +power=4 +toughness=4 +[/card] +[card] name=Magus of the Mind auto={U}{T}{S}:name(Exile X cards) ability$!name(Exile X cards) name(Exile X cards) all(*[zpos<=countallspell]|mylibrary) moveto(myexile) and!( canplayfromexile ueot )! !$ controller text={U}, {T}, Sacrifice Magus of the Mind: Shuffle your library, then exile the top X cards, where X is one plus the number of spells cast this turn. Until end of turn, you may play lands and cast spells from among cards exiled this way without paying their mana costs. @@ -34500,6 +35996,17 @@ power=2 toughness=3 [/card] [card] +name=Marble Gargoyle +abilities=flying +auto={W}:0/1 ueot +text=Flying -- {W}: Marble Gargoyle gets +0/+1 until end of turn. +mana={2}{W} +type=Artifact Creature +subtype=Gargoyle +power=2 +toughness=2 +[/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 converted mana cost 8 or less from your graveyard to the battlefield. @@ -34862,6 +36369,18 @@ power=2 toughness=2 [/card] [card] +name=Master of Death +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto=name(Surveil 2) reveal:psurveiloffsetplus2plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend +autograveyard=@each my upkeep:pay({L:1}) moveto(myhand) +text=When Master of Death enters the battlefield, surveil 2. -- At the beginning of your upkeep, if Master of Death is in your graveyard, you may pay 1 life. If you do, return it to your hand. +mana={1}{U}{B} +type=Creature +subtype=Zombie Wizard +power=3 +toughness=1 +[/card] +[card] name=Master of Winds abilities=flying auto=draw:2 && transforms((,newability[target(*|myhand) reject])) forever @@ -35115,15 +36634,6 @@ mana={2}{B} type=Sorcery [/card] [card] -name=Mentor's Guidance -aicode=activate transforms((,newability[draw:1 controller])) oneshot -auto=name(Scry 1) scry:1 scrycore delayed draw:1 controller scrycoreend scryend -auto=if type(*[planeswalker;cleric;druid;shaman;warlock;wizard]|mybattlefield)~morethan~0 then name(Scry 1) name(Scry 1) scry:1 scrycore delayed draw:1 controller scrycoreend scryend -text=When you cast this spell, copy it if you control a planeswalker, Cleric, Druid, Shaman, Warlock, or Wizard. -- Scry 1, then draw a card. -mana={2}{U} -type=Sorcery -[/card] -[card] name=Menagerie Liberator abilities=trample auto=@combat(attacking) source(this):1/1 ueot @@ -35135,6 +36645,24 @@ power=3 toughness=2 [/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 +auto=draw:3 controller +text=Draw three cards. -- Basic landcycling {1}{U} ({1}{U}, Discard this card: Search your library for a basic land card, reveal it, put it into your hand, then shuffle.) +mana={4}{U}{U} +type=Instant +[/card] +[card] +name=Mentor's Guidance +aicode=activate transforms((,newability[draw:1 controller])) oneshot +auto=name(Scry 1) scry:1 scrycore delayed draw:1 controller scrycoreend scryend +auto=if type(*[planeswalker;cleric;druid;shaman;warlock;wizard]|mybattlefield)~morethan~0 then name(Scry 1) name(Scry 1) scry:1 scrycore delayed draw:1 controller scrycoreend scryend +text=When you cast this spell, copy it if you control a planeswalker, Cleric, Druid, Shaman, Warlock, or Wizard. -- Scry 1, then draw a card. +mana={2}{U} +type=Sorcery +[/card] +[card] name=Mephitic Vapors auto=all(creature) -1/-1 aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus2plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot @@ -35640,6 +37168,16 @@ power=3 toughness=2 [/card] [card] +name=Mine Collapse +target=creature,planeswalker +other={S(mountain|myBattlefield)} name(Sacrifice mountain) +otherrestriction=myturnonly +auto=damage:5 +text=If it's your turn, you may sacrifice a Mountain rather than pay this spell's mana cost. -- Mine Collapse deals 5 damage to target creature or planeswalker. +mana={3}{R} +type=Instant +[/card] +[card] name=Minion of the Wastes abilities=trample auto=if compare(lifetotal)~morethan~0 then choice name(Pay 1 life) life:-1 controller && transforms((,setpower=1,settoughness=1)) forever @@ -35960,6 +37498,15 @@ type=Enchantment subtype=Aura [/card] [card] +name=Mistvault Bridge +abilities=indestructible +auto=tap(noevent) +auto={T}:add{B} +auto={T}:add{U} +text=Mistvault Bridge enters the battlefield tapped. -- Indestructible -- {T}: Add {U} or {B}. +type=Artifact Land +[/card] +[card] name=Mistwalker abilities=changeling,flying auto={1}{U}:1/-1 ueot @@ -36045,6 +37592,14 @@ text={T}: Add {C}. -- {4}: Mobilized District becomes a 3/3 Citizen creature wit type=Land [/card] [card] +name=Moderation +auto=maxCast(*)1 +auto=@movedTo(*|mystack):name(Draw a card) draw:1 controller +text=You can't cast more than one spell each turn. -- Whenever you cast a spell, draw a card. +mana={1}{W}{U} +type=Enchantment +[/card] +[card] name=Mogg Infestation target=player auto=all(creature|targetedpersonsbattlefield) destroy and!( if cantargetcard(creature|graveyard) then create(Goblin:Creature Goblin:1/1:red)*2 targetedpersonsbattlefield)! @@ -36174,6 +37729,17 @@ mana={3}{B}{B} type=Sorcery [/card] [card] +name=Monoskelion +auto=counter(1/1) +auto={1}{C(1/1,-1)}:name(Deal 1 damage) damage:1 target(player,creature,planeswalker) +text=Monoskelion enters the battlefield with a +1/+1 counter on it. -- {1}, Remove a +1/+1 counter from Monoskelion: It deals 1 damage to any target. +mana={2} +type=Artifact Creature +subtype=Construct +power=1 +toughness=1 +[/card] +[card] name=Monstrous Onslaught auto=if compare(power:highest:*:mybattlefield)~equalto~1 then ability$!name(Choose a creature) damage:1 target(creature)!$ controller auto=if compare(power:highest:*:mybattlefield)~equalto~2 then thisforeach(variable{2}) ability$!name(Choose a creature) damage:1 target(creature)!$ controller @@ -36357,6 +37923,16 @@ power=1 toughness=1 [/card] [card] +name=Mount Velus Manticore +auto=@each my combatbegins restriction{type(*|myhand)~morethan~0}:may name(Discard a card) target(*|myhand) reject and!( transforms((,newability[name(Deals damage) damage:numoftypes target(player^creature^planeswalker)])) oneshot )! +text=At the beginning of combat on your turn, you may discard a card. When you do, Mount Velus Manticore deals X damage to any target, where X is the number of card types the discarded card has. +mana={2}{R}{R} +type=Enchantment Creature +subtype=Manticore +power=3 +toughness=4 +[/card] +[card] name=Mounted Archers abilities=reach text=Reach (This creature can block creatures with flying.) -- {W}: Mounted Archers can block an additional creature this turn. @@ -36560,6 +38136,20 @@ power=2 toughness=3 [/card] [card] +name=Murktide Regent +abilities=flying +other={delve} name(Delve) +auto=foreach(instant[fresh]|myexile) counter(1/1) +auto=foreach(sorcery[fresh]|myexile) counter(1/1) +auto=@movedto(*[instant;sorcery]|mystack,myhand,mylibrary,mysideboard,myexile) from(mygraveyard):counter(1/1) +text=Delve (Each card you exile from your graveyard while casting this spell pays for {1}.) -- Flying -- Murktide Regent enters the battlefield with a +1/+1 counter on it for each instant and sorcery card exiled with it. -- Whenever an instant or sorcery card leaves your graveyard, put a +1/+1 counter on Murktide Regent. +mana={5}{U}{U} +type=Creature +subtype=Dragon +power=3 +toughness=3 +[/card] +[card] name=Murkwater Pathway auto={T}:add{B} text={T}: Add {B}. // Clearwater Pathway @@ -36655,6 +38245,16 @@ mana={3} type=Artifact [/card] [card] +name=Myr Scrapling +auto={S}:name(Put 1/1 counter) counter(1/1) target(creature) +text=Sacrifice Myr Scrapling: Put a +1/+1 counter on target creature. +mana={1} +type=Artifact Creature +subtype=Myr +power=1 +toughness=1 +[/card] +[card] name=Myriad Construct kicker={3} auto=if paid(kicker) then foreach(land[-basic]|opponentBattlefield) counter(1/1,1) @@ -36723,6 +38323,15 @@ mana={4} type=Artifact [/card] [card] +name=Mystic Redaction +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto=@each my upkeep:scry:1 scrycore delayed dontshow donothing scrycoreend scryend +auto=@discarded(*|myHand):deplete:2 opponent +text=At the beginning of your upkeep, scry 1. -- Whenever you discard a card, each opponent mills two cards. (They put the top two cards of their library into their graveyard.) +mana={2}{U} +type=Enchantment +[/card] +[card] name=Mystic Reflection abilities=foretell target=creature[-legendary] @@ -37136,6 +38745,20 @@ text=As Necroblossom Snarl enters the battlefield, you may reveal a Swamp or For type=Land [/card] [card] +name=Necrogoyf +anyzone=type:creature:graveyard/4 cdaactive +abilities=madness +autoexile=restriction{discarded} pay({1}{B}{B}) name(pay 1 B B to cast) activate name(pay 1 B B to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard) +auto=@each my upkeep:ability$! name(Discard a card) name(Discard a card) target(*|myhand) reject !$ controller +auto=@each opponent upkeep:ability$! name(Discard a card) name(Discard a card) target(*|myhand) reject !$ opponent +text=Necrogoyf's power is equal to the number of creature cards in all graveyards. -- At the beginning of each player's upkeep, that player discards a card. -- Madness {1}{B}{B} (If you discard this card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.) +mana={3}{B}{B} +type=Creature +subtype=Lhurgoyf +power=* +toughness=4 +[/card] +[card] name=Necrologia restriction=myturnonly auto=if compare(lifetotal)~morethan~0 then choice name(Pay 1 Life) life:-1 controller && draw:1 controller @@ -37163,6 +38786,18 @@ mana={3}{B}{B} type=Instant [/card] [card] +name=Necromancer's Familiar +abilities=flying +auto=aslongas(*|myhand) lifelink <1 +auto={B}{D(*|myhand)}:transforms((,newability[indestructible],newability[tap])) ueot +text=Flying -- Hellbent — Necromancer's Familiar has lifelink as long as you have no cards in hand. -- {B}, Discard a card: Necromancer's Familiar gains indestructible until end of turn. Tap it. +mana={3}{B} +type=Creature +subtype=Bird Spirit +power=3 +toughness=1 +[/card] +[card] name=Necromantic Selection auto=moveto(exile) all(this) auto=destroy all(creature|battlefield) @@ -37246,16 +38881,6 @@ mana={B} type=Instant [/card] [card] -name=Needlethorn Drake -abilities=flying,deathtouch -text=Flying, deathtouch -mana={G}{U} -type=Creature -subtype=Drake -power=1 -toughness=1 -[/card] -[card] name=Needle Drop auto=draw:1 controller auto=damage:1 target(creature[damaged],player) @@ -37276,6 +38901,16 @@ type=Instant subtype=Trap [/card] [card] +name=Needlethorn Drake +abilities=flying,deathtouch +text=Flying, deathtouch +mana={G}{U} +type=Creature +subtype=Drake +power=1 +toughness=1 +[/card] +[card] name=Needletooth Raptor auto=@damaged(this):damage:5 target(creature|opponentBattlefield) text=Enrage — Whenever Needletooth Raptor is dealt damage, it deals 5 damage to target creature an opponent controls. @@ -37449,6 +39084,16 @@ mana={2}{B} type=Enchantment [/card] [card] +name=Nested Shambler +auto=@movedTo(this|graveyard) from(battlefield):token(Squirrel,Creature Squirrel,1/1,green)*power and!( tap(noevent) )! +text=When Nested Shambler dies, create X tapped 1/1 green Squirrel creature tokens, where X is Nested Shambler's power. +mana={B} +type=Creature +subtype=Zombie +power=1 +toughness=1 +[/card] +[card] name=Nesting Dragon abilities=flying auto=@movedTo(land|myBattlefield):token(dragon egg) @@ -37488,6 +39133,16 @@ power=5 toughness=5 [/card] [card] +name=Nettlecyst +auto={2}:equip +auto=teach(creature) type:*[artifact;enchantment]:mybattlefield/type:*[artifact;enchantment]:mybattlefield nonstatic +auto=livingweapontoken(Phyrexian Germ,Creature Phyrexian Germ,0/0,black) +text=Living weapon (When this Equipment enters the battlefield, create a 0/0 black Phyrexian Germ creature token, then attach this to it.) -- Equipped creature gets +1/+1 for each artifact and/or enchantment you control. -- Equip {2} +mana={3} +type=Artifact +subtype=Equipment +[/card] +[card] name=Neurok Transmuter auto={U}:target(creature) transforms((artifact)) ueot auto={U}:target(creature[artifact]) transforms((removetypes)) ueot && transforms((Creature,blue)) ueot @@ -38301,6 +39956,16 @@ text={T}, Pay 1 life: Add {B} or {G}. -- {1}, {T}, Sacrifice Nurturing Peatland: type=Land [/card] [card] +name=Nykthos Paragon +auto=@lifeof(player) from(*[-lifefaker]) turnlimited:may name(Put 1/1 counters) counter(1/1,thatmuch) all(creature|myBattlefield) +text=Whenever you gain life, you may put that many +1/+1 counters on each creature you control. Do this only once each turn. +mana={4}{W}{W} +type=Enchantment Creature +subtype=Human Soldier +power=4 +toughness=6 +[/card] +[card] name=Nylea's Forerunner abilities=Trample auto=lord(other creature|myBattlefield) trample @@ -38601,6 +40266,20 @@ power=0 toughness=3 [/card] [card] +name=Obsidian Charmaw +abilities=flying +autoexile=thisforeach(variable{olandc}>0) changecost(colorless:-1) forcedalive +autograveyard=thisforeach(variable{olandc}>0) changecost(colorless:-1) forcedalive +autohand=thisforeach(variable{olandc}>0) changecost(colorless:-1) forcedalive +auto=name(Destroy land) target(land[-basic]|opponentBattlefield) destroy +text=This spell costs {1} less to cast for each land your opponents control that could produce {C}. -- Flying -- When Obsidian Charmaw enters the battlefield, destroy target nonbasic land an opponent controls. +mana={3}{R}{R} +type=Creature +subtype=Dragon +power=4 +toughness=4 +[/card] +[card] name=Obuun, Mul Daya Ancestor auto=@each my combatbegins restriction{compare(power)~equalto~1}:may target(land|mybattlefield) transforms((Elemental Creature,setpower=1,settoughness=1,trample,haste)) ueot auto=@each my combatbegins restriction{compare(power)~equalto~2}:may target(land|mybattlefield) transforms((Elemental Creature,setpower=2,settoughness=2,trample,haste)) ueot @@ -39044,9 +40723,10 @@ toughness=2 [/card] [card] name=Once Upon a Time +other={0} name(Cast as first spell) +otherrestriction=type(*[-land]|mygraveyard)~equalto~0,type(*[-land]|myexile)~equalto~0,type(*|mystack)~equalto~0 aicode=activate moveto(myhand) target(*[creature;land;zpos<=5]|mylibrary) auto=name(look) reveal:5 optionone name(Get a card) target(<1>*[creature;land]|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<5>*|reveal) bottomoflibrary optiontwoend revealend -auto=@movedto(*|mystack) restriction{thisturn(*|mystack)~lessthan~2}:castcard(this) ueot oneshot text=If this spell is the first spell you've cast this game, you may cast it without paying its mana cost. -- Look at the top five cards of your library. You may reveal a creature or land card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. mana={1}{G} type=Instant @@ -39372,6 +41052,18 @@ mana={5} type=Artifact [/card] [card] +name=Orchard Strider +aicode=activate target(land[basic]|mylibrary) moveto(myhand) +autohand={1}{G}{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 +auto=token(Food,Artifact Food,0/0) and!( transforms((,newability[{2}{T}{S}:life:3])) forever )! +text=When Orchard Strider enters the battlefield, create two Food tokens. (They're artifacts with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") -- Basic landcycling {1}{G} ({1}{G}, Discard this card: Search your library for a basic land card, reveal it, put it into your hand, then shuffle.) +mana={4}{G}{G} +type=Creature +subtype=Treefolk +power=6 +toughness=4 +[/card] +[card] name=Orcish Farmer auto={T}:ueot loseabilities && losesubtypesof(land) && transforms((swamp)) target(land) text={T}: Target land becomes a Swamp until its controller's next untap step. @@ -39383,8 +41075,9 @@ toughness=2 [/card] [card] name=Orcish Hellraiser -auto=upcost[{R};next upkeep] sacrifice -auto=@movedTo(this|graveyard) from(battlefield):ability$!name(Choose one) choice name(Damage player) damage:2 target(player) _ choice name(Damage planeswalker) damage:2 target(planeswalker)!$ controller +auto=counter(0/0,1,echo) +auto=@each my upkeep once:transforms((,newability[counter(0/0.-1.echo)],newability[pay[[{R}]] name(pay red mana) donothing?sacrifice])) forever +auto=@movedTo(this|graveyard) from(battlefield):name(Deals 2 damage) damage:2 target(player,planeswalker) text=Echo {R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) -- When Orcish Hellraiser dies, it deals 2 damage to target player or planeswalker. mana={1}{R} type=Creature @@ -39588,6 +41281,21 @@ power=3 toughness=4 [/card] [card] +name=Ornithopter of Paradise +abilities=flying +auto={T}:add{R} +auto={T}:add{B} +auto={T}:add{U} +auto={T}:add{G} +auto={T}:add{W} +text=Flying -- {T}: Add one mana of any color. +mana={2} +type=Artifact Creature +subtype=Thopter +power=0 +toughness=2 +[/card] +[card] name=Orvar, the All-Form abilities=changeling auto=@targeted(other *|mybattlefield) from(*[instant;sorcery]|mycastingzone):name(Create copy of targeted permanent) all(trigger[to]) clone @@ -39736,6 +41444,17 @@ mana={3}{U} type=Instant [/card] [card] +name=Out of Time +auto=counter(0/0,type:creature:battlefield,Time) +auto=vanishing:0 +auto=all(creature|battlefield) transforms((,newability[untap],newability[phaseout])) forever +auto=@each upkeep restriction{compare(hascnttime)~morethan~0}:phaseout all(creature|battlefield) +auto=@each my upkeep restriction{compare(hascnttime)~equalto~0}:sacrifice +text=When Out of Time enters the battlefield, untap all creatures, then phase them out until Out of Time leaves the battlefield. Put a time counter on Out of Time for each creature phased out this way. -- Vanishing (At the beginning of your upkeep, remove a time counter from this enchantment. When the last is removed, sacrifice it.) +mana={1}{W}{W} +type=Enchantment +[/card] +[card] name=Outflank target=creature[attacking;blocking] auto=damage:type:creature:mybattlefield @@ -40207,6 +41926,16 @@ type=Enchantment subtype=Aura [/card] [card] +name=Parcel Myr +auto={2}{S}:draw:1 controller +text={2} , Sacrifice Parcel Myr: Draw a card. +mana={1}{U} +type=Artifact Creature +subtype=Clue Myr +power=2 +toughness=1 +[/card] +[card] name=Parcelbeast abilities=mutate otherrestriction=type(creature[-human]|mybattlefield)~morethan~0 @@ -40627,6 +42356,14 @@ mana={3}{U}{U} type=Instant [/card] [card] +name=Persist +target=creature[-legendary]|mygraveyard +auto=moveto(myBattlefield) and!( counter(-1/-1) )! +text=Return target nonlegendary creature card from your graveyard to the battlefield with a -1/-1 counter on it. +mana={1}{B} +type=Sorcery +[/card] +[card] name=Persistent Petitioners auto={1}{T}:target(player) deplete:1 auto={T(Advisor|myBattlefield)}{T(Advisor|myBattlefield)}{T(Advisor|myBattlefield)}{T(Advisor|myBattlefield)}:deplete:12 @@ -40700,6 +42437,16 @@ power=1 toughness=2 [/card] [card] +name=Petrified Plating +target=creature +auto=teach(creature) 2/2 +suspend(2)={G} +text=Enchant creature -- Enchanted creature gets +2/+2. -- Suspend 2—{G} (Rather than cast this card from your hand, you may pay {G} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) +mana={2}{G} +type=Enchantment +subtype=Aura +[/card] +[card] name=Phalanx Formation auto=choice name(Don't strive) ability$!name(choose 1 creature) name(choose 1 creature) target(*[creature]) double strike ueot!$ controller auto=choice name(Strive 1) ability$!name(choose 2 creatures) pay[[{1}{W}]] name(choose 2 creatures) target(<2>*[creature]) double strike ueot!$ controller @@ -40735,6 +42482,17 @@ mana={1}{W} type=Instant [/card] [card] +name=Phantasmal Dreadmaw +abilities=trample +auto=@targeted(this):sacrifice +text=Trample -- When Phantasmal Dreadmaw becomes the target of a spell or ability, sacrifice it. +mana={2}{U}{U} +type=Creature +subtype=Dinosaur Illusion +power=6 +toughness=6 +[/card] +[card] name=Phantasmal Form target=creature auto=ueot transforms((,setpower=3,settoughness=3)) @@ -40967,6 +42725,15 @@ mana={1}{G} type=Instant [/card] [card] +name=Piercing Rays +target=creature[tapped] +auto=moveto(exile) +autohand={1}{W}:name(Forecast) target(<2>creature[-tapped]) tap limit:1 myUpkeepOnly +text=Exile target tapped creature. -- Forecast — {2}{W}, Reveal Piercing Rays from your hand: Tap target untapped creature. (Activate this ability only during your upkeep and only once each turn.) +mana={1}{W} +type=Sorcery +[/card] +[card] name=Pigment Storm target=creature auto=transforms((,newability[this(toughness=1) damage:1 && damage:4 targetController])) oneshot @@ -41144,6 +42911,18 @@ mana={3}{U} type=Sorcery [/card] [card] +name=Piru, the Volatile +abilities=flying,lifelink +auto=upcost[{R}{W}{B}] sacrifice +auto=@movedto(this|graveyard) from(battlefield):name(Deals 7 damage) damage:7 all(creature[-legendary]) +text=Flying, lifelink -- At the beginning of your upkeep, sacrifice Piru, the Volatile unless you pay {R}{W}{B}. -- When Piru dies, it deals 7 damage to each nonlegendary creature. +mana={2}{R}{R}{W}{W}{B}{B} +type=Legendary Creature +subtype=Elder Dragon +power=7 +toughness=7 +[/card] +[card] name=Piston-Fist Cyclops abilities=defender text=Defender -- As long as you've cast an instant or sorcery spell this turn, Piston-Fist Cyclops can attack as though it didn't have defender. @@ -41654,6 +43433,26 @@ mana={2} type=Artifact [/card] [card] +name=Power Depot +abilities=modular +modular=1 +auto=tap(noevent) +auto=@movedTo(this|mygraveyard) from(myBattlefield):may thisforeach(counter{1/1.1}) counter(1/1,1) target(creature[artifact]) +auto={T}:add{C} +auto=this(variable{type:artifact:myrestrictedcastingzone}>0) {T}:add{R} +auto=this(variable{type:artifact:mybattlefield}>0) {T}:add{R} +auto=this(variable{type:artifact:myrestrictedcastingzone}>0) {T}:add{B} +auto=this(variable{type:artifact:mybattlefield}>0) {T}:add{B} +auto=this(variable{type:artifact:myrestrictedcastingzone}>0) {T}:add{U} +auto=this(variable{type:artifact:mybattlefield}>0) {T}:add{U} +auto=this(variable{type:artifact:myrestrictedcastingzone}>0) {T}:add{G} +auto=this(variable{type:artifact:mybattlefield}>0) {T}:add{G} +auto=this(variable{type:artifact:myrestrictedcastingzone}>0) {T}:add{W} +auto=this(variable{type:artifact:mybattlefield}>0) {T}:add{W} +text=Power Depot enters the battlefield tapped. -- {T}: Add {C}. -- {T}: Add one mana of any color. Spend this mana only to cast artifact spells or activate abilities of artifacts. -- Modular 1 +type=Artifact Land +[/card] +[card] name=Power Surge auto=@each my upkeep:damage:type:land[-tapped]:mybattlefield controller auto=@each opponent upkeep:damage:type:land[-tapped]:opponentbattlefield opponent @@ -41864,6 +43663,17 @@ power=2 toughness=1 [/card] [card] +name=Priest of Fell Rites +auto={T}{L:3}{S}:name(Return creature) target(creature|mygraveyard) moveto(mybattlefield) asSorcery +autograveyard={3}{W}{B}:name(Unearth) moveto(mybattlefield) and!( transforms((,newability[haste],newability[unearth],newability[exiledeath])) forever )! asSorcery +text={T}, Pay 3 life, Sacrifice Priest of Fell Rites: Return target creature card from your graveyard to the battlefield. Activate only as a sorcery. -- Unearth {3}{W}{B} ( {3}{W}{B}: Return this card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.) +mana={W}{B} +type=Creature +subtype=Human Warlock +power=2 +toughness=2 +[/card] +[card] name=Priest of Forgotten Gods auto={T}{S(other creature|mybattlefield)}{S(other creature|mybattlefield)}:target(player) ability$!name(Sacrifice Creature) name(Sacrifice Creature) notatarget(creature|mybattlefield) sacrifice and!(life:-2 controller)! !$ targetedplayer && add{B}{B} controller && draw:1 controller text={T}, Sacrifice two other creatures: Any number of target players each lose 2 life and sacrifice a creature. You add {B}{B} and draw a card. @@ -41946,7 +43756,7 @@ type=Sorcery [card] name=Primal Vigor auto=@tokencreated(*|myBattlefield):name(Double the token) all(trigger) clone options(notrigger) -auto=@tokencreated(*|opponentBattlefield):name(Double the token) all(trigger) clone options(notrigger) clone and!( transforms((,newability[moveto(opponentBattlefield)])) forever )! +auto=@tokencreated(*|opponentBattlefield):name(Double the token) all(trigger) clone options(notrigger) and!( transforms((,newability[moveto(opponentBattlefield)])) forever )! auto=@counteradded(1/1) from(creature|battlefield) except(Primal Vigor):may counter(1/1) target(creature[counter{1/1.1}]|Battlefield) text=If one or more tokens would be put onto the battlefield, twice that many of those tokens are put onto the battlefield instead. -- If one or more +1/+1 counters would be placed on a creature, twice that many +1/+1 counters are placed on that creature instead. mana={4}{G} @@ -41990,12 +43800,6 @@ power=7 toughness=6 [/card] [card] -name=Prismatic Vista -auto={L:1}{T}{S}:notatarget(land[basic]|mylibrary) moveto(mybattlefield) -text={T}, Pay 1 life, Sacrifice Prismatic Vista: Search your library for a basic land card, put it onto the battlefield, then shuffle your library. -type=Land -[/card] -[card] name=Prismari Apprentice auto=@movedto(*[instant;sorcery]|mystack):unblockable ueot auto=@movedto(*[instant;sorcery;manacost>=5]|mystack):counter(1/1) @@ -42047,6 +43851,19 @@ power=3 toughness=3 [/card] [card] +name=Prismatic Ending +auto=target(*[-land;manacost<=converge]|battlefield) moveto(exile) +text=Converge — Exile target nonland permanent if its mana value is less than or equal to the number of colors of mana spent to cast this spell. +mana={X}{W} +type=Sorcery +[/card] +[card] +name=Prismatic Vista +auto={L:1}{T}{S}:notatarget(land[basic]|mylibrary) moveto(mybattlefield) +text={T}, Pay 1 life, Sacrifice Prismatic Vista: Search your library for a basic land card, put it onto the battlefield, then shuffle your library. +type=Land +[/card] +[card] name=Prismite auto={2}:Add{W} auto={2}:Add{U} @@ -42118,6 +43935,16 @@ mana={6}{B}{B}{B} type=Sorcery [/card] [card] +name=Profane Tutor +suspend(2)={1}{B} +restriction=never +mana={0} +auto=name(Search card) target(*|mylibrary) moveto(myhand) and!( shuffle )! +text=Suspend 2 — {1}{B} (Rather than cast this card from your hand, pay {1}{B} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) -- Search your library for a card, put that card into your hand, then shuffle. +type=Sorcery +color=black +[/card] +[card] name=Professor of Symbology auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot text=When Professor of Symbology enters the battlefield, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) @@ -42205,6 +44032,20 @@ power=5 toughness=5 [/card] [card] +name=Prophetic Titan +aicode=activate transforms((,newability[target(*[zpos<=4]|mylibrary) moveto(myhand) and!( all(*[zpos<=4]|mylibrary) bottomoflibrary )!])) ueot +auto=ifnot delirium then choice name(Deals 4 damage) name(Deals 4 damage) damage:4 target(player,creature,planeswalker) +auto=ifnot delirium then choice name(Reveal 4 cards) name(Reveal 4 cards) reveal:4 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<4>*|reveal) bottomoflibrary optiontwoend revealend +auto=if delirium then name(Deals 4 damage) damage:4 target(player,creature,planeswalker) +auto=if delirium then name(Reveal 4 cards) reveal:4 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<4>*|reveal) bottomoflibrary optiontwoend revealend +text=Delirium — When Prophetic Titan enters the battlefield, choose one. If there are four or more card types among cards in your graveyard, choose both instead. -- • Prophetic Titan deals 4 damage to any target. -- • Look at the top four cards of your library. Put one of them into your hand and the rest on the bottom of your library in a random order. +mana={4}{U}{R} +type=Creature +subtype=Giant Wizard +power=4 +toughness=4 +[/card] +[card] name=Prosperous Pirates auto=token(435451)*2 text=When Prosperous Pirates enters the battlefield, create two colorless Treasure artifact tokens with "{T}, Sacrifice this artifact: Add one mana of any color to your mana pool." @@ -43046,6 +44887,17 @@ mana={2}{W} type=Enchantment [/card] [card] +name=Radiant Epicure +auto=life:converge controller +auto=life:-converge opponent +text=Converge — When Radiant Epicure enters the battlefield, each opponent loses X life and you gain X life, where X is the number of colors of mana spent to cast this spell. +mana={4}{B} +type=Creature +subtype=Vampire Wizard +power=5 +toughness=5 +[/card] +[card] name=Radiant Scrollwielder auto=@damaged(creature) from(*[instant;sorcery]|myzones):life:thatmuch controller auto=@damageof(player) from(*[instant;sorcery]|myzones):life:thatmuch controller @@ -43116,6 +44968,20 @@ power=4 toughness=2 [/card] [card] +name=Ragavan, Nimble Pilferer +other={R}{2} name(Dash) +auto=if paid(alternative) then transforms((,newability[haste],newability[phaseaction[endofturn sourceinplay] moveto(ownerhand) all(this)])) forever +auto=@combatdamaged(player) from(this):token(Treasure Sur) +auto=@combatdamagefoeof(player) from(this):name(Exile top card) name(Exile top card) all(*[zpos=1]|opponentlibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[phaseaction[endofturn once checkex] moveTo(ownerexile)])) ueot )! +auto=@combatdamageof(player) from(this):name(Exile top card) name(Exile top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile])) ueot )! +text=Whenever Ragavan, Nimble Pilferer deals combat damage to a player, create a Treasure token and exile the top card of that player's library. Until end of turn, you may cast that card. -- Dash {1}{R} (You may cast this spell for its dash cost. If you do, it gains haste, and it's returned from the battlefield to its owner's hand at the beginning of the next end step.) +mana={R} +type=Legendary Creature +subtype=Monkey Pirate +power=2 +toughness=1 +[/card] +[card] name=Rage-Scarred Berserker auto=1/0 target(creature|myBattlefield) ueot && indestructible ueot text=When Rage-Scarred Berserker enters the battlefield, target creature you control gets +1/+0 and gains indestructible until end of turn. (Damage and effects that say “destroy” don’t destroy it.) @@ -43289,6 +45155,18 @@ power=4 toughness=3 [/card] [card] +name=Rakdos Headliner +abilities=haste +auto=counter(0/0,1,echo) +auto=@each my upkeep restriction{compare(hascntecho)~morethan~0}:transforms((,newability[counter(0/0.-1.echo)],newability[if type(*|myhand)~morethan~0 then choice name(Discard a card) name(Discard a card) target(*|myhand) reject],newability[choice name(Sacrifice) sacrifice])) forever +text=Haste -- Echo—Discard a card. (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) +mana={B}{R} +type=Creature +subtype=Devil +power=3 +toughness=3 +[/card] +[card] name=Rakdos Locket auto={BR}{BR}{BR}{BR}{T}{S}:draw:2 auto={T}:Add{B} @@ -43823,6 +45701,17 @@ power=1 toughness=1 [/card] [card] +name=Ravenous Squirrel +auto=@sacrificed(*[creature;artifact]|mybattlefield):counter(1/1) all(this) +auto={1}{B}{G}{S(*[creature;artifact]|mybattlefield)}:name(Gain life and draw) life:1 controller && draw:1 controller +text=Whenever you sacrifice an artifact or creature, put a +1/+1 counter on Ravenous Squirrel. -- {1}{B}{G}, Sacrifice an artifact or creature: You gain 1 life and draw a card. +mana={B or G} +type=Creature +subtype=Squirrel +power=1 +toughness=1 +[/card] +[card] name=Raving Dead abilities=deathtouch,mustattack auto=@combatdamaged(player) from(this):life:-halfdownopponentlifetotal opponent @@ -43834,6 +45723,17 @@ power=2 toughness=6 [/card] [card] +name=Raving Visionary +auto={U}{T}:draw:1 && transforms((,newability[target(*|myhand) reject])) forever +auto=while(restriction{delirium}) {2}{U}{T}:draw:1 controller +text={U}, {T}: Draw a card, then discard a card. -- Delirium — {2}{U}, {T}: Draw a card. Activate only if there are four or more card types among cards in your graveyard. +mana={1}{U} +type=Creature +subtype=Merfolk Wizard +power=1 +toughness=1 +[/card] +[card] name=Ravnica at War auto=moveto(exile) all(*[multicolor]) text=Exile all multicolored permanents. @@ -43885,6 +45785,15 @@ power=8 toughness=8 [/card] [card] +name=Razortide Bridge +abilities=indestructible +auto=tap(noevent) +auto={T}:add{W} +auto={T}:add{U} +text=Razortide Bridge enters the battlefield tapped. -- Indestructible -- {T}: Add {W} or {U}. +type=Artifact Land +[/card] +[card] name=Read the Runes auto=thisforeach(X) draw:1 controller && ability$!name(Choose one) choice name(Discard a card) target(*|myhand) reject _ choice name(Sacrifice a permanent) target(*|mybattlefield) sacrifice!$ controller text=Draw X cards. For each card drawn this way, discard a card unless you sacrifice a permanent. @@ -44068,6 +45977,15 @@ mana={W} type=Instant [/card] [card] +name=Recalibrate +target=creature +auto=moveTo(ownerhand) +auto=if type(*[discarded]|mygraveyard)~morethan~0 then draw:1 controller +text=Return target creature to its owner's hand. If you've discarded a card this turn, draw a card. +mana={1}{U} +type=Instant +[/card] +[card] name=Recall target=*|myhand abilities=exiledeath @@ -44881,6 +46799,16 @@ mana={3}{G}{G} type=Sorcery [/card] [card] +name=Resurgent Belief +suspend(2)={1}{W} +auto=all(enchantment|myGraveyard) moveto(myBattlefield) +text=Suspend 2—{1}{W} (Rather than cast this card from your hand, pay {1}{W} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) -- Return all enchantment cards from your graveyard to the battlefield. (Auras with nothing to enchant remain in your graveyard.) +mana={0} +restriction=never +color=white +type=Sorcery +[/card] +[card] name=Retribution auto=ability$!sacrifice notatarget(creature|mybattlefield)!$ opponent auto=ability$!counter(-1/-1) notatarget(creature|mybattlefield)!$ opponent @@ -45051,6 +46979,18 @@ mana={4}{B}{G} type=Sorcery [/card] [card] +name=Revolutionist +abilities=madness +autoexile=restriction{discarded} pay({3}{R}) name(pay 3R to cast) activate name(pay 3R to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard) +auto=name(Return instant or sorcery) target(*[instant;sorcery]|myGraveyard) moveto(myHand) +text=When Revolutionist enters the battlefield, return target instant or sorcery card from your graveyard to your hand. -- Madness {3}{R} (If you discard this card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.) +mana={5}{R} +type=Creature +subtype=Human Wizard +power=3 +toughness=3 +[/card] +[card] name=Reyav, Master Smith auto=@combat(attacking) source(creature[enchanted]|myBattlefield):all(trigger[to]) transforms((,newability[double strike])) ueot auto=@combat(attacking) source(creature[geared]|myBattlefield):all(trigger[to]) transforms((,newability[double strike])) ueot @@ -45332,6 +47272,21 @@ power=1 toughness=1 [/card] [card] +name=Rift Sower +suspend(2)={G} +auto={T}:name(Add red mana) add{R} +auto={T}:name(Add white mana) add{W} +auto={T}:name(Add blue mana) add{U} +auto={T}:name(Add black mana) add{B} +auto={T}:name(Add green mana) add{G} +text={T}: Add one mana of any color. -- Suspend 2—{G} (Rather than cast this card from your hand, you may pay {G} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.) +mana={2}{G} +type=Creature +subtype=Elf Druid +power=1 +toughness=3 +[/card] +[card] name=Rigging Runner abilities=first strike auto=if raid then counter(1/1,1) @@ -45564,6 +47519,16 @@ mana={4}{B} type=Sorcery [/card] [card] +name=Rise and Shine +abilities=overload +other={4}{U}{U} name(Overload) +auto=paidmana name(Target artifact becomes creature) name(Target artifact becomes creature) target(artifact[-creature]|myBattlefield) transforms((Artifact Creature,newability[counter(1/1.4)])) forever +auto=overload name(All artifacts become creatures) name(All artifacts become creatures) all(artifact[-creature]|myBattlefield) transforms((Artifact Creature,newability[counter(1/1.4)])) forever +text=Target noncreature artifact you control becomes a 0/0 artifact creature. Put four +1/+1 counters on each artifact that became a creature this way. -- Overload {4}{U}{U} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.") +mana={1}{U} +type=Sorcery +[/card] +[card] name=Rise of Extus target=creature auto=moveto(exile) @@ -45647,6 +47612,17 @@ power=0 toughness=5 [/card] [card] +name=Rishadan Dockhand +abilities=islandwalk +auto={1}{T}:target(land) tap +text=Islandwalk (This creature can't be blocked as long as defending player controls an Island.) -- {1}, {T}: Tap target land. +mana={U} +type=Creature +subtype=Merfolk +power=1 +toughness=2 +[/card] +[card] name=Rising Populace auto=@movedTo(other *[creature;planeswalker]|graveyard) from(myBattlefield):counter(1/1) text=Whenever another creature or planeswalker you control dies, put a +1/+1 counter on Rising Populace. @@ -45928,6 +47904,14 @@ power=2 toughness=2 [/card] [card] +name=Road // Ruin +auto=name(Search basic land) target(land[basic]|myLibrary) moveTo(myBattlefield) and!( transforms((,newability[tap(noevent)],newability[shuffle])) oneshot )! +autograveyard={1}{R}{R}:damage:type:land:myBattlefield target(creature) asSorcery +text=Search your library for a basic land card, put it onto the battlefield tapped, then shuffle. -- Aftermath (Cast this spell only from your graveyard. Then exile it.) Ruin deals damage to target creature equal to the number of lands you control. +mana={2}{G} +type=Instant +[/card] +[card] name=Road of Return other={2}{G}{G} name(Entwine) auto=ifnot paid alternative then choice name(Return permanent) moveto(myhand) target(*|mygraveyard) @@ -46417,13 +48401,6 @@ power=5 toughness=2 [/card] [card] -name=Rowen -auto=@drawof(player) turnlimited:if type(land[basic;fresh]|myhand)~morethan~0 then draw:1 controller -text=Reveal the first card you draw each turn. Whenever you reveal a basic land card this way, draw a card. -mana={2}{G}{G} -type=Enchantment -[/card] -[card] name=Rowdy Crew abilities=trample auto=draw:3 && discard:2 controller @@ -46435,6 +48412,13 @@ power=3 toughness=3 [/card] [card] +name=Rowen +auto=@drawof(player) turnlimited:if type(land[basic;fresh]|myhand)~morethan~0 then draw:1 controller +text=Reveal the first card you draw each turn. Whenever you reveal a basic land card this way, draw a card. +mana={2}{G}{G} +type=Enchantment +[/card] +[card] name=Rubble Reading target=land auto=destroy @@ -46803,6 +48787,15 @@ mana={B}{G} type=Instant [/card] [card] +name=Rustvale Bridge +abilities=indestructible +auto=tap(noevent) +auto={T}:add{W} +auto={T}:add{R} +text=Rustvale Bridge enters the battlefield tapped. -- Indestructible -- {T}: Add {R} or {W}. +type=Artifact Land +[/card] +[card] name=Rustwing Falcon abilities=flying text=Flying @@ -47092,6 +49085,17 @@ power=1 toughness=4 [/card] [card] +name=Said // Done +ability=flash +other={3}{U} name(Done) +restriction=can play sorcery +auto=ifnot paid(alternative) then target(*[instant;sorcery]|mygraveyard) moveto(myHand) +auto=if paid(alternative) then target(creature|battlefield) freeze +text=Return target instant or sorcery card from your graveyard to your hand. -- Tap up to two target creatures. They don’t untap during their controllers’ next untap step. +mana={2}{U} +type=Sorcery +[/card] +[card] name=Sailmonger auto={2}:target(creature) flying ueot auto=foreach(land[-tapped]|opponentBattlefield) transforms((,newability[ability$!name(Pay 2) pay[[{2}]] name(Pay 2) notatarget(creature) flying ueot?donothing!$ opponent])) forever @@ -47224,6 +49228,31 @@ power=3 toughness=4 [/card] [card] +name=Sanctifier en-Vec +abilities=protection from black,protection from red +auto=all(*[red;black]|graveyard) moveto(exile) +auto=@movedto(*[black;red]|opponentgraveyard) from(hand):name(Exile card) transforms((,newability[all(*[zpos=type:*:opponentgraveyard]|opponentgraveyard) moveto(exile)])) forever +auto=@movedto(*[black;red]|opponentgraveyard) from(sideboard):name(Exile card) transforms((,newability[all(*[zpos=type:*:opponentgraveyard]|opponentgraveyard) moveto(exile)])) forever +auto=@movedto(*[black;red]|opponentgraveyard) from(library):name(Exile card) transforms((,newability[all(*[zpos=type:*:opponentgraveyard]|opponentgraveyard) moveto(exile)])) forever +auto=@movedto(*[black;red]|opponentgraveyard) from(commandzone):name(Exile card) transforms((,newability[all(*[zpos=type:*:opponentgraveyard]|opponentgraveyard) moveto(exile)])) forever +auto=@movedto(*[black;red]|opponentgraveyard) from(exile):name(Exile card) transforms((,newability[all(*[zpos=type:*:opponentgraveyard]|opponentgraveyard) moveto(exile)])) forever +auto=@movedto(*[black;red]|opponentgraveyard) from(stack):name(Exile card) transforms((,newability[all(*[zpos=type:*:opponentgraveyard]|opponentgraveyard) moveto(exile)])) forever +auto=@movedto(*[black;red]|opponentgraveyard) from(graveyard):name(Exile card) transforms((,newability[all(*[zpos=type:*:opponentgraveyard]|opponentgraveyard) moveto(exile)])) forever +auto=@movedto(*[black;red]|mygraveyard) from(hand):name(Exile card) transforms((,newability[all(*[zpos=type:*:mygraveyard]|mygraveyard) moveto(exile)])) forever +auto=@movedto(*[black;red]|mygraveyard) from(sideboard):name(Exile card) transforms((,newability[all(*[zpos=type:*:mygraveyard]|mygraveyard) moveto(exile)])) forever +auto=@movedto(*[black;red]|mygraveyard) from(library):name(Exile card) transforms((,newability[all(*[zpos=type:*:mygraveyard]|mygraveyard) moveto(exile)])) forever +auto=@movedto(*[black;red]|mygraveyard) from(commandzone):name(Exile card) transforms((,newability[all(*[zpos=type:*:mygraveyard]|mygraveyard) moveto(exile)])) forever +auto=@movedto(*[black;red]|mygraveyard) from(exile):name(Exile card) transforms((,newability[all(*[zpos=type:*:mygraveyard]|mygraveyard) moveto(exile)])) forever +auto=@movedto(*[black;red]|mygraveyard) from(stack):name(Exile card) transforms((,newability[all(*[zpos=type:*:mygraveyard]|mygraveyard) moveto(exile)])) forever +auto=@movedto(*[black;red]|mygraveyard) from(graveyard):name(Exile card) transforms((,newability[all(*[zpos=type:*:mygraveyard]|mygraveyard) moveto(exile)])) forever +text=Protection from black and from red -- When Sanctifier en-Vec enters the battlefield, exile all cards that are black or red from all graveyards. -- If a black or red permanent, spell, or card not on the battlefield would be put into a graveyard, exile it instead. +mana={W}{W} +type=Creature +subtype=Human Cleric +power=2 +toughness=2 +[/card] +[card] name=Sanctuary Blade auto=teach(creature) 2/0 auto=teach(creature) protection from(chosencolor) @@ -47243,6 +49272,17 @@ mana={2}{W} type=Enchantment [/card] [card] +name=Sanctuary Raptor +abilities=flying +auto=@combat(attacking) source(this) restriction{type(*[token]|myBattlefield)~morethan~2}:name(Gains 2/0 and first strike) transforms((,newability[2/0],newability[first strike])) ueot +text=Flying -- Whenever Sanctuary Raptor attacks, if you control three or more tokens, Sanctuary Raptor gets +2/+0 and gains first strike until end of turn. +mana={3} +type=Artifact Creature +subtype=Bird +power=2 +toughness=1 +[/card] +[card] name=Sanctuary Smasher abilities=first strike,cycling autohand=__CYCLING__({2}{R}) @@ -47265,6 +49305,36 @@ power=1 toughness=4 [/card] [card] +name=Sanctum Prelate +auto=choice name(Choose 0) transforms((,newability[maxCast(*[-creature;manacost=0])0 opponent],newability[maxCast(*[-creature;manacost=0])0 controller])) forever +auto=choice name(Choose 1) transforms((,newability[maxCast(*[-creature;manacost=1])0 opponent],newability[maxCast(*[-creature;manacost=1])0 controller])) forever +auto=choice name(Choose 2) transforms((,newability[maxCast(*[-creature;manacost=2])0 opponent],newability[maxCast(*[-creature;manacost=2])0 controller])) forever +auto=choice name(Choose 3) transforms((,newability[maxCast(*[-creature;manacost=3])0 opponent],newability[maxCast(*[-creature;manacost=3])0 controller])) forever +auto=choice name(Choose 4) transforms((,newability[maxCast(*[-creature;manacost=4])0 opponent],newability[maxCast(*[-creature;manacost=4])0 controller])) forever +auto=choice name(Choose 5) transforms((,newability[maxCast(*[-creature;manacost=5])0 opponent],newability[maxCast(*[-creature;manacost=5])0 controller])) forever +auto=choice name(Choose 6) transforms((,newability[maxCast(*[-creature;manacost=6])0 opponent],newability[maxCast(*[-creature;manacost=6])0 controller])) forever +auto=choice name(Choose 7) transforms((,newability[maxCast(*[-creature;manacost=7])0 opponent],newability[maxCast(*[-creature;manacost=7])0 controller])) forever +auto=choice name(Choose 8) transforms((,newability[maxCast(*[-creature;manacost=8])0 opponent],newability[maxCast(*[-creature;manacost=8])0 controller])) forever +auto=choice name(Choose 9) transforms((,newability[maxCast(*[-creature;manacost=9])0 opponent],newability[maxCast(*[-creature;manacost=9])0 controller])) forever +auto=choice name(Choose 10) transforms((,newability[maxCast(*[-creature;manacost=10])0 opponent],newability[maxCast(*[-creature;manacost=10])0 controller])) forever +auto=choice name(Choose 11) transforms((,newability[maxCast(*[-creature;manacost=11])0 opponent],newability[maxCast(*[-creature;manacost=11])0 controller])) forever +auto=choice name(Choose 12) transforms((,newability[maxCast(*[-creature;manacost=12])0 opponent],newability[maxCast(*[-creature;manacost=12])0 controller])) forever +auto=choice name(Choose 13) transforms((,newability[maxCast(*[-creature;manacost=13])0 opponent],newability[maxCast(*[-creature;manacost=13])0 controller])) forever +auto=choice name(Choose 14) transforms((,newability[maxCast(*[-creature;manacost=14])0 opponent],newability[maxCast(*[-creature;manacost=14])0 controller])) forever +auto=choice name(Choose 15) transforms((,newability[maxCast(*[-creature;manacost=15])0 opponent],newability[maxCast(*[-creature;manacost=15])0 controller])) forever +auto=choice name(Choose 16) transforms((,newability[maxCast(*[-creature;manacost=16])0 opponent],newability[maxCast(*[-creature;manacost=16])0 controller])) forever +auto=choice name(Choose 17) transforms((,newability[maxCast(*[-creature;manacost=17])0 opponent],newability[maxCast(*[-creature;manacost=17])0 controller])) forever +auto=choice name(Choose 18) transforms((,newability[maxCast(*[-creature;manacost=18])0 opponent],newability[maxCast(*[-creature;manacost=18])0 controller])) forever +auto=choice name(Choose 19) transforms((,newability[maxCast(*[-creature;manacost=19])0 opponent],newability[maxCast(*[-creature;manacost=19])0 controller])) forever +auto=choice name(Choose 20) transforms((,newability[maxCast(*[-creature;manacost=20])0 opponent],newability[maxCast(*[-creature;manacost=20])0 controller])) forever +text=As Sanctum Prelate enters the battlefield, choose a number. -- Noncreature spells with converted mana cost equal to the chosen number can't be cast. +mana={1}{W}{W} +type=Creature +subtype=Human Cleric +power=2 +toughness=2 +[/card] +[card] name=Sanctum Seeker auto=@combat(attacking) source(vampire|mybattlefield):life:-1 opponent && life:1 controller text=Whenever a Vampire you control attacks, each opponent loses 1 life and you gain 1 life. @@ -47286,6 +49356,20 @@ power=3 toughness=2 [/card] [card] +name=Sanctum Weaver +auto={T}:name(Add red mana) thisforeach(variable{type:enchantment:myBattlefield}>0) add{R} +auto={T}:name(Add white mana) thisforeach(variable{type:enchantment:myBattlefield}>0) add{W} +auto={T}:name(Add blue mana) thisforeach(variable{type:enchantment:myBattlefield}>0) add{U} +auto={T}:name(Add black mana) thisforeach(variable{type:enchantment:myBattlefield}>0) add{B} +auto={T}:name(Add green mana) thisforeach(variable{type:enchantment:myBattlefield}>0) add{G} +text={T}: Add X mana of any one color, where X is the number of enchantments you control. +mana={1}{G} +type=Enchantment Creature +subtype=Dryad +power=0 +toughness=2 +[/card] +[card] name=Sanctum of All #MISSING: not possible to trigger twice any ability ATM auto=@each my upkeep:ability$!name(Choose one) choice name(Don't search) donothing _ choice name(Search Library) moveTo(myBattlefield) target(*[shrine]|myLibrary) && shuffle oneshot _ choice name(Search Graveyard) moveTo(myBattlefield) target(*[shrine]|myGraveyard)!$ controller @@ -48106,6 +50190,24 @@ power=3 toughness=3 [/card] [card] +name=Scion of Draco +abilities=flying +autoexile=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-2) forcedalive +autograveyard=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-2) forcedalive +autohand=thisforeach(variable{pbasiclandtypes}>0) changecost(colorless:-2) forcedalive +auto=lord(creature[white]|myBattlefield) vigilance +auto=lord(creature[blue]|myBattlefield) opponentshroud +auto=lord(creature[black]|myBattlefield) lifelink +auto=lord(creature[red]|myBattlefield) first strike +auto=lord(creature[green]|myBattlefield) trample +text=Domain — This spell costs {2} less to cast for each basic land type among lands you control. -- Flying -- Each creature you control has vigilance if it's white, hexproof if it's blue, lifelink if it's black, first strike if it's red, and trample if it's green. +mana={12} +type=Artifact Creature +subtype=Dragon +power=4 +toughness=4 +[/card] +[card] name=Scion of the Swarm abilities=flying auto=@lifeof(player) from(*[-lifefaker]):counter(1/1,1) @@ -48224,6 +50326,14 @@ mana={1}{U} type=Sorcery [/card] [card] +name=Scour the Desert +target=creature|mygraveyard +auto=moveto(Exile) and!( transforms((,newability[token(Bird^Creature Bird^1/1^white^flying)*toughness])) oneshot )! +text=Exile target creature card from your graveyard. Create X 1/1 white Bird creature tokens with flying, where X is the exiled card's toughness. +mana={3}{W}{W} +type=Sorcery +[/card] +[card] name=Scourge of Nel Toth abilities=flying flashback={B}{B}{S(creature|mybattlefield)}{S(creature|mybattlefield)} @@ -48331,6 +50441,17 @@ power=2 toughness=2 [/card] [card] +name=Scurry Oak +auto=evolve +auto=@counteradded(1/1) from(this):may name(Create squirrel) token(Squirrel,Creature Squirrel,1/1,green) +text=Evolve (Whenever a creature enters the battlefield under your control, if that creature has greater power or toughness than this creature, put a +1/+1 counter on this creature.) -- Whenever one or more +1/+1 counters are put on Scurry Oak, you may create a 1/1 green Squirrel creature token. +mana={2}{G} +type=Creature +subtype=Treefolk +power=1 +toughness=2 +[/card] +[card] name=Scute Swarm auto=_LANDFALL_If type(land|myBattlefield)~morethan~5 then clone all(this) else token(Insect,Creature Insect,1/1,green) text=Landfall — Whenever a land enters the battlefield under your control, create a 1/1 green Insect creature token. If you control six or more lands, create a token that's a copy of Scute Swarm instead. @@ -48353,6 +50474,14 @@ power=6 toughness=6 [/card] [card] +name=Scuttletide +auto={1}{D(*|myhand)}:token(Crab,Creature Crab,0/3,blue) +auto=this(variable{mygravecardtypes}>3) lord(crab|myBattlefield) 1/1 +text={1}, Discard a card: Create a 0/3 blue Crab creature token. -- Delirium — Crabs you control get +1/+1 as long as there are four or more card types among cards in your graveyard. +mana={1}{U} +type=Enchantment +[/card] +[card] name=Scuttling Sliver auto=all(creature[sliver]|mybattlefield) transforms((,newability[{2}:untap])) text=Sliver creatures you control have "{2}: Untap this creature." @@ -48524,6 +50653,13 @@ mana={2}{W} type=Snow Sorcery [/card] [card] +name=Search the Premises +auto=@each blockers:name(Investigate) token(Clue,Artifact Clue,0/0) and!( transforms((,newability[{S}{2}:draw:1])) forever )! controller +text=Whenever a creature attacks you or a planeswalker you control, investigate. (Create a colorless Clue artifact token with "{2}, Sacrifice this artifact: Draw a card.") +mana={3}{W} +type=Enchantment +[/card] +[card] name=Searing Barrage target=creature auto=damage:5 @@ -49141,6 +51277,24 @@ power=1 toughness=1 [/card] [card] +name=Serra's Emissary +abilities=flying +auto=choice name(artifact) transforms((,newability[preventalldamage to(controller) from(artifact)],newability[lord(creature|myBattlefield) transforms((,newability[protection from(artifact)]))])) forever +auto=choice name(creature) transforms((,newability[preventalldamage to(controller) from(creature)],newability[lord(creature|myBattlefield) transforms((,newability[protection from(creature)]))])) forever +auto=choice name(enchantment) transforms((,newability[preventalldamage to(controller) from(enchantment)],newability[lord(creature|myBattlefield) transforms((,newability[protection from(enchantment)]))])) forever +auto=choice name(instant) transforms((,newability[preventalldamage to(controller) from(instant)],newability[lord(creature|myBattlefield) transforms((,newability[protection from(instant)]))])) forever +auto=choice name(land) transforms((,newability[preventalldamage to(controller) from(land)],newability[lord(creature|myBattlefield) transforms((,newability[protection from(land)]))])) forever +auto=choice name(planeswalker) transforms((,newability[preventalldamage to(controller) from(planeswalker)],newability[lord(creature|myBattlefield) transforms((,newability[protection from(planeswalker)]))])) forever +auto=choice name(sorcery) transforms((,newability[preventalldamage to(controller) from(sorcery)],newability[lord(creature|myBattlefield) transforms((,newability[protection from(sorcery)]))])) forever +auto=choice name(tribal) transforms((,newability[preventalldamage to(controller) from(tribal)],newability[lord(creature|myBattlefield) transforms((,newability[protection from(tribal)]))])) forever +text=Flying -- As Serra's Emissary enters the battlefield, choose a card type. -- You and creatures you control have protection from the chosen card type. +mana={4}{W}{W}{W} +type=Creature +subtype=Angel +power=7 +toughness=7 +[/card] +[card] name=Serra's Guardian abilities=flying, vigilance auto=lord(other creature|myBattlefield) vigilance @@ -49494,7 +51648,7 @@ toughness=3 [/card] [card] name=Shambling Suit -anyzone=type:*[artifact,enchantment]:myBattlefield/3 cdaactive +anyzone=type:*[artifact;enchantment]:myBattlefield/3 cdaactive text=Shambling Suit's power is equal to the number of artifacts and/or enchantments you control. mana={3} type=Artifact Creature @@ -49626,6 +51780,17 @@ mana={2}{G}{G} type=Sorcery [/card] [card] +name=Shattered Ego +target=creature +auto=-3/0 +auto=counter(0/0,1,Shattered) +auto={3}{U}{U}:target(creature[enchanted;counter{0/0.1.Shattered}]) placefromthetop(3) +text=Enchant creature -- Enchanted creature gets -3/-0. -- {3}{U}{U}: Put enchanted creature into its owner's library third from the top. +mana={U} +type=Enchantment +subtype=Aura +[/card] +[card] name=Shattering Spree auto=choice name(Don't Replicate) ability$!name(Destroy 1 artifact) name(Destroy 1 artifact) target(*[artifact]) destroy!$ controller auto=choice name(Replicate 1 time) ability$!name(Destroy 2 artifacts) pay[[{R}]] name(Destroy 2 artifacts) target(<2>*[artifact]) destroy!$ controller @@ -50544,8 +52709,8 @@ toughness=1 [card] name=Silumgar Scavenger abilities=flying -auto=may name(Exploit) sacrifice notatarget(creature|mybattlefield) && transforms((,newability[target(creature|battlefield) haste])) ueot -auto=@movedto(other creature|graveyard) from(mybattlefield):counter(1/1,1) +auto=may name(Exploit) sacrifice target(creature|mybattlefield) && all(this) transforms((,newability[haste])) ueot +auto=@movedto(other creature|graveyard) from(mybattlefield):counter(1/1) text=Flying -- Exploit (When this creature enters the battlefield, you may sacrifice a creature.) -- Whenever another creature you control dies, put a +1/+1 counter on Silumgar Scavenger. It gains haste until end of turn if it exploited that creature. mana={4}{B} type=Creature @@ -50606,6 +52771,15 @@ power=2 toughness=2 [/card] [card] +name=Silverbluff Bridge +abilities=indestructible +auto=tap(noevent) +auto={T}:add{R} +auto={T}:add{U} +text=Silverbluff Bridge enters the battlefield tapped. -- Indestructible -- {T}: Add {U} or {R}. +type=Artifact Land +[/card] +[card] name=Silverclad Ferocidons auto=@damaged(this) from(*|opponentstack,opponentbattlefield):ability$!name(sacrifice a permanent) notatarget(*|mybattlefield) sacrifice!$ opponent text=Enrage — Whenever Silverclad Ferocidons is dealt damage, each opponent sacrifices a permanent. @@ -50818,6 +52992,17 @@ mana={1}{U}{U} type=Instant [/card] [card] +name=Sinister Starfish +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto={T}:name(Surveil 1) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend +text={T}: Surveil 1. (Look at the top card of your library. You may put that card into your graveyard.) +mana={1}{B} +type=Creature +subtype=Starfish +power=0 +toughness=3 +[/card] +[card] name=Sink into Takenuma target=swamp|mybattlefield auto=moveTo(myhand) && ability$!name(discard) notatarget(*|myhand) reject!$ opponent @@ -51180,6 +53365,18 @@ power=3 toughness=4 [/card] [card] +name=Skophos Reaver +abilities=madness +autoexile=restriction{discarded} pay({1}{R}) name(pay 1R to cast) activate name(pay 1R to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard) +auto=this(variable{controllerturn}>0) 2/0 +text=As long as it's your turn, Skophos Reaver gets +2/+0. -- Madness {1}{R} (If you discard this card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.) +mana={2}{R} +type=Creature +subtype=Minotaur Warrior +power=2 +toughness=3 +[/card] +[card] name=Skophos Warleader auto={R}{S(other creature,enchantment|myBattlefield}:1/0 && menace ueot text={R}, Sacrifice another creature or enchantment: Skophos Warleader gets +1/+0 and gains menace until end of turn. (It can’t be blocked except by two or more creatures.) @@ -51310,6 +53507,18 @@ power=1 toughness=3 [/card] [card] +name=Skyblade's Boon +target=creature +auto=1/1 +auto=flying +auto={2}{W}:all(this) moveto(ownerhand) +autograveyard={2}{W}:all(this) moveto(ownerhand) +text=Enchant creature -- Enchanted creature gets +1/+1 and has flying. -- {2}{W}: Return Skyblade's Boon to its owner's hand. Activate only if Skyblade's Boon is on the battlefield or in your graveyard. +mana={1}{W} +type=Enchantment +subtype=Aura +[/card] +[card] name=Skycat Sovereign abilities=flying auto=foreach(other creature[flying]|myBattlefield) 1/1 @@ -51560,6 +53769,26 @@ power=1 toughness=2 [/card] [card] +name=Slag Strider +abilities=affinityartifacts +auto={1}{S(artifact|myBattlefield)}:name(Deals 1 damage) damage:1 target(player,creature,planeswalker) +text=Affinity for artifacts (This spell costs 1 less to cast for each artifact you control.) -- {1}, Sacrifice an artifact: Slag Strider deals 1 damage to any target. +mana={5}{R}{R} +type=Creature +subtype=Elemental +power=3 +toughness=3 +[/card] +[card] +name=Slagwoods Bridge +abilities=indestructible +auto=tap(noevent) +auto={T}:add{R} +auto={T}:add{G} +text=Slagwoods Bridge enters the battlefield tapped. -- Indestructible -- {T}: Add {R} or {G}. +type=Artifact Land +[/card] +[card] name=Slash of Talons target=creature[attacking;blocking] auto=damage:2 @@ -51778,6 +54007,15 @@ mana={3}{R} type=Instant [/card] [card] +name=Smell Fear +target=creature|myBattlefield +auto=transforms((,newability[target(creature|opponentBattlefield) dynamicability])) oneshot +auto=notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate +text=Proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) -- Target creature you control fights up to one target creature you don't control. +mana={1}{G} +type=Sorcery +[/card] +[card] name=Smelt-Ward Ignus auto={2}{R}{S}:auto=target(creature[power<=3]|battlefield) transforms((,newability[moveTo(opponentbattlefield)],newability[phaseaction[endofturn sourceinplay] moveTo(ownerbattlefield)],newability[untap],haste)) ueot asSorcery text={2}{R}, Sacrifice Smelt-Ward Ignus: Gain control of target creature with power 3 or less until end of turn. Untap that creature. It gains haste until end of turn. Activate this ability only any time you could cast a sorcery. @@ -51966,6 +54204,18 @@ power=0 toughness=3 [/card] [card] +name=So Shiny +target=creature +auto=doesnotuntap +aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveTo(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto=if type(*[token]|myBattlefield)morethan~0 then tap +auto=if type(*[token]|myBattlefield)morethan~0 then scry:2 scrycore delayed dontshow donothing scrycoreend scryend +text=Enchant creature -- When So Shiny enters the battlefield, if you control a token, tap enchanted creature, then scry 2. -- Enchanted creature doesn't untap during its controller's untap step. +mana={2}{U} +type=Enchantment +subtype=Aura +[/card] +[card] name=So Tiny abilities=flash target=creature @@ -52001,6 +54251,27 @@ power=1 toughness=3 [/card] [card] +name=Sojourner's Companion +abilities=affinityartifacts +aicode=activate target(land[artifact]|mylibrary) moveto(myhand) +autohand={2}{cycle}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>land[artifact]|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 +text=Affinity for artifacts -- Artifact landcycling {2} ({2}, Discard this card: Search your library for an artifact land card, reveal it, put it into your hand, then shuffle.) +mana={7} +type=Artifact Creature +subtype=Salamander +power=4 +toughness=4 +[/card] +[card] +name=Sol Talisman +suspend(3)={1} +auto={T}:add{C}{C} +text=Suspend 3—{1} (Rather than cast this card from your hand, pay 1 and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) -- {T}: Add {C}{C}. +mana={0} +restriction=never +type=Artifact +[/card] +[card] name=Solar Blaze auto=lord(creature) dynamicability text=Each creature deals damage to itself equal to its power. @@ -52161,6 +54432,19 @@ power=3 toughness=2 [/card] [card] +name=Solitude +abilities=flash,lifelink +other={E(*[white]|myhand)} name(Evoke) +auto=if paid(alternative) then sacrifice +auto=target(creature) moveto(exile) and!( transforms((,newability[life:power controller])) oneshot )! +text=Flash -- Lifelink -- When Solitude enters the battlefield, exile up to one other target creature. That creature's controller gains life equal to its power. -- Evoke—Exile a white card from your hand. +mana={3}{W}{W} +type=Creature +subtype=Elemental Incarnation +power=3 +toughness=2 +[/card] +[card] name=Solve the Equation auto=name(Search instant or sorcery) target(*[instant;sorcery]|mylibrary) moveto(myhand) and!( shuffle )! text=Search your library for an instant or sorcery card, reveal it, put it into your hand, then shuffle. @@ -52442,6 +54726,19 @@ power=* toughness=* [/card] [card] +name=Soul of Migration +abilities=flying +other={3}{W} name(Evoke) +auto=alternative sacrifice +auto=token(Bird,Creature Bird,1/1,white,flying)*2 +text=Flying -- When Soul of Migration enters the battlefield, create two 1/1 white Bird creature tokens with flying. -- Evoke {3}{W} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) +mana={5}{W}{W} +type=Creature +subtype=Elemental +power=2 +toughness=4 +[/card] +[card] name=Soul of Shandalar abilities=first strike auto={3}{R}{R}:damage:3 target(creature|opponentbattlefield) && damage:3 opponent @@ -52837,6 +55134,18 @@ power=2 toughness=3 [/card] [card] +name=Specimen Collector +auto=token(Squirrel,Creature Squirrel,1/1,green) +auto=token(Crab,Creature Crab,0/3,blue) +auto=@movedTo(this|graveyard) from(battlefield):name(Copy token) clone target(*[token]|mybattlefield) +text=When Specimen Collector enters the battlefield, create a 1/1 green Squirrel creature token and a 0/3 blue Crab creature token. -- When Specimen Collector dies, create a token that's a copy of target token you control. +mana={4}{U} +type=Creature +subtype=Vedalken Wizard +power=2 +toughness=1 +[/card] +[card] name=Spectacle Mage abilities=flying auto=lord(instant[manacost>=5]|mycastingzone) changecost(colorless:-1) forcedalive @@ -53367,6 +55676,14 @@ toughness=1 color=white [/card] [card] +name=Spirit Summoning +auto=token(Spirit,Creature Spirit,3/2,white,red) +text=Create a 3/2 red and white Spirit creature token. +mana={1}{RW}{RW} +type=Sorcery +subtype=Lesson +[/card] +[card] name=Spirit of Malevolence auto=@movedto(this|graveyard) from(battlefield):life:-1 opponent && life:1 controller text=When Spirit of Malevolence dies, each opponent loses 1 life and you gain 1 life. @@ -53399,14 +55716,6 @@ power=2 toughness=4 [/card] [card] -name=Spirit Summoning -auto=token(Spirit,Creature Spirit,3/2,white,red) -text=Create a 3/2 red and white Spirit creature token. -mana={1}{RW}{RW} -type=Sorcery -subtype=Lesson -[/card] -[card] name=Spiritual Focus auto=@discarded(*|hand):may draw:1 controller auto=@discarded(*|hand):life:2 controller @@ -53640,6 +55949,15 @@ mana={6}{R} type=Instant [/card] [card] +name=Spreading Insurrection +abilities=storm +target=creature|opponentbattlefield +auto=moveto(mybattlefield) and!(transforms((,newability[phaseaction[endofturn sourceinplay] moveTo(previousbattlefield)],newability[untap],haste)) ueot)! +text=Gain control of target creature you don't control until end of turn. Untap that creature. It gains haste until end of turn. -- Storm (When you cast this spell, copy it for each spell cast before it this turn. You may choose new targets for the copies.) +mana={4}{R} +type=Sorcery +[/card] +[card] name=Spreading Rot target=land auto=destroy @@ -53920,6 +56238,24 @@ type=Enchantment subtype=Aura [/card] [card] +name=Squirrel Sanctuary +auto=token(Squirrel,Creature Squirrel,1/1,green) +auto=@movedto(graveyard) from(creature[-token]|myBattlefield):may pay({1}) name(Pay 1 and return to hand) moveTo(ownerhand) +text=When Squirrel Sanctuary enters the battlefield, create a 1/1 green Squirrel creature token. -- Whenever a nontoken creature you control dies, you may pay {1}. If you do, return Squirrel Sanctuary to its owner's hand. +mana={G} +type=Enchantment +[/card] +[card] +name=Squirrel Sovereign +auto=lord(other squirrel|myBattlefield) 1/1 +text=Other Squirrels you control get +1/+1. +mana={1}{G} +type=Creature +subtype=Squirrel Noble +power=2 +toughness=2 +[/card] +[card] name=Stadium Vendors auto=choice Add{R}{R} auto=choice Add{W}{W} @@ -54003,15 +56339,6 @@ mana={W} type=Instant [/card] [card] -name=Star of Extinction -target=land -auto=destroy -auto=damage:20 all(creature,planeswalker) -text=Destroy target land. Star of Extinction deals 20 damage to each creature and each planeswalker. -mana={5}{R}{R} -type=Sorcery -[/card] -[card] name=Star Pupil auto=counter(1/1) auto=_DIES_this(counter{1/1}=1) name(Put 1/1 counters on another creature) target(creature|mybattlefield) counter(1/1,1) @@ -54042,6 +56369,15 @@ power=0 toughness=0 [/card] [card] +name=Star of Extinction +target=land +auto=destroy +auto=damage:20 all(creature,planeswalker) +text=Destroy target land. Star of Extinction deals 20 damage to each creature and each planeswalker. +mana={5}{R}{R} +type=Sorcery +[/card] +[card] name=Star-Crowned Stag auto=@combat(attacking) source(this):tap target(creature|opponentBattlefield) text=Whenever Star-Crowned Stag attacks, tap target creature defending player controls. @@ -54224,6 +56560,19 @@ mana={2}{U} type=Sorcery [/card] [card] +name=Steel Dromedary +auto=tap(noevent) +auto=counter(1/1,2) +auto=this(counter{1/1}>=1) doesnotuntap +auto=@each my combatbegins restriction{compare(hascnt11)~morethan~0}:may name(Move 1/1 counter) all(this) counter(1/1,-1) && target(creature) counter(1/1) +text=Steel Dromedary enters the battlefield tapped with two +1/+1 counters on it. -- Steel Dromedary doesn't untap during your untap step if it has a +1/+1 counter on it. -- At the beginning of combat on your turn, you may move a +1/+1 counter from Steel Dromedary onto target creature. +mana={3} +type=Artifact Creature +subtype=Camel +power=2 +toughness=2 +[/card] +[card] name=Steel Hellkite abilities=flying auto={2}:1/0 ueot @@ -54290,6 +56639,17 @@ type=Artifact subtype=Equipment [/card] [card] +name=Steelfin Whale +abilities=affinityartifacts +auto=@movedTo(artifact|mybattlefield):untap +text=Affinity for artifacts (This spell costs 1 less to cast for each artifact you control.) -- Whenever an artifact enters the battlefield under your control, untap Steelfin Whale. +mana={5}{U} +type=Creature +subtype=Whale +power=3 +toughness=4 +[/card] +[card] name=Steelgaze Griffin abilities=flying auto=@drawof(player):transforms((,newability[@drawof(player) restriction{once}:2/0])) ueot @@ -54319,6 +56679,16 @@ mana={2}{B}{B} type=Sorcery [/card] [card] +name=Step Through +target=<2>creature|battlefield +aicode=activate moveTo(myHand) target(wizard|myLibrary) +autohand={2}{cycle}:name(search card) reveal:plibrarycount optionone name(choose card) target(<1>wizard|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(myhand))! afterrevealedend revealend +auto=moveto(ownerhand) +text=Return two target creatures to their owners' hands. -- Wizardcycling {2} ({2} , Discard this card: Search your library for a Wizard card, reveal it, put it into your hand, then shuffle.) +mana={3}{U}{U} +type=Sorcery +[/card] +[card] name=Stern Dismissal target=creature,enchantment auto=moveTo(ownerHand) @@ -54644,6 +57014,17 @@ power=2 toughness=2 [/card] [card] +name=Storm God's Oracle +auto=@movedTo(this|graveyard) from(battlefield):name(Deeals 3 damage) damage:3 target(player,creature,planeswalker) +auto={1}:1/-1 ueot +text={1}: Storm God's Oracle gets +1/-1 until end of turn. -- When Storm God's Oracle dies, it deals 3 damage to any target. +mana={1}{U}{R} +type=Enchantment Creature +subtype=Human Shaman +power=1 +toughness=3 +[/card] +[card] name=Storm Herald abilities=haste auto=activate castcard(normal) target(aura|myGraveyard) and!(transforms((,newability[treason],newability[exiledeath])) forever)! @@ -54693,6 +57074,13 @@ mana={2}{U}{R} type=Legendary Enchantment [/card] [card] +name=Storm's Wrath +auto=damage:4 all(creature,planeswalker) +text=Storm’s Wrath deals 4 damage to each creature and each planeswalker. +mana={2}{R}{R} +type=Sorcery +[/card] +[card] name=Storm-Kiln Artist auto=foreach(artifact|mybattlefield) 1/0 auto=@movedto(*[instant;sorcery]|mystack):name(Create Treasure) token(Treasure Sur) @@ -54704,13 +57092,6 @@ power=2 toughness=2 [/card] [card] -name=Storm's Wrath -auto=damage:4 all(creature,planeswalker) -text=Storm’s Wrath deals 4 damage to each creature and each planeswalker. -mana={2}{R}{R} -type=Sorcery -[/card] -[card] name=Stormcloud Spirit abilities=flying text=Flying. (This creature can't be blocked except by creatures with flying or reach.) @@ -54918,6 +57299,14 @@ power=1 toughness=3 [/card] [card] +name=Strike It Rich +auto=token(Treasure Sur) +flashback={2}{R} +text=Create a Treasure token. (It's an artifact with " {T}, Sacrifice this artifact: Add one mana of any color.") -- Flashback {2}{R} (You may cast this card from your graveyard for its flashback cost. Then exile it.) +mana={R} +type=Sorcery +[/card] +[card] name=Striped Riverwinder abilities=opponentshroud,cycling autohand=__CYCLING__({U}) @@ -55069,6 +57458,19 @@ mana={1}{B} type=Instant [/card] [card] +name=Subtlety +abilities=Flash,lifelink +other={E(*[blue]|myhand)} name(Evoke) +auto=if paid(alternative) then sacrifice +auto=may name(Choose creature or planeswalker) target(creature,planeswalker) transforms((,newability[choice name(Put on top) moveto(myLibrary)],newability[choice name(Put on bottom) bottomoflibrary])) oneshot +text=Flash -- Flying -- When Subtlety enters the battlefield, choose up to one target creature spell or planeswalker spell. Its owner puts it on the top or bottom of their library. -- Evoke—Exile a blue card from your hand. +mana={2}{U}{U} +type=Creature +subtype=Elemental Incarnation +power=3 +toughness=3 +[/card] +[card] name=Sudden Breakthrough target=creature auto=transforms((,newability[2/0],newability[first strike])) ueot @@ -55085,6 +57487,15 @@ mana={X}{R} type=Sorcery [/card] [card] +name=Sudden Edict +target=player +abilities=split second +auto=ability$!name(sacrifice) notatarget(creature|myBattlefield) sacrifice!$ targetedplayer +text=Split second (As long as this spell is on the stack, players can't cast spells or activate abilities that aren't mana abilities.) -- Target player sacrifices a creature. +mana={1}{B} +type=Instant +[/card] +[card] name=Sudden Spinnerets target=creature auto=1/3 ueot @@ -55556,6 +57967,13 @@ type=Land subtype=Desert [/card] [card] +name=Suspend +auto=name(Exile creature) name(Exile creature) target(creature) moveto(myexile) and!( transforms((,newability[counter(0/0.2.Time)],newability[@each my upkeep restriction{compare(hascnttime)~equalto~1}:name(Cast creature from exile) moveto(myReveal) and!( moveto(myBattlefield) and!( transforms((,newability[moveTo(myBattlefield) and!( if cantargetcard(creature|*) then transforms((,newability[haste])) forever )!])) forever )! )!],newability[@each my upkeep restriction{compare(hascnttime)~morethan~1}:counter(0/0.-1.Time)])) forever )! +text=Exile target creature and put two time counters on it. If it doesn't have suspend, it gains suspend. (At the beginning of its owner's upkeep, they remove a time counter. When the last is removed, they play it without paying its mana cost. If it's a creature, it has haste.) +mana={U} +type=Instant +[/card] +[card] name=Suspicious Bookcase abilities=defender auto={3}{T}:target(creature) unblockable @@ -55579,6 +57997,18 @@ power=2 toughness=4 [/card] [card] +name=Svyelun of Sea and Sky +auto=aslongas(merfolk|myBattlefield) indestructible >2 +auto=@combat(attacking) source(this):draw:1 controller +auto=@targeted(other *[merfolk]|myBattlefield) from(*[instant;sorcery]|opponentzones):choice name(This spell costs 1 more) name(This spell costs 1 more) target(*[instant;sorcery]|opponentzones) transforms((,newability[pay[[{1}]] name(pay 1 more) donothing?fizzle])) oneshot +text=Svyelun of Sea and Sky has indestructible as long as you control at least two other Merfolk. -- Whenever Svyelun attacks, draw a card. -- Other Merfolk you control have ward {1} . (Whenever another Merfolk you control becomes the target of a spell or ability an opponent controls, counter it unless that player pays {1}.) +mana={1}{U}{U} +type=Legendary Creature +subtype=Merfolk God +power=3 +toughness=4 +[/card] +[card] name=Swab Goblin mana={1}{R} type=Creature @@ -55668,6 +58098,13 @@ power=5 toughness=5 [/card] [card] +name=Sweep the Skies +auto=token(Thopter,Artifact Creature Thopter,1/1,flying)*converge +text=Converge — Create a 1/1 colorless Thopter artifact creature token with flying for each color of mana spent to cast this spell. +mana={X}{U}{U} +type=Sorcery +[/card] +[card] name=Sweet Oblivion target=player auto=deplete:4 @@ -55777,6 +58214,18 @@ type=Artifact subtype=Equipment [/card] [card] +name=Sword of Hearth and Home +auto={2}:equip +auto=teach(creature) protection from green +auto=teach(creature) protection from white +auto=teach(creature) 2/2 +auto=@combatdamaged(player) from(mytgt):may name(Exile a creature) target(creature|myBattlefield) moveto(exile) and!( transforms((,newability[moveto(myBattlefield) and!( tap(noevent) )!],newability[name(Search library) target(land[basic]|mylibrary) moveto(mybattlefield) and!( tap(noevent) )!])) oneshot )! +text=Equipped creature gets +2/+2 and has protection from green and from white. -- Whenever equipped creature deals combat damage to a player, exile up to one target creature you own, then search your library for a basic land card. Put both cards onto the battlefield under your control, then shuffle. -- Equip {2} +mana={3} +type=Artifact +subtype=Equipment +[/card] +[card] name=Sword of Sinew and Steel auto=teach(creature) 2/2 auto=teach(creature) protection from black @@ -55838,6 +58287,15 @@ power=1 toughness=3 [/card] [card] +name=Sylvan Anthem +aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot +auto=@movedTo(creature[green]|myBattlefield):name(Scry 1) scry:1 scrycore delayed dontshow donothing scrycoreend scryend +auto=lord(creature[green]|myBattlefield) 1/1 +text=Green creatures you control get +1/+1. -- Whenever a green creature enters the battlefield under your control, scry 1. +mana={G}{G} +type=Enchantment +[/card] +[card] name=Sylvan Awakening auto=all(land|mybattlefield) becomes(Elemental Creature,2/2,reach,indestructible,haste) uynt text=Until your next turn, all lands you control become 2/2 Elemental creatures with reach, indestructible, and haste. They're still lands. @@ -56081,6 +58539,16 @@ power=5 toughness=4 [/card] [card] +name=Sythis, Harvest's Hand +auto=@movedTo(enchantment|myBattlefield) from(mystack):life:1 controller && draw:1 controller +text=Whenever you cast an enchantment spell, you gain 1 life and draw a card. +mana={G}{W} +type=Legendary Enchantment Creature +subtype=Nymph +power=1 +toughness=2 +[/card] +[card] name=Szat's Will auto=choice name(Sacrifice creature):ability$!name(Sacrifice) sacrifice notatarget(creature[power=power:highest:creature:myBattlefield]|mybattlefield)!$ opponent auto=choice name(Exile all cards):token(Thrull,Creature Thrull,0/1,black)*power:highest:creature:opponentGraveyard and!( moveTo(exile) all(*|opponentgraveyard) )! @@ -56407,6 +58875,15 @@ text=Tangle Vale enters the battlefield tapped. -- {T}: Add {G}. // {1}{G} Tangl type=Land [/card] [card] +name=Tanglepool Bridge +abilities=indestructible +auto=tap(noevent) +auto={T}:add{G} +auto={T}:add{U} +text=Tanglepool Bridge enters the battlefield tapped. -- Indestructible -- {T}: Add {G} or {U}. +type=Artifact Land +[/card] +[card] name=Tangletrap auto=if type(creature[flying]|battlefield)~morethan~0 then choice name(Deals 5 damage) name(Deals 5 damage) target(creature[flying]|battlefield) damage:5 auto=if type(artifact|battlefield)~morethan~0 then choice name(Destroy artifact) name(Destroy artifact) target(artifact|battlefield) destroy @@ -56523,6 +59000,17 @@ power=2 toughness=3 [/card] [card] +name=Tavern Scoundrel +auto=@coinflipped(*|battlefield) result(won):token(Treasure Sur)*2 +auto={1}{T}{S(other *|myBattlefield)}:flipacoin winability donothing winabilityend loseability donothing loseabilityend flipend +text=Whenever you win a coin flip, create two Treasure tokens. (They're artifacts with " {T}, Sacrifice this artifact: Add one mana of any color.") -- {1}, {T}, Sacrifice another permanent: Flip a coin. +mana={1}{R} +type=Creature +subtype=Human Rogue +power=1 +toughness=3 +[/card] +[card] name=Tazeem Raptor abilities=flying auto=may moveTo(ownerHand) target(land|myBattlefield) @@ -56954,6 +59442,25 @@ power=4 toughness=5 [/card] [card] +name=Terminal Agony +target=creature +abilities=madness +auto=destroy +autoexile=restriction{discarded} pay({B}{R}) name(pay B R to cast) activate name(pay B R to cast) castcard(normal)?name(put in graveyard) moveto(ownergraveyard) +text=Destroy target creature. -- Madness {B}{R} (If you discard this card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.) +mana={2}{B}{R} +type=Sorcery +[/card] +[card] +name=Terramorph +auto=name(Search library) target(land[basic]|mylibrary) moveto(myBattlefield) and!( shuffle )! +auto=if rebound then ability$!moveto(exile) all(Terramorph|mystack)!$ controller +autoexile=@rebounded:may activate castcard(normal) +text=Search your library for a basic land card, put it onto the battlefield, then shuffle. -- Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.) +mana={3}{G} +type=Sorcery +[/card] +[card] name=Territorial Allosaurus kicker={2}{G} auto=if paid(kicker) then transforms((,newability[target(creature|opponentbattlefield) dynamicability])) ueot @@ -56997,6 +59504,17 @@ power=6 toughness=5 [/card] [card] +name=Territorial Kavu +anyzone=pbasiclandtypes/pbasiclandtypes cdaactive +auto=@combat(attacking) source(this):transforms((,newability[choice name(Discard and draw) target(*|myHand) transforms((,newability[reject],newability[draw:1 controller])) oneshot],newability[choice name(Exile a card) target(*|graveyard) moveto(exile)],newability[choice name(Do nothing) donothing])) oneshot +text=Domain — Territorial Kavu's power and toughness are each equal to the number of basic land types among lands you control. -- Whenever Territorial Kavu attacks, choose one — -- • Discard a card. If you do, draw a card. -- • Exile up to one target card from a graveyard. +mana={R}{G} +type=Creature +subtype=Kavu +power=* +toughness=* +[/card] +[card] name=Territorial Scythecat abilities=trample auto=@movedTo(land|myBattlefield):counter(1/1,1) @@ -57650,6 +60168,14 @@ type=Enchantment subtype=Saga [/card] [card] +name=The Underworld Cookbook +auto={T}{D(*|myHand)}:name(Create food) token(Food,Artifact Food,0/0) and!( transforms((,newability[{2}{T}{S}:life:3])) forever )! controller +auto={4}{T}{S}:name(Return creature) target(creature|mygraveyard) moveto(myHand) +text={T}, Discard a card: Create a Food token. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") -- {4}, {T}, Sacrifice The Underworld Cookbook: Return target creature card from your graveyard to your hand. +mana={1} +type=Artifact +[/card] +[card] name=The Ur-Dragon abilities=flying auto=lord(dragon|mycastingzone) altercost(colorless,-1) @@ -57827,6 +60353,15 @@ power=2 toughness=2 [/card] [card] +name=Thornglint Bridge +abilities=indestructible +auto=tap(noevent) +auto={T}:add{G} +auto={T}:add{W} +text=Thornglint Bridge enters the battlefield tapped. -- Indestructible -- {T}: Add {G} or {W}. +type=Artifact Land +[/card] +[card] name=Thornmantle Striker auto=if type(*[counter{any}]|battlefield)~morethan~0 then choice name(Remove counters from permanent) name(Remove counters from permanent) target(*[counter{any}]|battlefield) thisforeach(variable{type:elf:mybattlefield}>0) removesinglecountertype(1) auto=if type(creature|opponentbattlefield)~morethan~0 then choice name(Opponent's creature gets -X/-X) name(Opponent's creature gets -X/-X) target(creature|opponentbattlefield) -type:elf:mybattlefield/-type:elf:mybattlefield ueot @@ -57887,6 +60422,17 @@ mana={U}{B} type=Sorcery [/card] [card] +name=Thought Monitor +abilities=flying,affinityartifacts +auto=draw:2 controller +text=Affinity for artifacts -- Flying -- When Thought Monitor enters the battlefield, draw two cards. +mana={6}{U} +type=Artifact Creature +subtype=Construct +power=2 +toughness=2 +[/card] +[card] name=Thoughtbound Phantasm abilities=defender auto=this(counter{1/1}>=3) canattack @@ -57915,6 +60461,18 @@ mana={4}{U}{R} type=Enchantment [/card] [card] +name=Thraben Watcher +abilities=flying,vigilance +auto=lord(creature[-token]|myBattlefield) 1/1 +auto=lord(creature[-token]|myBattlefield) vigilance +text=Flying, vigilance -- Other nontoken creatures you control get +1/+1 and have vigilance. +mana={2}{W}{W} +type=Creature +subtype=Angel +power=2 +toughness=2 +[/card] +[card] name=Thran Temporal Gateway auto={4}{T}:notatarget(*[artifact;legendary;saga]|myhand) moveTo(mybattlefield) text={4}, {T}: You may put a historic permanent card from your hand onto the battlefield. (Artifacts, legendaries, and Sagas are historic.) @@ -57983,6 +60541,20 @@ power=1 toughness=3 [/card] [card] +name=Thrasta, Tempest's Roar +abilities=trample,haste +autoexile=thisforeach(variable{pstormcount}>0) changecost(colorless:-3) forcedalive +autograveyard=thisforeach(variable{pstormcount}>0) changecost(colorless:-3) forcedalive +autohand=thisforeach(variable{pstormcount}>0) changecost(colorless:-3) forcedalive +auto=this(cantargetcard(*[fresh])) opponentshroud +text=This spell costs {3} less to cast for each other spell cast this turn. -- Trample, haste -- Trample over planeswalkers (This creature can deal excess combat damage to the controller of the planeswalker it's attacking.) -- Thrasta, Tempest's Roar has hexproof as long as it entered the battlefield this turn. +mana={10}{G}{G} +type=Legendary Creature +subtype=Dinosaur +power=7 +toughness=7 +[/card] +[card] name=Threnody Singer abilities=Flash,flying auto=-manaU:mybattlefield/-0 target(creature) ueot @@ -58404,6 +60976,18 @@ power=3 toughness=4 [/card] [card] +name=Tide Shaper +kicker={1} +auto=aslongas(island|opponentbattlefield) 1/1 >0 +auto=if paid(kicker) then target(land) transforms((island)) +text=Kicker {1} (You may pay an additional {1} as you cast this spell.) -- When Tide Shaper enters the battlefield, if it was kicked, target land becomes an Island for as long as Tide Shaper remains on the battlefield. -- Tide Shaper gets +1/+1 as long as an opponent controls an Island. +mana={U} +type=Creature +subtype=Merfolk Wizard +power=1 +toughness=1 +[/card] +[card] name=Tide Skimmer abilities=flying auto=@each my blockers restriction{type(creature[attacking;flying]|myBattlefield)~morethan~1}:draw:1 controller @@ -58528,6 +61112,30 @@ mana={X}{R} type=Instant [/card] [card] +name=Timeless Dragon +abilities=flying +aicode=activate target(plains|mylibrary) moveto(myhand) +autohand={2}{cycle}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>plains|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 +autograveyard={2}{W}{W}{E}:name(Eternalize) clone and!( transforms((Zombie,removemc,setpower=4,settoughness=4,black)) forever )! assorcery +text=Flying -- Plainscycling {2} ({2}, Discard this card: Search your library for a Plains card, reveal it, put it into your hand, then shuffle.) -- Eternalize {2}{W}{W} ({2}{W}{W}, Exile this card from your graveyard: Create a token that's a copy of it, except it's a 4/4 black Zombie Dragon with no mana cost. Eternalize only as a sorcery.) +mana={3}{W}{W} +type=Creature +subtype=Dragon +power=5 +toughness=5 +[/card] +[card] +name=Timeless Witness +auto=name(Return card) target(*|myGraveyard) moveTo(myHand) +autograveyard={5}{G}{G}{E}:name(Eternalize) clone and!( transforms((Zombie,removemc,setpower=4,settoughness=4,black)) forever )! assorcery +text=When Timeless Witness enters the battlefield, return target card from your graveyard to your hand. -- Eternalize {5}{G}{G} ({5}{G}{G}, Exile this card from your graveyard: Create a token that's a copy of it, except it's a 4/4 black Zombie Human Shaman with no mana cost. Eternalize only as a sorcery.) +mana={2}{G}{G} +type=Creature +subtype=Human Shaman +power=2 +toughness=1 +[/card] +[card] name=Timely Ward abilities=flash target=creature @@ -58605,6 +61213,16 @@ power=1 toughness=2 [/card] [card] +name=Tireless Provisioner +auto=@movedTo(land|myBattlefield):name(Create treasure) token(Treasure Sur) +text=Landfall — Whenever a land enters the battlefield under your control, create a Food token or a Treasure token. (Food is an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life." Treasure is an artifact with " {T}, Sacrifice this artifact: Add one mana of any color.") +mana={2}{G} +type=Creature +subtype=Elf Scout +power=3 +toughness=2 +[/card] +[card] name=Tishana's Wayfinder aicode=activate transforms((,newability[explores],newability[if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(myhand)])) oneshot auto=name(Explores) reveal:1 optionone if type(land|reveal)~lessthan~1 then transforms((,newability[counter(1/1)])) forever 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)])) oneshot optiontwoend afterrevealed explores afterrevealedend revealend @@ -58720,6 +61338,18 @@ power=4 toughness=4 [/card] [card] +name=Tizerus Charger +retrace={3}{G}{G}{E(other *|myGraveyard)}{E(other *|myGraveyard)}{E(other *|myGraveyard)}{E(other *|myGraveyard)} name(Escape) +auto=if paid(retrace) then choice name(Escape with 1/1 counter) name(Escape with 1/1 counter) counter(1/1) +auto=if paid(retrace) then choice name(Escape with flying counter) name(Escape with flying counter) transforms((,newability[counter(0/0.1.Flying],newability[this(counter{0/0.1.Flying}>=1) flying])) forever +text=Escape—{4}{B}, Exile five other cards from your graveyard. (You may cast this card from your graveyard for its escape cost.) -- Tizerus Charger escapes with your choice of a +1/+1 counter or a flying counter on it. +mana={2}{B} +type=Creature +subtype=Pegasus +power=3 +toughness=2 +[/card] +[card] name=Tocatli Honor Guard auto=@movedto(creature|battlefield):all(trigger) onlymanaability ueot text=Creatures entering the battlefield don't cause abilities to trigger. @@ -58852,28 +61482,6 @@ power=3 toughness=3 [/card] [card] -name=Tome of Legends -auto=counter(0/0,1,Page) all(this) -auto=@movedto(*[iscommander]|myBattlefield):conunter(0/0,1,Page) all(this) -auto=@combat(attacking) source(creature[iscommander]|myBattlefield):conunter(0/0,1,Page) all(this) -auto={1}{T}{C(0/0,-1,Page)}:Draw:1 controller -text=Tome of Legends enters the battlefield with a page counter on it. -- Whenever your commander enters the battlefield or attacks, put a page counter on Tome of Legends. -- {1}, {T}, Remove a page counter from Tome of Legends: Draw a card. -mana={2} -type=Artifact -[/card] -[card] -name=Tome of the Guildpact -auto=@movedTo(*[multicolor]|mystack):draw:1 -auto={T}:Add{W} -auto={T}:Add{U} -auto={T}:Add{B} -auto={T}:Add{R} -auto={T}:Add{G} -text=Whenever you cast a multicolored spell, draw a card. -- {T}: Add one mana of any color. -mana={5} -type=Artifact -[/card] -[card] name=Tome Raider abilities=flying auto=draw:1 @@ -58896,6 +61504,28 @@ power=2 toughness=2 [/card] [card] +name=Tome of Legends +auto=counter(0/0,1,Page) all(this) +auto=@movedto(*[iscommander]|myBattlefield):conunter(0/0,1,Page) all(this) +auto=@combat(attacking) source(creature[iscommander]|myBattlefield):conunter(0/0,1,Page) all(this) +auto={1}{T}{C(0/0,-1,Page)}:Draw:1 controller +text=Tome of Legends enters the battlefield with a page counter on it. -- Whenever your commander enters the battlefield or attacks, put a page counter on Tome of Legends. -- {1}, {T}, Remove a page counter from Tome of Legends: Draw a card. +mana={2} +type=Artifact +[/card] +[card] +name=Tome of the Guildpact +auto=@movedTo(*[multicolor]|mystack):draw:1 +auto={T}:Add{W} +auto={T}:Add{U} +auto={T}:Add{B} +auto={T}:Add{R} +auto={T}:Add{G} +text=Whenever you cast a multicolored spell, draw a card. -- {T}: Add one mana of any color. +mana={5} +type=Artifact +[/card] +[card] name=Tomebound Lich abilities=deathtouch,lifelink auto=draw:1 && transforms((,newability[target(*|myhand) reject])) @@ -59041,6 +61671,18 @@ type=Artifact subttype=Equipment [/card] [card] +name=Tormod's Cryptkeeper +abilities=vigilance +auto={T}{S}:name(Exile from opponent's graveyard) all(*|opponentgraveyard) moveto(exile) +auto={T}{S}:name(Exile from your graveyard) all(*|mygraveyard) moveto(exile) +text=Vigilance -- {T}, Sacrifice Tormod's Cryptkeeper: Exile all cards from target player's graveyard. +mana={3} +type=Artifact Creature +subtype=Golem +power=3 +toughness=2 +[/card] +[card] name=Tormod, the Desecrator abilities=partner auto=@movedto(*|mybattlefield) from(mygraveyard):token(Zombie,Creature Zombie,2/2,black) and!( tap(noevent) )! @@ -59057,14 +61699,6 @@ power=4 toughness=2 [/card] [card] -name=Torrent of Lava -auto=all(creature[-flying]|battlefield) transforms((,newability[{T}:prevent:1])) ueot -auto=damage:X all(creature[-flying]) -text=Torrent of Lava deals X damage to each creature without flying. -- As long as Torrent of Lava is on the stack, each creature has "{T}: Prevent the next 1 damage that would be dealt to this creature by Torrent of Lava this turn." -mana={X}{R}{R} -type=Sorcery -[/card] -[card] name=Torrent Sculptor other={1}{R} name(Flamethrower Sonata) otherrestriction=can play sorcery,compare(isflipped)~equalto~1 @@ -59101,6 +61735,14 @@ power=2 toughness=2 [/card] [card] +name=Torrent of Lava +auto=all(creature[-flying]|battlefield) transforms((,newability[{T}:prevent:1])) ueot +auto=damage:X all(creature[-flying]) +text=Torrent of Lava deals X damage to each creature without flying. -- As long as Torrent of Lava is on the stack, each creature has "{T}: Prevent the next 1 damage that would be dealt to this creature by Torrent of Lava this turn." +mana={X}{R}{R} +type=Sorcery +[/card] +[card] name=Toski, Bearer of Secrets abilities=nofizzle,indestructible,mustattack auto=@combatdamaged(player) from(creature|myBattlefield):draw:1 controller @@ -59122,6 +61764,26 @@ mana={B} type=Instant [/card] [card] +name=Tourach's Canticle +auto=name(Discard a card) target(*|opponenthand) transforms((,newability[reject],newability[discard:1 controller])) forever +text=Target opponent reveals their hand. You choose a card from it. That player discards that card, then discards a card at random. +mana={3}{B} +type=Sorcery +[/card] +[card] +name=Tourach, Dread Cantor +abilities=protection from white +kicker={B}{B} +auto=if paid(kicker) then discard:2 opponent +auto=@discarded(*|opponenthand):counter(1/1) +text=Kicker {B}{B} (You may pay an additional {B}{B} as you cast this spell.) -- Protection from white -- Whenever an opponent discards a card, put a +1/+1 counter on Tourach, Dread Cantor. -- When Tourach enters the battlefield, if it was kicked, target opponent discards two cards at random. +mana={1}{B} +type=Legendary Creature +subtype=Human Cleric +power=2 +toughness=1 +[/card] +[card] name=Tournament Grounds auto={T}:add{C} auto=this(variable{type:*[knight;equipment]:myrestrictedcastingzone}>0) {T}:add{R} @@ -59210,6 +61872,15 @@ mana={3}{W}{W} type=Sorcery [/card] [card] +name=Tragic Fall +target=creature +auto=if type(*|myHand)~morethan~0 then -3/-3 ueot +auto=if type(*|myHand)~equalto~0 then -13/-13 ueot +text=Target creature gets -3/-3 until end of turn. -- Hellbent — That creature gets -13/-13 until end of turn instead if you have no cards in hand. +mana={1}{B} +type=Instant +[/card] +[card] name=Tragic Lesson auto=draw:2 auto=choice target(land|mybattlefield) moveto(myhand) @@ -60335,6 +63006,17 @@ mana={1}{B} type=Instant [/card] [card] +name=Unbounded Potential +other={3}{W} name(Entwine) +auto=ifnot paid(alternative) then if type(creature|battlefield)~morethan~0 then choice name(Put 1/1 counter) name(Put 1/1 counter) name(Put 1/1 counter) target(creature|battlefield) counter(1/1) +auto=ifnot paid(alternative) then choice name(Proliferate) name(Proliferate) notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate +auto=if paid(alternative) then if type(creature|battlefield)~morethan~0 then name(Put 1/1 counter) name(Put 1/1 counter) name(Put 1/1 counter) target(creature|battlefield) counter(1/1) +auto=if paid(alternative) then ability$!name(Proliferate) name(Proliferate) notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate!$ controller +text=Choose one — -- • Put a +1/+1 counter on each of up to two target creatures. -- • Proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) -- Entwine {3}{W} (Choose both if you pay the entwine cost.) +mana={1}{W} +type=Instant +[/card] +[card] name=Unbreakable Bond target=creature|myGraveyard auto=moveTo(myBattlefield) @@ -60522,6 +63204,16 @@ mana={1}{R} type=Sorcery [/card] [card] +name=Underworld Hermit +auto=token(Squirrel,Creature Squirrel,1/1,green)*type:manab:mybattlefield +text=When Underworld Hermit enters the battlefield, create a number of 1/1 green Squirrel creature tokens equal to your devotion to black. (Each {B} in the mana costs of permanents you control counts toward your devotion to black.) +mana={4}{B}{B} +type=Creature +subtype=Human Peasant +power=3 +toughness=3 +[/card] +[card] name=Underworld Rage-Hound abilities=mustattack retrace={3}{R}{E(other *|myGraveyard)}{E(other *|myGraveyard)}{E(other *|myGraveyard)} name(Escape) @@ -60611,6 +63303,14 @@ mana={4}{R} type=Instant [/card] [card] +name=Unholy Heat +auto=ifnot delirium then name(Deals 2 damage) damage:2 target(creature,planeswalker) +auto=if delirium then name(Deals 6 damage) damage:6 target(creature,planeswalker) +text=Unholy Heat deals 2 damage to target creature or planeswalker. -- Delirium — Unholy Heat deals 6 damage instead if there are four or more card types among cards in your graveyard. +mana={R} +type=Instant +[/card] +[card] name=Unholy Indenture target=creature auto=@movedTo(mytgt|graveyard) from(battlefield):transforms((,newability[moveTo(mybattlefield)],newability[counter(1/1)])) @@ -60685,6 +63385,13 @@ power=0 toughness=4 [/card] [card] +name=Unmarked Grave +auto=name(Search library) target(*[-legendary]|myLibrary) moveto(myGraveyard) and!( shuffle )! +text=Search your library for a nonlegendary card, put that card into your graveyard, then shuffle. +mana={1}{B} +type=Sorcery +[/card] +[card] name=Unmoored Ego auto=chooseanameopp name(Search that cards) target(*[chosenname]|opponentgraveyard,opponentlibrary,opponenthand) moveto(exile) and!( draw:1 opponent and!( shuffle opponent )! )! chooseend text=Choose a card name. Search target opponent's graveyard, hand, and library for up to four cards with that name and exile them. That player shuffles their library, then draws a card for each card exiled from their hand this way. @@ -60801,6 +63508,17 @@ mana={2}{U} type=Instant [/card] [card] +name=Urban Daggertooth +abilities=vigilance +auto=@damaged(this):name(Proliferate) notatarget(*[artifact;creature;enchantment;land;planeswalker;player]) proliferate +text=Vigilance -- Enrage — Whenever Urban Daggertooth is dealt damage, proliferate. (Choose any number of permanents and/or players, then give each another counter of each kind already there.) +mana={2}{G}{G} +type=Creature +subtype=Dinosaur +power=4 +toughness=3 +[/card] +[card] name=Urban Utopia target=land auto=draw:1 controller @@ -60906,6 +63624,19 @@ mana={4}{W} type=Legendary Sorcery [/card] [card] +name=Urza's Saga +auto=counter(0/0,1,Lore) +auto=@each my firstmain:counter(0/0,1,Lore) +auto=this(counter{0/0.1.Lore}=) transforms((,newability[{T}:add{C}])) oneshot +auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.2.Lore}=) transforms((,newability[{2}{T}:token(Construct)])) oneshot +auto=@counteradded(0/0,1,Lore) from(this):this(counter{0/0.3.Lore}) name(Search artifact) target(artifact[manacost<=1]|mylibrary) moveto(mybattlefield) and!( shuffle )! +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 — Urza's Saga gains "{T}: Add {C}." -- II — Urza's Saga gains "{2}, {T}: Create a 0/0 colorless Construct artifact creature token with 'This creature gets +1/+1 for each artifact you control.'" -- III — Search your library for an artifact card with mana cost {0} or {1}, put it onto the battlefield, then shuffle. +mana={0} +type=Enchantment Land +subtype=Urza’s Saga +[/card] +[card] name=Urza's Science Fair Project auto={2}:all(this) rolladie 6 winability counter(0/0,1,UrzaEffect) winabilityend loseability counter(0/0,1,UrzaEffect) loseabilityend rollend auto=@dierolled(this) result(1) from(controller):this(counter{0/0.1.UrzaEffect}=1) name(Gets -2/-2) name(Gets -2/-2) all(this) transforms((,newability[-2/-2],newability[counter(0/0.-1.UrzaEffect)])) ueot @@ -61450,6 +64181,16 @@ text=Vault of Champions enters the battlefield tapped unless you have two or mor type=Land [/card] [card] +name=Vectis Gloves +auto={2}:equip +auto=teach(creature) 2/0 +auto=teach(creature) transforms((,newability[aslongas(land[artifact]|opponentBattlefield) unblockable >0])) +text=Equipped creature gets +2/+0 and has artifact landwalk. (It can't be blocked as long as defending player controls an artifact land.) -- Equip {2} +mana={2} +type=Artifact +subtype=Equipment +[/card] +[card] name=Vedalken Engineer auto=this(variable{type:artifact:myrestrictedcastingzone}>0) {T}:add{W}{W} auto=this(variable{type:artifact:myBattlefield}>0) {T}:add{W}{W} @@ -61479,6 +64220,17 @@ power=3 toughness=4 [/card] [card] +name=Vedalken Infiltrator +abilities=unblockable +auto=aslongas(artifact|myBattlefield) 1/0 >2 +text=Vedalken Infiltrator can't be blocked. -- Metalcraft — Vedalken Infiltrator gets +1/+0 as long as you control three or more artifacts. +mana={1}{U} +type=Creature +subtype=Vedalken Rogue +power=1 +toughness=3 +[/card] +[card] name=Vedalken Mesmerist auto=@combat(attacking) source(this):target(creature|opponentBattlefield)) -2/-0 ueot text=Whenever Vedalken Mesmerist attacks, target creature an opponent controls gets -2/-0 until end of turn. @@ -61804,6 +64556,18 @@ power=0 toughness=0 [/card] [card] +name=Verdant Command +#Counter Loyalty ability not supported ATM. +auto=if type(*|graveyard)~morethan~0 then choice name(Create squirrels and exile card) name(Create squirrels and exile card) target(*|graveyard) moveto(exile) && token(Squirrel,Creature Squirrel,1/1,green)*2 and!( tap(noevent) )! +auto=choice name(Create squirrels and you gain life) life:3 controller && token(Squirrel,Creature Squirrel,1/1,green)*2 and!( tap(noevent) )! +auto=choice name(Create squirrels and opponent gains life) life:3 opponent && token(Squirrel,Creature Squirrel,1/1,green)*2 and!( tap(noevent) )! +auto=if type(*|graveyard)~morethan~0 then choice name(Exile card and you gain life) name(Exile card and you gain life) target(*|graveyard) moveto(exile) && life:3 controller +auto=if type(*|graveyard)~morethan~0 then choice name(Exile card and opponent gains life) name(Exile card and opponent gains life) target(*|graveyard) moveto(exile) && life:3 opponent +text=Choose two — -- • Target player creates two tapped 1/1 green Squirrel creature tokens. -- • Counter target loyalty ability of a planeswalker. -- • Exile target card from a graveyard. -- • Target player gains 3 life. +mana={1}{G} +type=Instant +[/card] +[card] name=Verdant Confluence aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(<3>land[basic]|myLibrary) auto=choice name(Choose 1, 1, 1) target(<3>*[creature]) counter(1/1,2) @@ -61896,6 +64660,16 @@ power=4 toughness=4 [/card] [card] +name=Vermin Gorger +auto={T}{S(other creature|myBattlefield)}:life:-2 opponent && life:2 controller +text={T}, Sacrifice another creature: Each opponent loses 2 life and you gain 2 life. +mana={1}{B} +type=Creature +subtype=Vampire +power=2 +toughness=2 +[/card] +[card] name=Vernadi Shieldmate abilities=vigilance text=Vigilance @@ -62004,6 +64778,16 @@ power=2 toughness=3 [/card] [card] +name=Viashino Lashclaw +auto={T}{D(*|myHand)}:all(creature|myBattlefield) transforms((,newability[haste])) ueot +text={T}, Discard a card: Creatures you control gain haste until end of turn. +mana={1}{R} +type=Creature +subtype=Viashino Warrior +power=2 +toughness=2 +[/card] +[card] name=Viashino Pyromancer auto=damage:2 target(player) text=When Viashino Pyromancer enters the battlefield, it deals 2 damage to target player or planeswalker. @@ -62144,6 +64928,17 @@ power=6 toughness=4 [/card] [card] +name=Vile Entomber +abilities=deathtouch +auto=name(Search library) target(*|mylibrary) moveto(myGraveyard) and!( shuffle )! +text=Deathtouch -- When Vile Entomber enters the battlefield, search your library for a card, put that card into your graveyard, then shuffle. +mana={2}{B}{B} +type=Creature +subtype=Zombie Warlock +power=2 +toughness=2 +[/card] +[card] name=Vile Manifestation abilities=cycling autohand=__CYCLING__({2}) @@ -62540,6 +65335,13 @@ power=4 toughness=5 [/card] [card] +name=Void Mirror +auto=@movedto(*|stack):all(trigger) transforms((,newability[if compare(converge)~equalto~0 then target(*[share!name!]|stack) fizzle])) forever +text=Whenever a player casts a spell, if no colored mana was spent to cast it, counter that spell. +mana={2} +type=Artifact +[/card] +[card] name=Voidslime target=*|stack auto=fizzle @@ -63456,6 +66258,19 @@ power=2 toughness=2 [/card] [card] +name=Wavesifter +abilities=flying +other={G}{U} name(Evoke) +auto=if paid(alternative) then sacrifice +auto=token(Clue,Artifact Clue,0/0)*2 and!( transforms((,newability[{S}{2}:draw:1])) forever )! +text=Flying -- When Wavesifter enters the battlefield, investigate twice. (To investigate, create a colorless Clue artifact token with "{2}, Sacrifice this artifact: Draw a card.") -- Evoke {G}{U} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.) +mana={3}{G}{U} +type=Creature +subtype=Elemental +power=3 +toughness=2 +[/card] +[card] name=Wax // Wane other={W} name(Wane) auto=ifnot paid(alternative) then target(creature) 2/2 ueot @@ -64547,6 +67362,17 @@ power=3 toughness=3 [/card] [card] +name=World-Weary +target=creature +auto=teach(creature) -4/-4 +aicode=activate target(land[basic]|mylibrary) moveto(myhand) +autohand={1}{B}{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 +text=Enchant creature -- Enchanted creature gets -4/-4. -- Basic landcycling {1}{B} ({1}{B}, Discard this card: Search your library for a basic land card, reveal it, put it into your hand, then shuffle.) +mana={3}{B}{B} +type=Enchantment +subtype=Aura +[/card] +[card] name=Worldsoul Colossus auto=counter(1/1,X) other={convoke} name(Convoke) @@ -64601,6 +67427,18 @@ power=6 toughness=6 [/card] [card] +name=Wren's Run Hydra +abilities=reach +auto=counter(1/1,x) +autohand={X}{G}{G}{discard}:name(Reinforce) counter(1/1,x) target(creature) +text=Reach -- Wren's Run Hydra enters the battlefield with X +1/+1 counters on it. -- Reinforce X — {X}{G}{G} ({X}{G}{G}, Discard this card: Put X +1/+1 counters on target creature.) +mana={X}{G} +type=Creature +subtype=Hydra +power=0 +toughness=0 +[/card] +[card] name=Wren's Run Vanquisher otherrestriction=type(*[elf]|myhand)~lessthan~2 other={4}{G} @@ -64795,6 +67633,12 @@ power=2 toughness=2 [/card] [card] +name=Yavimaya, Cradle of Growth +auto=lord(land) transforms((forest)) +text=Each land is a Forest in addition to its other land types. +type=Legendary Land +[/card] +[card] name=Yawgmoth's Vile Offering auto=name(Reanimate and may destroy) target(creature,planeswalker|graveyard) moveTo(myBattlefield) and!(may target(creature,planeswalker) destroy)! auto=name(Just destroy) destroy target(creature,planeswalker) @@ -64884,6 +67728,16 @@ power=5 toughness=5 [/card] [card] +name=Young Necromancer +auto=if type(creature|myGraveyard)~morethan~0 then if type(*|myGraveyard)~morethan~2 then may name(Exile 2 cards) target(*|myGraveyard) moveto(myexile) and!( transforms((,newability[name(Exile second card) target(*|myGraveyard) moveto(myexile) and!( transforms((,newability[[name(Return card on battlefield) target(creature|myGraveyard) moveto(myBattlefield)])) oneshot )!])) oneshot )! +text=When Young Necromancer enters the battlefield, you may exile two cards from your graveyard. When you do, return target creature card from your graveyard to the battlefield. +mana={4}{B} +type=Creature +subtype=Human Warlock +power=2 +toughness=3 +[/card] +[card] name=Youthful Valkyrie abilities=flying auto=@movedto(other angel|mybattlefield):counter(1/1) @@ -64919,6 +67773,20 @@ power=4 toughness=4 [/card] [card] +name=Zabaz, the Glimmerwasp +abilities=modular +modular=3 +auto={R}:name(Destroy artifact) target(artifact|myBattlefield) +auto={W}:name(Gains flying) transforms((,newability[flying])) ueot +auto=@counteradded(1/1) from(*[modular]|myBattlefield) except(Zabaz, the Glimmerwasp):may name(Trigger modular) counter(1/1) target(creature[counter{1/1.1}]|myBattlefield) +text=Modular 1 -- If a modular triggered ability would put one or more +1/+1 counters on a creature you control, that many plus one +1/+1 counters are put on it instead. -- {R}: Destroy target artifact you control. -- {W}: Zabaz, the Glimmerwasp gains flying until end of turn. +mana={1} +type=Legendary Artifact Creature +subtype=Insect +power=0 +toughness=0 +[/card] +[card] name=Zacama, Primal Calamity abilities=vigilance, reach, trample auto=if casted(this) then untap all(land|mybattlefield) diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 4f22a01ca..00af1fdda 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -1,6 +1,6 @@ #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 programatically so the other comments are removed except for AUTO_DEFINE - Vitty85 25-04-2021 +#I sorted this programatically so the other comments are removed except for AUTO_DEFINE - Vitty85 16-06-2021 [card] name=Abandon Reason target=creature @@ -40161,7 +40161,7 @@ subtype=Aura [/card] [card] name=Field of Souls -auto=@movedTo(creature[-token]|mygraveyard) from(battlefield):token(Spirit,Creature Spirit, 1/1,flying white) +auto=@movedTo(creature[-token]|mygraveyard) from(battlefield):token(Spirit,Creature Spirit,1/1,flying,white) text=Whenever a nontoken creature is put into your graveyard from the battlefield, put a 1/1 white Spirit creature token with flying onto the battlefield. mana={2}{W}{W} type=Enchantment @@ -65219,7 +65219,7 @@ toughness=4 [/card] [card] name=Lair Delve -aicode=activate target(<2>*[zpos<=2]|mylibrary) name(revealed card) moveto(myhand) name(revealed card) and!(if cantargetcard(*[-creature;-land]|*) then bottomoflibrary))! +aicode=activate target(<2>*[zpos<=2]|mylibrary) name(revealed card) moveto(myhand) name(revealed card) and!(if cantargetcard(*[-creature;-land]|*) then bottomoflibrary)! auto=reveal:2 optionone name(Get creature and land) target(<2>*[creature,land]|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) all(*|reveal) bottomoflibrary optiontwoend revealend text=Reveal the top two cards of your library. Put all creature and land cards revealed this way into your hand and the rest on the bottom of your library in any order. mana={2}{G} @@ -117784,7 +117784,7 @@ toughness=7 [/card] [card] name=Tarmogoyf -anyzone=gravecardtypes/gravecardtypesplus1plusend cdaactive +anyzone=allgravecardtypes/allgravecardtypesplus1plusend cdaactive text=Tarmogoyf's power is equal to the number of card types among cards in all graveyards and its toughness is equal to that number plus 1. (The card types are artifact, creature, enchantment, instant, land, planeswalker, sorcery, and tribal.) mana={1}{G} type=Creature diff --git a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt index 9e53c9c2c..ec5e07357 100644 --- a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt +++ b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt @@ -1,7 +1,7 @@ grade=borderline #Planeswalkers Primitives Pack for Wagic the Homebrew. #Please keep these card alphabetized, and try to have the "name=" line at the top of each card -#We sorted this in alphabetical order - Luruz & Vitty85 25-04-2021 +#We sorted this in alphabetical order - Luruz & Vitty85 16-06-2021 [card] name=Abian, Luvion Usurper auto=counter(0/0,5,loyalty) @@ -601,6 +601,18 @@ type=Legendary Planeswalker subtype=Dack [/card] [card] +name=Dakkon, Shadow Slayer +auto=counter(0/0,type:land:myBattlefield,loyalty) +aicode=activate transforms((,newability[surveil],newability[all(*[zpos<=psurveiloffsetplus1plusend]|mylibrary) transforms((,newability[if compare(genrand2)~equalto~1 then moveto(mygraveyard)])) oneshot])) oneshot +auto={C(0/0,1,Loyalty)}:name(+1: Surveil 1) reveal:psurveiloffsetplus1plusend optionone name(put in graveyard) target(*|reveal) moveto(ownergraveyard) optiononeend optiontwo name(put in library) target(*|reveal) moveto(ownerlibrary) optiontwoend afterrevealed surveil afterrevealedend revealend +auto={C(0/0,-3,Loyalty)}:name(-3: Exile creature) target(creature|battlefield) moveto(exile) +auto={C(0/0,-6,Loyalty)}:name(-6: Put artifact in play) target(artifact|myHand,myGraveyard) moveto(myBattlefield) +text=Dakkon, Shadow Slayer enters the battlefield with a number of loyalty counters on him equal to the number of lands you control. -- +1: Surveil 2. -- -3: Exile target creature. -- -6: You may put an artifact card from your hand or graveyard onto the battlefield. +mana={W}{U}{B} +type=Legendary Planeswalker +subtype=Dakkon +[/card] +[card] name=Daretti, Ingenious Iconoclast auto=counter(0/0,3,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Create a 1/1 colorless Construct) token(Construct,Artifact Creature Construct,1/1,defender) @@ -909,6 +921,19 @@ type=Legendary Planeswalker subtype=Garruk [/card] [card] +name=Geyadrone Dihada +auto=counter(0/0,4,loyalty) +auto=protection from(*[-instant;-sorcery;counter{0/0.1.corruption}]) +auto={C(0/0,1,Loyalty)}:name(+1: Gain 2 life) life:2 controller && life:-2 opponent +auto={C(0/0,1,Loyalty)}:name(+1: Gain 2 life and put counter) target(*[creature;planeswalker]|battlefield) counter(0/0,1,corruption) && life:2 controller && life:-2 opponent +auto={C(0/0,-3,Loyalty)}:name(-3: Gain control of creature or planeswalker) target(*[creature;planeswalker]|battlefield) moveto(mybattlefield) and!(transforms((,newability[phaseaction[endofturn once sourceinplay] moveTo(previousbattlefield)],newability[counter(0/0.1.corruption)],newability[untap],haste)) ueot)! +auto={C(0/0,-7,Loyalty)}:name(-7: Gain control of all corrupted) all(*[counter{0/0.1.corruption}]|battlefield) moveto(mybattlefield) +text=Protection from permanents with corruption counters on them -- +1: Each opponent loses 2 life and you gain 2 life. Put a corruption counter on up to one other target creature or planeswalker. -- −3: Gain control of target creature or planeswalker until end of turn. Untap it and put a corruption counter on it. It gains haste until end of turn. -- −7: Gain control of each permanent with a corruption counter on it. +mana={1}{U}{B}{R} +type=Legendary Planeswalker +subtype=Dihada +[/card] +[card] name=Gideon, Ally of Zendikar auto=counter(0/0,4,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Transforms Gideon 5/5 indestructible) transforms((Human Soldier Ally Creature Planeswalker,setpower=5,settoughness=5,indestructible)) ueot && transforms((,newability[preventAllDamage to(this)])) ueot @@ -999,10 +1024,27 @@ subtype=Gideon color=white [/card] [card] +name=Grist, the Hunger Tide +auto=counter(0/0,3,loyalty) +auto=transforms((removealltypes,newability[becomes(Legendary Planeswalker Grist)])) forever +auto=@counteradded(0/0,1,GristEffect) from(insect|mygraveyard):name(Repeat process) name(Repeat process) all(this) counter(0/0,1,loyalty) && all(insect[counter{0/0.1.GristEffect}]|mygraveyard) removeallcounters(0/0,1,GristEffect) && token(Insect,Creature Insect,1/1,black,green) and!( transforms((,newability[all(*[zpos=1]|mylibrary) moveto(mygraveyard) and!( if cantargetcard(*[insect]|*) then counter(0/0.1.GristEffect) )!])) oneshot )! +auto={C(0/0,1,Loyalty)}:name(+1: Create 1/1 insect) token(Insect,Creature Insect,1/1,black,green) and!( transforms((,newability[all(*[zpos=1]|mylibrary) moveto(mygraveyard) and!( if cantargetcard(*[insect]|*) then counter(0/0.1.GristEffect) )!])) oneshot )! +auto={C(0/0,-2,Loyalty)}:name(-2: Sacrifice and destroy) target(creature|mybattlefield) sacrifice and!( transforms((,newability[name(Destroy creature or planeswalker) target(*[creature;planeswalker]|battlefield) destroy])) oneshot )! +auto={C(0/0,-2,Loyalty)}:name(-2: Don't sacrifice any creature) donothing +auto={C(0/0,-5,Loyalty)}:name(-5: Opponent lose life) life:-type:creature:mygraveyard opponent +text=As long as Grist, the Hunger Tide isn't on the battlefield, it's a 1/1 Insect creature in addition to its other types. -- +1: Create a 1/1 black and green Insect creature token, then mill a card. If an Insect card was milled this way, put a loyalty counter on Grist and repeat this process. -- −2: You may sacrifice a creature. When you do, destroy target creature or planeswalker. -- −5: Each opponent loses life equal to the number of creature cards in your graveyard. +mana={1}{B}{G} +type=Legendary Planeswalker Creature +subtype=Grist Insect +power=1 +toughness=1 +[/card] +[card] name=Huatli, Dinosaur Knight auto=counter(0/0,4,loyalty) -auto={C(0/0,2,Loyalty)}:name(+2: Put two +1/+1 counters on a Dinosaur) target(dinosaur|mybattlefield) counter(1/1,2) -auto={C(0/0,-3,Loyalty)}:name(-3: Dinosaur deals damage) target(dinosaur|mybattlefield) transforms((,newability[dynamicability target(creature|opponentbattlefield) +auto={C(0/0,2,Loyalty)}:name(+2: Don't put counters) donothing +auto={C(0/0,2,Loyalty)}:name(+2: Put two +1/+1 counters on a Dinosaur) target(dinosaur|mybattlefield) counter(1/1,2) +auto={C(0/0,-3,Loyalty)}:name(-3: Dinosaur deals damage) target(dinosaur|mybattlefield) transforms((,newability[dynamicability target(creature|opponentbattlefield)])) oneshot auto={C(0/0,-7,Loyalty)}:name(-7: Dinosaurs gets +4/+4) all(dinosaur|mybattlefield) 4/4 ueot text=+2: Put two +1/+1 counters on up to one target Dinosaur you control. -- -3: Target Dinosaur you control deals damage equal to its power to target creature you don't control. -- -7: Dinosaurs you control get +4/+4 until end of turn. mana={4}{R}{W} diff --git a/projects/mtg/bin/Res/sets/primitives/unsupported.txt b/projects/mtg/bin/Res/sets/primitives/unsupported.txt index 12bf6a763..4a7938311 100644 --- a/projects/mtg/bin/Res/sets/primitives/unsupported.txt +++ b/projects/mtg/bin/Res/sets/primitives/unsupported.txt @@ -2,7 +2,7 @@ grade=unsupported #The cards in this file are not implemented/incomplete yet. #Updated Card lists not in primitives (Borderline, Crappy, Unsupported and Missing Cards up to Aether Revolt) as of 3/14/2017 #Please keep these card alphabetized, and try to have the "name=" line at the top of each card -#I sorted this programatically - Vitty85 25-04-2021 +#I sorted this programatically - Vitty85 16-06-2021 [card] name="Ach! Hans, Run!" text=At the beginning of your upkeep, you may say "Ach Hans, run It's the . . ." and name a creature card. If you do, search your library for the named card, put it into play, then shuffle your library. That creature has haste. Remove it from the game at end of turn. @@ -1795,6 +1795,12 @@ mana={2}{U} type=Enchantment [/card] [card] +name=Chef's Kiss +text=Gain control of target spell that targets only a single permanent or player. Copy it, then reselect the targets at random for the spell and the copy. The new targets can't be you or a permanent you control. +mana={1}{R}{R} +type=Instant +[/card] +[card] name=Chipper Chopper text=Flying -- When Chipper Chopper enters the battlefield, you may sacrifice another artifact. If you do, put two +1/+1 counters on Chipper Chopper and it assembles a Contraption. (Put the top card of your Contraption deck face up onto one of your sprockets.) mana={3}{U} @@ -5202,12 +5208,6 @@ text=Hidden agenda (Start the game with this conspiracy face down in the command type=Conspiracy [/card] [card] -name=Hive Mind -text=Whenever a player casts an instant or sorcery spell, each other player copies that spell. Each of those players may choose new targets for his or her copy. -mana={5}{U} -type=Enchantment -[/card] -[card] name=Hixus, Prison Warden abilities=flash text=Flash (You may cast this spell any time you could cast an instant.) -- Whenever a creature deals combat damage to you, if Hixus, Prison Warden entered the battlefield this turn, exile that creature until Hixus leaves the battlefield. (That creature returns under its owner's control.) @@ -8596,13 +8596,6 @@ power=3 toughness=4 [/card] [card] -name=Petrified Plating -text=Enchant creature -- Enchanted creature gets +2/+2. -- Suspend 2—{G} (Rather than cast this card from your hand, you may pay {G} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) -mana={2}{G} -type=Enchantment -subtype=Aura -[/card] -[card] name=Phantasmagorian text=When you cast Phantasmagorian, any player may discard three cards. If a player does, counter Phantasmagorian. -- Discard three cards: Return Phantasmagorian from your graveyard to your hand. mana={5}{B}{B} @@ -9958,15 +9951,6 @@ mana={1}{W} type=Instant [/card] [card] -name=Sanctum Prelate -text=As Sanctum Prelate enters the battlefield, choose a number. -- Noncreature spells with converted mana cost equal to the chosen number can't be cast. -mana={1}{W}{W} -type=Creature -subtype=Human Cleric -power=2 -toughness=2 -[/card] -[card] name=Sanctum of Serra text=When you planeswalk away from Sanctum of Serra, destroy all nonland permanents. -- Whenever you roll {C}, you may have your life total become 20. type=Plane @@ -13586,6 +13570,15 @@ power=1 toughness=1 [/card] [card] +name=Yusri, Fortune's Flame +text=Flying -- Whenever Yusri, Fortune's Flame attacks, choose a number between 1 and 5. Flip that many coins. For each flip you win, draw a card. For each flip you lose, Yusri deals 2 damage to you. If you won five flips this way, you may cast spells from your hand this turn without paying their mana costs. +mana={1}{U}{R} +type=Legendary Creature +subtype=Efreet +power=2 +toughness=3 +[/card] +[card] name=Zada, Hedron Grinder text=Whenever you cast an instant or sorcery spell that targets only Zada, Hedron Grinder, copy that spell for each other creature you control that the spell could target. Each copy targets a different one of those creatures. mana={3}{R} diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index d5f3984db..7adf42692 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -780,7 +780,11 @@ public: if (!e) return 0; if (limitOnceATurn && triggeredTurn == game->turn) return 0; - if (flipresult > -1 && flipresult != e->card->lastFlipResult) + if ((flipresult == 0 || flipresult == 1) && flipresult != e->card->lastFlipResult) + return 0; + if (flipresult == 2 && e->card->coinSide != e->card->lastFlipResult) + return 0; + if (flipresult == 3 && e->card->coinSide == e->card->lastFlipResult) return 0; if (playerName != "" && playerName != e->playerName) return 0; @@ -1079,16 +1083,21 @@ public: Counter * counter; int type; bool duplicate; + bool limitOnceATurn; + int triggeredTurn; MTGCardInstance * counterException; //added exception to avid a counter loop (eg. Doubling Season) - TrCounter(GameObserver* observer, int id, MTGCardInstance * source, Counter * counter, TargetChooser * tc, int type = 0, bool once = false, bool duplicate = false, MTGCardInstance * counterException = NULL) : - Trigger(observer, id, source, once, tc), counter(counter), type(type), duplicate(duplicate), counterException(counterException) + TrCounter(GameObserver* observer, int id, MTGCardInstance * source, Counter * counter, TargetChooser * tc, int type = 0, bool once = false, bool duplicate = false, bool limitOnceATurn = false, MTGCardInstance * counterException = NULL) : + Trigger(observer, id, source, once, tc), counter(counter), type(type), duplicate(duplicate), limitOnceATurn(limitOnceATurn), counterException(counterException) { + triggeredTurn = -1; } int triggerOnEventImpl(WEvent * event) { WEventCounters * e = dynamic_cast (event); if (!e) return 0; + if (limitOnceATurn && triggeredTurn == game->turn) + return 0; if (type == 0 && !e->removed) return 0; if (type == 1 && !e->added) return 0; if (counterException && e->source && !strcmp(counterException->data->name.c_str(), e->source->data->name.c_str())) return 0; //If the source of counter gain/loss it's the exception card it doesn't have effect (loop avoidance); @@ -1100,6 +1109,7 @@ public: else e->targetCard->counters->removeCounter(e->name.c_str(),e->power,e->toughness,true,true,e->source); } + triggeredTurn = game->turn; return 1; } @@ -3275,8 +3285,10 @@ public: andAbilityClone->addToGame(); } } - WEvent * e = NEW WEventTokenCreated(myToken); - spell->getObserver()->receiveEvent(e); // triggers the @tokencreated event for any other listener. + if(sabilities.find("notrigger") == string::npos){ // check if the @tokencreated trigger has to be activated or not + WEvent * e = NEW WEventTokenCreated(myToken); + spell->getObserver()->receiveEvent(e); // triggers the @tokencreated event for any other listener. + } delete spell; } return 1; @@ -6346,8 +6358,9 @@ public: bool asNormalMadness; bool alternative; int kicked; + int costx; bool flipped; - AACastCard(GameObserver* observer, int _id, MTGCardInstance * _source, MTGCardInstance * _target,bool restricted,bool copied,bool _asNormal,string nameCard,string abilityName,bool _noEvent, bool putinplay,bool asNormalMadness = false,bool alternative = false,int kicked = 0,bool flipped = false); + AACastCard(GameObserver* observer, int _id, MTGCardInstance * _source, MTGCardInstance * _target,bool restricted,bool copied,bool _asNormal,string nameCard,string abilityName,bool _noEvent, bool putinplay,bool asNormalMadness = false,bool alternative = false,int kicked = 0,int costx = 0,bool flipped = false); int testDestroy(){return 0;}; void Update(float dt); diff --git a/projects/mtg/include/CardDescriptor.h b/projects/mtg/include/CardDescriptor.h index 05765306b..09cc605d4 100644 --- a/projects/mtg/include/CardDescriptor.h +++ b/projects/mtg/include/CardDescriptor.h @@ -79,6 +79,7 @@ class CardDescriptor: public MTGCardInstance int CDcontrollerDamaged; int CDdamager; int CDgeared; + int CDdiscarded; int CDattached; int CDblocked; int CDcanProduceC; diff --git a/projects/mtg/include/WParsedInt.h b/projects/mtg/include/WParsedInt.h index f5f7d3176..f0265781e 100644 --- a/projects/mtg/include/WParsedInt.h +++ b/projects/mtg/include/WParsedInt.h @@ -2,6 +2,7 @@ class WParsedInt { private: void init(string s, Spell * spell, MTGCardInstance * card); + void extendedParse(string type, Spell * spell, MTGCardInstance * card); public: int intValue; diff --git a/projects/mtg/src/ActionStack.cpp b/projects/mtg/src/ActionStack.cpp index 2352f70fc..144c97517 100644 --- a/projects/mtg/src/ActionStack.cpp +++ b/projects/mtg/src/ActionStack.cpp @@ -488,7 +488,7 @@ int Spell::resolve() if(observer->getResourceManager()) observer->getResourceManager()->PlaySample(source->getSample()); } - if(this->cost) + if(this->cost && !source->getManaCost()->getManaUsedToCast()) { source->getManaCost()->setManaUsedToCast(NEW ManaCost(this->cost)); } diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index 43f755e21..ef69fe730 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -9234,8 +9234,8 @@ AEquip * AEquip::clone() const } // casting a card for free, or casting a copy of a card. -AACastCard::AACastCard(GameObserver* observer, int _id, MTGCardInstance * _source, MTGCardInstance * _target,bool _restricted,bool _copied,bool asNormal,string _namedCard,string _name,bool _noEvent,bool putinplay,bool madness, bool alternative, int kicked, bool flipped) : - MTGAbility(observer, _id, _source),restricted(_restricted),asCopy(_copied),normal(asNormal),cardNamed(_namedCard),nameThis(_name),noEvent(_noEvent),putinplay(putinplay), asNormalMadness(madness), alternative(alternative), kicked(kicked), flipped(flipped) +AACastCard::AACastCard(GameObserver* observer, int _id, MTGCardInstance * _source, MTGCardInstance * _target,bool _restricted,bool _copied,bool asNormal,string _namedCard,string _name,bool _noEvent,bool putinplay,bool madness, bool alternative, int kicked, int costx, bool flipped) : + MTGAbility(observer, _id, _source),restricted(_restricted),asCopy(_copied),normal(asNormal),cardNamed(_namedCard),nameThis(_name),noEvent(_noEvent),putinplay(putinplay), asNormalMadness(madness), alternative(alternative), kicked(kicked), costx(costx), flipped(flipped) { target = _target; andAbility = NULL; @@ -9441,6 +9441,18 @@ int AACastCard::resolveSpell() Spell * spell = NULL; MTGCardInstance * copy = source->controller()->game->putInZone(theNamedCard, theNamedCard->currentZone, source->controller()->game->stack); + if(alternative) + copy->alternateCostPaid[ManaCost::MANA_PAID_WITH_ALTERNATIVE] = 1; + if(kicked > 0){ + copy->alternateCostPaid[ManaCost::MANA_PAID_WITH_KICKER] = 1; + copy->kicked = kicked; + } + if(costx > 0){ + copy->castX = costx; + copy->setX = costx; + copy->X = costx; + } + if (game->targetChooser) { game->targetChooser->Owner = source->controller(); @@ -9464,8 +9476,10 @@ int AACastCard::resolveSpell() } if (!copy->has(Constants::STORM)) { - copy->X = 0; - copy->castX = copy->X; + if(costx <= 0){ + copy->X = 0; + copy->castX = copy->X; + } } if(andAbility) { @@ -9514,6 +9528,11 @@ int AACastCard::resolveSpell() copy->alternateCostPaid[ManaCost::MANA_PAID_WITH_KICKER] = 1; copy->kicked = kicked; } + if(costx > 0){ + copy->castX = costx; + copy->setX = costx; + copy->X = costx; + } if (game->targetChooser) { game->targetChooser->Owner = source->controller(); @@ -9549,8 +9568,10 @@ int AACastCard::resolveSpell() } if (!copy->has(Constants::STORM)) { - copy->X = _target->X; - copy->castX = copy->X; + if(costx <= 0){ + copy->X = _target->X; + copy->castX = copy->X; + } } if(andAbility) { diff --git a/projects/mtg/src/CardDescriptor.cpp b/projects/mtg/src/CardDescriptor.cpp index 2c086e71b..bfc0a7761 100644 --- a/projects/mtg/src/CardDescriptor.cpp +++ b/projects/mtg/src/CardDescriptor.cpp @@ -32,6 +32,7 @@ CardDescriptor::CardDescriptor() CDcontrollerDamaged = 0; CDdamager = 0; CDgeared = 0; + CDdiscarded = 0; CDattached = 0; CDblocked = 0; CDcanProduceC = 0; @@ -291,6 +292,11 @@ MTGCardInstance * CardDescriptor::match(MTGCardInstance * card) match = NULL; } + if ((CDdiscarded == -1 && card->discarded) || (CDdiscarded == 1 && !card->discarded)) + { + match = NULL; + } + if ((fresh == -1 && card->fresh) || (fresh == 1 && !card->fresh)) { match = NULL; diff --git a/projects/mtg/src/CardGui.cpp b/projects/mtg/src/CardGui.cpp index a92e1a5ae..888dcb7c9 100644 --- a/projects/mtg/src/CardGui.cpp +++ b/projects/mtg/src/CardGui.cpp @@ -1568,6 +1568,18 @@ bool CardGui::FilterCard(MTGCard * _card,string filter) cd.hasXCost = 1; } } + //has been discarded + else if (attribute.find("discarded") != string::npos) + { + if (minus) + { + cd.CDdiscarded = -1; + } + else + { + cd.CDdiscarded = 1; + } + } //put in its zone this turn else if (attribute.find("fresh") != string::npos) { diff --git a/projects/mtg/src/GameObserver.cpp b/projects/mtg/src/GameObserver.cpp index 6c241ac8d..21ff3cfd6 100644 --- a/projects/mtg/src/GameObserver.cpp +++ b/projects/mtg/src/GameObserver.cpp @@ -1035,6 +1035,7 @@ void GameObserver::gameStateBasedEffects() { MTGCardInstance * card = fg->cards[k]; card->fresh = 0; // Remove fresh attribute to cards put in graveyard last turn + card->discarded = false; // Remove discarded attribute to cards put in graveyard last turn } MTGGameZone * fe = p->game->exile; for (int k = 0; k < fe->nb_cards; k++) diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index cd087914b..bb384776c 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -1270,6 +1270,10 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell flipresult = 0; } else if(res.size() && (res[1] == "tails" || res[1] == "tail")){ flipresult = 1; + } else if(res.size() && res[1] == "won"){ + flipresult = 2; + } else if(res.size() && res[1] == "lost"){ + flipresult = 3; } string playerName = ""; vectorfrom = parseBetween(s, "from(",")"); @@ -1452,9 +1456,9 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell TargetChooser * tc = parseSimpleTC(s, "from", card); TargetChooser *exception = parseSimpleTC(s, "except", card); // Added a new keyword except to specify a counter add/remove exception in order to avoid counter loop (eg. Doubling Season) if(exception) - return NEW TrCounter(observer, id, card, counter, tc, 1, once, duplicate, exception->source); + return NEW TrCounter(observer, id, card, counter, tc, 1, once, duplicate, limitOnceATurn, exception->source); else - return NEW TrCounter(observer, id, card, counter, tc, 1, once, duplicate); + return NEW TrCounter(observer, id, card, counter, tc, 1, once, duplicate, limitOnceATurn); } if (s.find("counterremoved(") != string::npos) @@ -1469,9 +1473,23 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell TargetChooser * tc = parseSimpleTC(s, "from", card); TargetChooser *exception = parseSimpleTC(s, "except", card); // Added a new keyword except to specify a counter add/remove exception in order to avoid counter loop (eg. Doubling Season) if(exception) - return NEW TrCounter(observer, id, card, counter, tc, 0, once, duplicate, exception->source); + return NEW TrCounter(observer, id, card, counter, tc, 0, once, duplicate, limitOnceATurn, exception->source); else - return NEW TrCounter(observer, id, card, counter, tc, 0, once, duplicate); + return NEW TrCounter(observer, id, card, counter, tc, 0, once, duplicate, limitOnceATurn); + } + + if (s.find("countermod(") != string::npos) + { + vectorsplitCounter = parseBetween(s,"countermod(",")"); + Counter * counter = NULL; + if(s.find("(any)") == string::npos) + counter = parseCounter(splitCounter[1],card,NULL); + TargetChooser * tc = parseSimpleTC(s, "from", card); + TargetChooser *exception = parseSimpleTC(s, "except", card); // Added a new keyword except to specify a counter add/remove exception in order to avoid counter loop (eg. Doubling Season) + if(exception) + return NEW TrCounter(observer, id, card, counter, tc, 2, once, false, limitOnceATurn, exception->source); + else + return NEW TrCounter(observer, id, card, counter, tc, 2, once, false, limitOnceATurn); } int who = 0; @@ -3353,8 +3371,8 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG return a; } - //cast a card without paying it's manacost - vector splitCastCard = parseBetween(s, "castcard(", ")"); + //cast a card without paying it's manacost + vector splitCastCard = parseBetween(s, "castcard(", ")"); if (splitCastCard.size()) { string builtHow = splitCastCard[1]; @@ -3381,10 +3399,21 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG vector splitCastKicked = parseBetween(splitCastCard[1], "kicked!:", ":!"); if(splitCastKicked.size()) { - kicked = atoi(splitCastKicked[1].c_str()); + WParsedInt * val = NEW WParsedInt(splitCastKicked[1], NULL, card); + kicked = val->getValue(); } } - MTGAbility *a = NEW AACastCard(observer, id, card, target,withRestrictions,asCopy,asNormal,nameCard,newName,sendNoEvent,putinplay, asNormalMadness, alternative, kicked, flipped); + int costx = 0; + if(splitCastCard[1].find("costx!:") != string::npos) + { + vector splitCastCostX = parseBetween(splitCastCard[1], "costx!:", ":!"); + if(splitCastCostX.size()) + { + WParsedInt * val = NEW WParsedInt(splitCastCostX[1], NULL, card); + costx = val->getValue(); + } + } + MTGAbility *a = NEW AACastCard(observer, id, card, target,withRestrictions,asCopy,asNormal,nameCard,newName,sendNoEvent,putinplay, asNormalMadness, alternative, kicked, costx, flipped); a->oneShot = false; if(splitCastCard[1].find("trigger[to]") != string::npos) { @@ -4360,37 +4389,6 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG } } - //Change Power/Toughness - WParsedPT * wppt = NEW WParsedPT(s, spell, card); - bool nonstatic = false; - if (wppt->ok) - { - if(s.find("nonstatic") != string::npos) - nonstatic = true; - if (!activated) - { - if (card->hasType(Subtypes::TYPE_INSTANT) || card->hasType(Subtypes::TYPE_SORCERY) || forceUEOT) - { - return NEW PTInstant(observer, id, card, target, wppt,s,nonstatic); - } - else if(s.find("cdaactive") != string::npos) - { - MTGAbility * a = NEW APowerToughnessModifier(observer, id, card, target, wppt,s,true); - a->forcedAlive = 1; - //a->forceDestroy = -1; - return a; - //return NEW APowerToughnessModifier(observer, id, card, target, wppt,s,true); - } - else - return NEW APowerToughnessModifier(observer, id, card, target, wppt,s,nonstatic); - } - return NEW PTInstant(observer, id, card, target, wppt,s,nonstatic); - } - else - { - delete wppt; - } - //Mana Producer found = s.find("add"); if (found != string::npos) @@ -4505,7 +4503,36 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG return NULL; } - + //Change Power/Toughness + WParsedPT * wppt = NEW WParsedPT(s, spell, card); + bool nonstatic = false; + if (wppt->ok) + { + if(s.find("nonstatic") != string::npos) + nonstatic = true; + if (!activated) + { + if (card->hasType(Subtypes::TYPE_INSTANT) || card->hasType(Subtypes::TYPE_SORCERY) || forceUEOT) + { + return NEW PTInstant(observer, id, card, target, wppt,s,nonstatic); + } + else if(s.find("cdaactive") != string::npos) + { + MTGAbility * a = NEW APowerToughnessModifier(observer, id, card, target, wppt,s,true); + a->forcedAlive = 1; + //a->forceDestroy = -1; + return a; + //return NEW APowerToughnessModifier(observer, id, card, target, wppt,s,true); + } + else + return NEW APowerToughnessModifier(observer, id, card, target, wppt,s,nonstatic); + } + return NEW PTInstant(observer, id, card, target, wppt,s,nonstatic); + } + else + { + delete wppt; + } //affinity based on targetchooser vector splitNewAffinity = parseBetween(s, "affinity(", ")"); diff --git a/projects/mtg/src/MTGGameZones.cpp b/projects/mtg/src/MTGGameZones.cpp index c5514af46..381ce7e75 100644 --- a/projects/mtg/src/MTGGameZones.cpp +++ b/projects/mtg/src/MTGGameZones.cpp @@ -525,6 +525,12 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone if (!(copy = from->removeCard(card, doCopy))) return NULL; //ERROR + // Set the mana value used to cast this spell + if((to == g->players[0]->game->stack || to == g->players[1]->game->stack) && card->getManaCost() && card->getManaCost()->getManaUsedToCast()){ + copy->getManaCost()->setManaUsedToCast(NEW ManaCost()); + copy->getManaCost()->getManaUsedToCast()->copy(card->getManaCost()->getManaUsedToCast()); + } + if(!card->hasType(Subtypes::TYPE_LEGENDARY) && copy->hasType(Subtypes::TYPE_LEGENDARY)) // This fix issue when cloning a card with nolegend option (e.g. Double Major) copy->removeType(Subtypes::TYPE_LEGENDARY); diff --git a/projects/mtg/src/MTGRules.cpp b/projects/mtg/src/MTGRules.cpp index d4b26023f..3fb51e1e8 100644 --- a/projects/mtg/src/MTGRules.cpp +++ b/projects/mtg/src/MTGRules.cpp @@ -571,6 +571,10 @@ int MTGPutInPlayRule::reactToClick(MTGCardInstance * card) else { Spell * spell = NULL; + if (spellCost && !card->getManaCost()->getManaUsedToCast()){ + card->getManaCost()->setManaUsedToCast(NEW ManaCost()); + card->getManaCost()->getManaUsedToCast()->copy(spellCost); + } MTGCardInstance * copy = player->game->putInZone(card, card->currentZone, player->game->stack); if (game->targetChooser) { @@ -744,6 +748,10 @@ int MTGKickerRule::reactToClick(MTGCardInstance * card) else { Spell * spell = NULL; + if (spellCost && !card->getManaCost()->getManaUsedToCast()){ + card->getManaCost()->setManaUsedToCast(NEW ManaCost()); + card->getManaCost()->getManaUsedToCast()->copy(spellCost); + } MTGCardInstance * copy = player->game->putInZone(card, card->currentZone, player->game->stack); if (game->targetChooser) { @@ -1040,7 +1048,11 @@ int MTGAlternativeCostRule::reactToClick(MTGCardInstance * card, ManaCost *alter SAFE_DELETE(spell); } else - { + { + if (spellCost && !card->getManaCost()->getManaUsedToCast()){ + card->getManaCost()->setManaUsedToCast(NEW ManaCost()); + card->getManaCost()->getManaUsedToCast()->copy(spellCost); + } MTGCardInstance * copy = player->game->putInZone(card, card->currentZone, player->game->stack); game->mLayers->stackLayer()->addSpell(copy, game->targetChooser, spellCost, alternateCostType, 0); game->targetChooser = NULL; @@ -1531,6 +1543,10 @@ int MTGMorphCostRule::reactToClick(MTGCardInstance * card) delete previousManaPool; card->morphed = true; card->isMorphed = true; + if (spellCost && !card->getManaCost()->getManaUsedToCast()){ + card->getManaCost()->setManaUsedToCast(NEW ManaCost()); + card->getManaCost()->getManaUsedToCast()->copy(spellCost); + } MTGCardInstance * copy = player->game->putInZone(card, card->currentZone, player->game->stack); copy->getManaCost()->resetCosts();//Morph has no ManaCost on stack copy->setColor(0,1); diff --git a/projects/mtg/src/TargetChooser.cpp b/projects/mtg/src/TargetChooser.cpp index 480a90f24..fa54d847b 100644 --- a/projects/mtg/src/TargetChooser.cpp +++ b/projects/mtg/src/TargetChooser.cpp @@ -614,6 +614,18 @@ TargetChooser * TargetChooserFactory::createTargetChooser(string s, MTGCardInsta cd->hasXCost = 1; } } + //has been discarded + else if (attribute.find("discarded") != string::npos) + { + if (minus) + { + cd->CDdiscarded = -1; + } + else + { + cd->CDdiscarded = 1; + } + } //put in its zone this turn else if (attribute.find("fresh") != string::npos) { diff --git a/projects/mtg/src/WParsedInt.cpp b/projects/mtg/src/WParsedInt.cpp index c3fdfcd5a..b1c1d8a3e 100644 --- a/projects/mtg/src/WParsedInt.cpp +++ b/projects/mtg/src/WParsedInt.cpp @@ -374,8 +374,8 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card) for (int i = 0; i < 2; i++) { Player * p = card->getObserver()->players[i]; - MTGGameZone * zones[] = { p->game->battlefield, p->game->graveyard, p->game->hand, p->game->library, p->game->exile }; - for (int k = 0; k < 5; k++) + MTGGameZone * zones[] = { p->game->battlefield, p->game->graveyard, p->game->hand, p->game->library, p->game->exile, p->game->reveal }; + for (int k = 0; k < 6; k++) { MTGGameZone * zone = zones[k]; if(tc->targetsZone(zone,target)) @@ -877,32 +877,6 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card) intValue += card->controller()->game->graveyard->cards[j]->myconvertedcost; } } - else if (s == "gravecardtypes")//Tarmogoyf - { - intValue = 0; - int pc = 0, tc = 0, sc = 0, lc = 0, ic = 0, ec = 0, cc = 0, ac = 0; - for (int j = 0; j < 2; j++) - { - MTGGameZone * checkZone = card->getObserver()->players[j]->game->graveyard; - if(cardHasTypeinZone("planeswalker",checkZone)) - pc = 1; - if(cardHasTypeinZone("tribal",checkZone)) - tc = 1; - if(cardHasTypeinZone("sorcery",checkZone)) - sc = 1; - if(cardHasTypeinZone("land",checkZone)) - lc = 1; - if(cardHasTypeinZone("instant",checkZone)) - ic = 1; - if(cardHasTypeinZone("enchantment",checkZone)) - ec = 1; - if(cardHasTypeinZone("creature",checkZone)) - cc = 1; - if(cardHasTypeinZone("artifact",checkZone)) - ac = 1; - } - intValue = pc+tc+sc+lc+ic+ec+cc+ac; - } else if (s == "powertotalinplay")//Count Total Power of Creatures you control... Formidable { intValue = 0; @@ -1035,10 +1009,6 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card) else intValue = card->revealedLast->getManaCost()->getConvertedCost(); } - else if (s == "scryedcards")//returns how many card have been scryed from current card - { - intValue = card->scryedCards; - } else if (s.find("findfirsttype") != string::npos)//find the index of first card with specified type in target player library { intValue = 0; @@ -1068,9 +1038,33 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card) } } } - else if(!intValue)//found nothing, try parsing a atoi + else if (s == "scryedcards" || s == "numoftypes")//returns how many card have been scryed from current card -- returns the number of types of the card { - intValue = atoi(s.c_str()); + if(s == "scryedcards") + intValue = card->scryedCards; + else { + intValue = 0; + if(card->hasType(Subtypes::TYPE_PLANESWALKER)) + intValue++; + if(card->hasType(Subtypes::TYPE_TRIBAL)) + intValue++; + if(card->hasType(Subtypes::TYPE_SORCERY)) + intValue++; + if(card->hasType(Subtypes::TYPE_LAND)) + intValue++; + if(card->hasType(Subtypes::TYPE_INSTANT)) + intValue++; + if(card->hasType(Subtypes::TYPE_ENCHANTMENT)) + intValue++; + if(card->hasType(Subtypes::TYPE_CREATURE)) + intValue++; + if(card->hasType(Subtypes::TYPE_ARTIFACT)) + intValue++; + } + } + else //Continue parsing in another method to avoid compiler C1061 error. + { + extendedParse(s, spell, card); } if (intValue > 0)//dont divide by 0 the rest are valid. { @@ -1111,6 +1105,129 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card) intValue *= multiplier; } +void WParsedInt::extendedParse(string s, Spell * spell, MTGCardInstance * card) +{ + if (s == "mybattlefieldcardtypes" || s == "oppbattlefieldcardtypes" || s == "allbattlefieldcardtypes")//Count number of card types on battlefield + { + intValue = 0; + int pc = 0, tc = 0, sc = 0, lc = 0, ic = 0, ec = 0, cc = 0, ac = 0; + if(s == "allbattlefieldcardtypes") { + for (int j = 0; j < 2; j++) { + MTGGameZone * checkZone = card->getObserver()->players[j]->game->inPlay; + if(cardHasTypeinZone("planeswalker",checkZone)) + pc = 1; + if(cardHasTypeinZone("tribal",checkZone)) + tc = 1; + if(cardHasTypeinZone("sorcery",checkZone)) + sc = 1; + if(cardHasTypeinZone("land",checkZone)) + lc = 1; + if(cardHasTypeinZone("instant",checkZone)) + ic = 1; + if(cardHasTypeinZone("enchantment",checkZone)) + ec = 1; + if(cardHasTypeinZone("creature",checkZone)) + cc = 1; + if(cardHasTypeinZone("artifact",checkZone)) + ac = 1; + } + } else { + MTGGameZone * checkZone = (s.find("oppbattlefieldcardtypes")!=string::npos)?card->getObserver()->opponent()->game->inPlay:card->controller()->game->inPlay; + if(cardHasTypeinZone("planeswalker",checkZone)) + pc = 1; + if(cardHasTypeinZone("tribal",checkZone)) + tc = 1; + if(cardHasTypeinZone("sorcery",checkZone)) + sc = 1; + if(cardHasTypeinZone("land",checkZone)) + lc = 1; + if(cardHasTypeinZone("instant",checkZone)) + ic = 1; + if(cardHasTypeinZone("enchantment",checkZone)) + ec = 1; + if(cardHasTypeinZone("creature",checkZone)) + cc = 1; + if(cardHasTypeinZone("artifact",checkZone)) + ac = 1; + } + intValue = pc+tc+sc+lc+ic+ec+cc+ac; + } + else if (s == "mygravecardtypes" || s == "oppgravecardtypes" || s == "allgravecardtypes")//Count number of card types in graveyards + { + intValue = 0; + int pc = 0, tc = 0, sc = 0, lc = 0, ic = 0, ec = 0, cc = 0, ac = 0; + if(s == "allgravecardtypes") { + for (int j = 0; j < 2; j++) { + MTGGameZone * checkZone = card->getObserver()->players[j]->game->graveyard; + if(cardHasTypeinZone("planeswalker",checkZone)) + pc = 1; + if(cardHasTypeinZone("tribal",checkZone)) + tc = 1; + if(cardHasTypeinZone("sorcery",checkZone)) + sc = 1; + if(cardHasTypeinZone("land",checkZone)) + lc = 1; + if(cardHasTypeinZone("instant",checkZone)) + ic = 1; + if(cardHasTypeinZone("enchantment",checkZone)) + ec = 1; + if(cardHasTypeinZone("creature",checkZone)) + cc = 1; + if(cardHasTypeinZone("artifact",checkZone)) + ac = 1; + } + } else { + MTGGameZone * checkZone = (s.find("oppgravecardtypes")!=string::npos)?card->getObserver()->opponent()->game->graveyard:card->controller()->game->graveyard; + if(cardHasTypeinZone("planeswalker",checkZone)) + pc = 1; + if(cardHasTypeinZone("tribal",checkZone)) + tc = 1; + if(cardHasTypeinZone("sorcery",checkZone)) + sc = 1; + if(cardHasTypeinZone("land",checkZone)) + lc = 1; + if(cardHasTypeinZone("instant",checkZone)) + ic = 1; + if(cardHasTypeinZone("enchantment",checkZone)) + ec = 1; + if(cardHasTypeinZone("creature",checkZone)) + cc = 1; + if(cardHasTypeinZone("artifact",checkZone)) + ac = 1; + } + intValue = pc+tc+sc+lc+ic+ec+cc+ac; + } + else if (s.find("totcnt") != string::npos) //Return the total amount of all specific counters on each card (use "anycnt" to count all of them e.g. Deepwood Denizen) + { + intValue = 0; + for (int j = card->controller()->game->inPlay->nb_cards - 1; j >= 0; --j){ + if ((s.find("totcntcre") != string::npos || s.find("totcntall") != string::npos) && card->controller()->game->inPlay->cards[j]->hasType(Subtypes::TYPE_CREATURE)){ + if (card->controller()->game->inPlay->cards[j]->counters){ + Counters * counters = card->controller()->game->inPlay->cards[j]->counters; + for(size_t i = 0; i < counters->counters.size(); ++i){ + Counter * counter = counters->counters[i]; + if(s.substr(9) == "anycnt"){ + intValue += counter->nb; + } else if(counter->name == "" && (s.substr(9) == "11" || s.substr(9) == "-1-1")){ + if((counter->power == 1 && counter->toughness == 1 && s.substr(9) == "11") || (counter->power == -1 && counter->toughness == -1 && s.substr(9) == "-1-1")){ + intValue += counter->nb; + break; + } + } else if(counter->name == s.substr(9)){ + intValue += counter->nb; + break; + } + } + } + } + } + } + else if(!intValue)//found nothing, try parsing a atoi + { + intValue = atoi(s.c_str()); + } +} + int WParsedInt::countDevotionTo(MTGCardInstance * card, MTGGameZone * zone, int color1, int color2) { int counthybrid = 0;