diff --git a/projects/mtg/bin/Res/sets/ORI/_cards.dat b/projects/mtg/bin/Res/sets/ORI/_cards.dat new file mode 100644 index 000000000..55bb1f173 --- /dev/null +++ b/projects/mtg/bin/Res/sets/ORI/_cards.dat @@ -0,0 +1,1391 @@ +[meta] +author=Wagic Team +name=Magic Origins +year=2015 +[/meta] +[card] +primitive=Abbot of Keral Keep +id=398411 +rarity=R +[/card] +[card] +primitive=Acolyte of the Inferno +id=398574 +rarity=U +[/card] +[card] +primitive=Act of Treason +id=398578 +rarity=C +[/card] +[card] +primitive=Aerial Volley +id=398565 +rarity=C +[/card] +[card] +primitive=Akroan Jailer +id=398656 +rarity=C +[/card] +[card] +primitive=Akroan Sergeant +id=398604 +rarity=C +[/card] +[card] +primitive=Alchemist's Vial +id=398640 +rarity=C +[/card] +[card] +primitive=Alhammarret, High Arbiter +id=398436 +rarity=R +[/card] +[card] +primitive=Alhammarret's Archive +id=398564 +rarity=M +[/card] +[card] +primitive=Ampryn Tactician +id=398603 +rarity=C +[/card] +[card] +primitive=Anchor to the AEther +id=398474 +rarity=U +[/card] +[card] +primitive=Angel's Tomb +id=398418 +rarity=U +[/card] +[card] +primitive=Animist's Awakening +id=398437 +rarity=R +[/card] +[card] +primitive=Anointer of Champions +id=398455 +rarity=U +[/card] +[card] +primitive=Archangel of Tithes +id=398571 +rarity=M +[/card] +[card] +primitive=Artificer's Epiphany +id=398462 +rarity=C +[/card] +[card] +primitive=Aspiring Aeronaut +id=398674 +rarity=C +[/card] +[card] +primitive=Auramancer +id=398678 +rarity=C +[/card] +[card] +primitive=Avaricious Dragon +id=398667 +rarity=M +[/card] +[card] +primitive=Aven Battle Priest +id=398627 +rarity=C +[/card] +[card] +primitive=Battlefield Forge +id=398417 +rarity=R +[/card] +[card] +primitive=Bellows Lizard +id=398439 +rarity=C +[/card] +[card] +primitive=Blazing Hellhound +id=398660 +rarity=U +[/card] +[card] +primitive=Blessed Spirits +id=398628 +rarity=U +[/card] +[card] +primitive=Blightcaster +id=398618 +rarity=U +[/card] +[card] +primitive=Blood-Cursed Knight +id=398527 +rarity=U +[/card] +[card] +primitive=Boggart Brute +id=398606 +rarity=C +[/card] +[card] +primitive=Bonded Construct +id=398665 +rarity=C +[/card] +[card] +primitive=Bone to Ash +id=398539 +rarity=C +[/card] +[card] +primitive=Bounding Krasis +id=398635 +rarity=U +[/card] +[card] +primitive=Brawler's Plate +id=398532 +rarity=U +[/card] +[card] +primitive=Calculated Dismissal +id=398480 +rarity=C +[/card] +[card] +primitive=Call of the Full Moon +id=398457 +rarity=U +[/card] +[card] +primitive=Catacomb Slug +id=398473 +rarity=C +[/card] +[card] +primitive=Caustic Caterpillar +id=398409 +rarity=C +[/card] +[card] +primitive=Caves of Koilos +id=398504 +rarity=R +[/card] +[card] +primitive=Celestial Flare +id=398488 +rarity=C +[/card] +[card] +primitive=Chandra, Fire of Kaladesh +id=398422 +rarity=M +[/card] +[card] +primitive=Chandra, Roaring Flame +id=398423 +rarity=T +[/card] +[card] +primitive=Chandra's Fury +id=398632 +rarity=C +[/card] +[card] +primitive=Chandra's Ignition +id=398416 +rarity=R +[/card] +[card] +primitive=Charging Griffin +id=398560 +rarity=C +[/card] +[card] +primitive=Chief of the Foundry +id=398581 +rarity=U +[/card] +[card] +primitive=Citadel Castellan +id=398672 +rarity=U +[/card] +[card] +primitive=Clash of Wills +id=398542 +rarity=U +[/card] +[card] +primitive=Claustrophobia +id=398607 +rarity=C +[/card] +[card] +primitive=Cleric of the Forward Order +id=398451 +rarity=C +[/card] +[card] +primitive=Cobblebrute +id=398616 +rarity=C +[/card] +[card] +primitive=Conclave Naturalists +id=398419 +rarity=U +[/card] +[card] +primitive=Consecrated by Blood +id=398512 +rarity=U +[/card] +[card] +primitive=Consul's Lieutenant +id=398446 +rarity=U +[/card] +[card] +primitive=Cruel Revival +id=398415 +rarity=U +[/card] +[card] +primitive=Dark Dabbling +id=398466 +rarity=C +[/card] +[card] +primitive=Dark Petition +id=398525 +rarity=R +[/card] +[card] +primitive=Day's Undoing +id=398652 +rarity=M +[/card] +[card] +primitive=Deadbridge Shaman +id=398500 +rarity=C +[/card] +[card] +primitive=Deep-Sea Terror +id=398605 +rarity=C +[/card] +[card] +primitive=Demolish +id=398486 +rarity=C +[/card] +[card] +primitive=Demonic Pact +id=398433 +rarity=M +[/card] +[card] +primitive=Despoiler of Souls +id=398587 +rarity=R +[/card] +[card] +primitive=Disciple of the Ring +id=398583 +rarity=M +[/card] +[card] +primitive=Disperse +id=398528 +rarity=C +[/card] +[card] +primitive=Displacement Wave +id=398580 +rarity=R +[/card] +[card] +primitive=Dragon Fodder +id=398647 +rarity=C +[/card] +[card] +primitive=Dreadwaters +id=398405 +rarity=C +[/card] +[card] +primitive=Dwynen, Gilt-Leaf Daen +id=398546 +rarity=R +[/card] +[card] +primitive=Dwynen's Elite +id=398609 +rarity=U +[/card] +[card] +primitive=Elemental Bond +id=398406 +rarity=U +[/card] +[card] +primitive=Elvish Visionary +id=398554 +rarity=C +[/card] +[card] +primitive=Embermaw Hellion +id=398576 +rarity=R +[/card] +[card] +primitive=Enlightened Ascetic +id=398414 +rarity=C +[/card] +[card] +primitive=Enshrouding Mist +id=398654 +rarity=C +[/card] +[card] +primitive=Enthralling Victor +id=398493 +rarity=U +[/card] +[card] +primitive=Erebos's Titan +id=398584 +rarity=M +[/card] +[card] +primitive=Evolutionary Leap +id=398573 +rarity=R +[/card] +[card] +primitive=Evolving Wilds +id=398548 +rarity=C +[/card] +[card] +primitive=Exquisite Firecraft +id=398513 +rarity=R +[/card] +[card] +primitive=Eyeblight Assassin +id=398535 +rarity=C +[/card] +[card] +primitive=Eyeblight Massacre +id=398645 +rarity=U +[/card] +[card] +primitive=Faerie Miscreant +id=398459 +rarity=C +[/card] +[card] +primitive=Fetid Imp +id=398633 +rarity=C +[/card] +[card] +primitive=Fiery Conclusion +id=398497 +rarity=U +[/card] +[card] +primitive=Fiery Impulse +id=398516 +rarity=C +[/card] +[card] +primitive=Firefiend Elemental +id=398590 +rarity=C +[/card] +[card] +primitive=Flameshadow Conjuring +id=398547 +rarity=R +[/card] +[card] +primitive=Fleshbag Marauder +id=398625 +rarity=U +[/card] +[card] +primitive=Forest +id=398570 +rarity=C +[/card] +[card] +primitive=Foundry of the Consuls +id=398613 +rarity=U +[/card] +[card] +primitive=Gaea's Revenge +id=398501 +rarity=R +[/card] +[card] +primitive=Gather the Pack +id=398448 +rarity=U +[/card] +[card] +primitive=Ghirapur AEther Grid +id=398517 +rarity=U +[/card] +[card] +primitive=Ghirapur Gearcrafter +id=398681 +rarity=C +[/card] +[card] +primitive=Gideon, Battle-Forged +id=398429 +rarity=T +[/card] +[card] +primitive=Gideon's Phalanx +id=398471 +rarity=R +[/card] +[card] +primitive=Gilt-Leaf Winnower +id=398495 +rarity=R +[/card] +[card] +primitive=Gnarlroot Trapper +id=398413 +rarity=U +[/card] +[card] +primitive=Goblin Glory Chaser +id=398598 +rarity=U +[/card] +[card] +primitive=Goblin Piledriver +id=398537 +rarity=R +[/card] +[card] +primitive=Gold-Forged Sentinel +id=398585 +rarity=U +[/card] +[card] +primitive=Grasp of the Hieromancer +id=398558 +rarity=C +[/card] +[card] +primitive=Graveblade Marauder +id=398526 +rarity=R +[/card] +[card] +primitive=Guardian Automaton +id=398509 +rarity=C +[/card] +[card] +primitive=Guardians of Meletis +id=398553 +rarity=C +[/card] +[card] +primitive=Hallowed Moonlight +id=398505 +rarity=R +[/card] +[card] +primitive=Hangarback Walker +id=398572 +rarity=R +[/card] +[card] +primitive=Harbinger of the Tides +id=398569 +rarity=R +[/card] +[card] +primitive=Healing Hands +id=398563 +rarity=C +[/card] +[card] +primitive=Heavy Infantry +id=398408 +rarity=C +[/card] +[card] +primitive=Helm of the Gods +id=398588 +rarity=R +[/card] +[card] +primitive=Herald of the Pantheon +id=398460 +rarity=R +[/card] +[card] +primitive=Hitchclaw Recluse +id=398676 +rarity=C +[/card] +[card] +primitive=Hixus, Prison Warden +id=398611 +rarity=R +[/card] +[card] +primitive=Honored Hierarch +id=398450 +rarity=R +[/card] +[card] +primitive=Hydrolash +id=398666 +rarity=U +[/card] +[card] +primitive=Infectious Bloodlust +id=398582 +rarity=C +[/card] +[card] +primitive=Infernal Scarring +id=398638 +rarity=C +[/card] +[card] +primitive=Infinite Obliteration +id=398503 +rarity=R +[/card] +[card] +primitive=Iroas's Champion +id=398653 +rarity=U +[/card] +[card] +primitive=Island +id=398586 +rarity=C +[/card] +[card] +primitive=Jace, Telepath Unbound +id=398435 +rarity=T +[/card] +[card] +primitive=Jace, Vryn's Prodigy +id=398434 +rarity=M +[/card] +[card] +primitive=Jace's Sanctum +id=398614 +rarity=R +[/card] +[card] +primitive=Jayemdae Tome +id=398530 +rarity=U +[/card] +[card] +primitive=Jhessian Thief +id=398536 +rarity=U +[/card] +[card] +primitive=Joraga Invocation +id=398642 +rarity=U +[/card] +[card] +primitive=Knight of the Pilgrim's Road +id=398420 +rarity=C +[/card] +[card] +primitive=Knight of the White Orchid +id=398594 +rarity=R +[/card] +[card] +primitive=Knightly Valor +id=398622 +rarity=U +[/card] +[card] +primitive=Kothophed, Soul Hoarder +id=398443 +rarity=R +[/card] +[card] +primitive=Kytheon, Hero of Akros +id=398428 +rarity=M +[/card] +[card] +primitive=Kytheon's Irregulars +id=398561 +rarity=R +[/card] +[card] +primitive=Kytheon's Tactics +id=398470 +rarity=C +[/card] +[card] +primitive=Languish +id=398597 +rarity=R +[/card] +[card] +primitive=Leaf Gilder +id=398634 +rarity=C +[/card] +[card] +primitive=Lightning Javelin +id=398538 +rarity=C +[/card] +[card] +primitive=Liliana, Defiant Necromancer +id=398442 +rarity=T +[/card] +[card] +primitive=Liliana, Heretical Healer +id=398441 +rarity=M +[/card] +[card] +primitive=Llanowar Empath +id=398482 +rarity=C +[/card] +[card] +primitive=Llanowar Wastes +id=398589 +rarity=R +[/card] +[card] +primitive=Macabre Waltz +id=398494 +rarity=C +[/card] +[card] +primitive=Mage-Ring Bully +id=398426 +rarity=C +[/card] +[card] +primitive=Mage-Ring Network +id=398533 +rarity=U +[/card] +[card] +primitive=Mage-Ring Responder +id=398620 +rarity=R +[/card] +[card] +primitive=Magmatic Insight +id=398496 +rarity=U +[/card] +[card] +primitive=Malakir Cullblade +id=398556 +rarity=U +[/card] +[card] +primitive=Managorger Hydra +id=398456 +rarity=R +[/card] +[card] +primitive=Mantle of Webs +id=398577 +rarity=C +[/card] +[card] +primitive=Maritime Guard +id=398670 +rarity=C +[/card] +[card] +primitive=Meteorite +id=398499 +rarity=U +[/card] +[card] +primitive=Might of the Masses +id=398662 +rarity=C +[/card] +[card] +primitive=Mighty Leap +id=398630 +rarity=C +[/card] +[card] +primitive=Mizzium Meddler +id=398596 +rarity=R +[/card] +[card] +primitive=Molten Vortex +id=398649 +rarity=R +[/card] +[card] +primitive=Mountain +id=398510 +rarity=C +[/card] +[card] +primitive=Murder Investigation +id=398641 +rarity=U +[/card] +[card] +primitive=Nantuko Husk +id=398440 +rarity=C +[/card] +[card] +primitive=Necromantic Summons +id=398491 +rarity=U +[/card] +[card] +primitive=Negate +id=398629 +rarity=C +[/card] +[card] +primitive=Nightsnare +id=398562 +rarity=C +[/card] +[card] +primitive=Nissa, Sage Animist +id=398432 +rarity=T +[/card] +[card] +primitive=Nissa, Vastwood Seer +id=398438 +rarity=M +[/card] +[card] +primitive=Nissa's Pilgrimage +id=398593 +rarity=C +[/card] +[card] +primitive=Nissa's Revelation +id=398506 +rarity=R +[/card] +[card] +primitive=Nivix Barrier +id=398465 +rarity=C +[/card] +[card] +primitive=Orbs of Warding +id=398551 +rarity=R +[/card] +[card] +primitive=Orchard Spirit +id=398644 +rarity=C +[/card] +[card] +primitive=Outland Colossus +id=398668 +rarity=R +[/card] +[card] +primitive=Patron of the Valiant +id=398631 +rarity=U +[/card] +[card] +primitive=Pharika's Disciple +id=398531 +rarity=C +[/card] +[card] +primitive=Pia and Kiran Nalaar +id=398453 +rarity=R +[/card] +[card] +primitive=Plains +id=398675 +rarity=C +[/card] +[card] +primitive=Possessed Skaab +id=398657 +rarity=U +[/card] +[card] +primitive=Prickleboar +id=398449 +rarity=C +[/card] +[card] +primitive=Priest of the Blood Rite +id=398639 +rarity=R +[/card] +[card] +primitive=Prism Ring +id=398646 +rarity=U +[/card] +[card] +primitive=Psychic Rebuttal +id=398479 +rarity=U +[/card] +[card] +primitive=Pyromancer's Goggles +id=398427 +rarity=M +[/card] +[card] +primitive=Rabid Bloodsucker +id=398557 +rarity=C +[/card] +[card] +primitive=Ramroller +id=398467 +rarity=U +[/card] +[card] +primitive=Ravaging Blaze +id=398601 +rarity=U +[/card] +[card] +primitive=Read the Bones +id=398637 +rarity=C +[/card] +[card] +primitive=Reave Soul +id=398591 +rarity=C +[/card] +[card] +primitive=Reclaim +id=398543 +rarity=C +[/card] +[card] +primitive=Reclusive Artificer +id=398521 +rarity=U +[/card] +[card] +primitive=Relic Seeker +id=398476 +rarity=R +[/card] +[card] +primitive=Returned Centaur +id=398468 +rarity=C +[/card] +[card] +primitive=Revenant +id=398575 +rarity=U +[/card] +[card] +primitive=Rhox Maulers +id=398663 +rarity=C +[/card] +[card] +primitive=Ringwarden Owl +id=398464 +rarity=C +[/card] +[card] +primitive=Rogue's Passage +id=398523 +rarity=U +[/card] +[card] +primitive=Runed Servitor +id=398643 +rarity=U +[/card] +[card] +primitive=Scab-Clan Berserker +id=398461 +rarity=R +[/card] +[card] +primitive=Scrapskin Drake +id=398478 +rarity=C +[/card] +[card] +primitive=Screeching Skaab +id=398487 +rarity=C +[/card] +[card] +primitive=Seismic Elemental +id=398579 +rarity=U +[/card] +[card] +primitive=Send to Sleep +id=398545 +rarity=C +[/card] +[card] +primitive=Sentinel of the Eternal Watch +id=398659 +rarity=U +[/card] +[card] +primitive=Separatist Voidmage +id=398608 +rarity=C +[/card] +[card] +primitive=Shadows of the Past +id=398522 +rarity=U +[/card] +[card] +primitive=Shaman of the Pack +id=398489 +rarity=U +[/card] +[card] +primitive=Shambling Ghoul +id=398552 +rarity=C +[/card] +[card] +primitive=Shivan Reef +id=398444 +rarity=R +[/card] +[card] +primitive=Sigil of the Empty Throne +id=398524 +rarity=R +[/card] +[card] +primitive=Sigil of Valor +id=398515 +rarity=U +[/card] +[card] +primitive=Sigiled Starfish +id=398592 +rarity=U +[/card] +[card] +primitive=Skaab Goliath +id=398559 +rarity=U +[/card] +[card] +primitive=Skyraker Giant +id=398430 +rarity=U +[/card] +[card] +primitive=Skysnare Spider +id=398650 +rarity=U +[/card] +[card] +primitive=Smash to Smithereens +id=398669 +rarity=C +[/card] +[card] +primitive=Somberwald Alpha +id=398626 +rarity=U +[/card] +[card] +primitive=Soulblade Djinn +id=398485 +rarity=R +[/card] +[card] +primitive=Sphinx's Tutelage +id=398520 +rarity=U +[/card] +[card] +primitive=Stalwart Aven +id=398624 +rarity=C +[/card] +[card] +primitive=Starfield of Nyx +id=398475 +rarity=M +[/card] +[card] +primitive=Stratus Walk +id=398549 +rarity=C +[/card] +[card] +primitive=Subterranean Scout +id=398458 +rarity=C +[/card] +[card] +primitive=Suppression Bonds +id=398602 +rarity=C +[/card] +[card] +primitive=Swamp +id=398555 +rarity=C +[/card] +[card] +primitive=Swift Reckoning +id=398481 +rarity=U +[/card] +[card] +primitive=Sword of the Animist +id=398492 +rarity=R +[/card] +[card] +primitive=Sylvan Messenger +id=398651 +rarity=U +[/card] +[card] +primitive=Tainted Remedy +id=398612 +rarity=R +[/card] +[card] +primitive=Talent of the Telepath +id=398483 +rarity=R +[/card] +[card] +primitive=The Great Aurora +id=398679 +rarity=M +[/card] +[card] +primitive=Thopter Engineer +id=398514 +rarity=U +[/card] +[card] +primitive=Thopter Spy Network +id=398519 +rarity=R +[/card] +[card] +primitive=Thornbow Archer +id=398407 +rarity=C +[/card] +[card] +primitive=Throwing Knife +id=398595 +rarity=U +[/card] +[card] +primitive=Thunderclap Wyvern +id=398655 +rarity=U +[/card] +[card] +primitive=Timberpack Wolf +id=398445 +rarity=C +[/card] +[card] +primitive=Titanic Growth +id=398648 +rarity=C +[/card] +[card] +primitive=Titan's Strength +id=398680 +rarity=C +[/card] +[card] +primitive=Topan Freeblade +id=398619 +rarity=C +[/card] +[card] +primitive=Tormented Thoughts +id=398623 +rarity=U +[/card] +[card] +primitive=Totem-Guide Hartebeest +id=398599 +rarity=U +[/card] +[card] +primitive=Touch of Moonglove +id=398600 +rarity=C +[/card] +[card] +primitive=Tower Geist +id=398615 +rarity=U +[/card] +[card] +primitive=Tragic Arrogance +id=398610 +rarity=R +[/card] +[card] +primitive=Turn to Frog +id=398463 +rarity=U +[/card] +[card] +primitive=Undead Servant +id=398484 +rarity=C +[/card] +[card] +primitive=Undercity Troll +id=398568 +rarity=U +[/card] +[card] +primitive=Unholy Hunger +id=398452 +rarity=C +[/card] +[card] +primitive=Valeron Wardens +id=398447 +rarity=U +[/card] +[card] +primitive=Valor in Akros +id=398529 +rarity=U +[/card] +[card] +primitive=Vastwood Gorger +id=398469 +rarity=C +[/card] +[card] +primitive=Veteran's Sidearm +id=398498 +rarity=C +[/card] +[card] +primitive=Vine Snare +id=398658 +rarity=C +[/card] +[card] +primitive=Volcanic Rambler +id=398636 +rarity=C +[/card] +[card] +primitive=Vryn Wingmare +id=398567 +rarity=R +[/card] +[card] +primitive=War Horn +id=398673 +rarity=U +[/card] +[card] +primitive=War Oracle +id=398621 +rarity=U +[/card] +[card] +primitive=Watercourser +id=398540 +rarity=C +[/card] +[card] +primitive=Weight of the Underworld +id=398544 +rarity=C +[/card] +[card] +primitive=Whirler Rogue +id=398410 +rarity=U +[/card] +[card] +primitive=Wild Instincts +id=398508 +rarity=C +[/card] +[card] +primitive=Willbreaker +id=398502 +rarity=R +[/card] +[card] +primitive=Woodland Bellower +id=398511 +rarity=M +[/card] +[card] +primitive=Yavimaya Coast +id=398566 +rarity=R +[/card] +[card] +primitive=Yeva's Forcemage +id=398424 +rarity=C +[/card] +[card] +primitive=Yoked Ox +id=398671 +rarity=C +[/card] +[card] +primitive=Zendikar Incarnate +id=398661 +rarity=U +[/card] +[card] +primitive=Zendikar's Roil +id=398518 +rarity=U +[/card] +[card] +primitive=Forest +id=398421 +rarity=C +[/card] +[card] +primitive=Forest +id=398454 +rarity=C +[/card] +[card] +primitive=Forest +id=398617 +rarity=C +[/card] +[card] +primitive=Island +id=398431 +rarity=C +[/card] +[card] +primitive=Island +id=398477 +rarity=C +[/card] +[card] +primitive=Island +id=398664 +rarity=C +[/card] +[card] +primitive=Mountain +id=398412 +rarity=C +[/card] +[card] +primitive=Mountain +id=398425 +rarity=C +[/card] +[card] +primitive=Mountain +id=398490 +rarity=C +[/card] +[card] +primitive=Plains +id=398534 +rarity=C +[/card] +[card] +primitive=Plains +id=398541 +rarity=C +[/card] +[card] +primitive=Plains +id=398550 +rarity=C +[/card] +[card] +primitive=Swamp +id=398472 +rarity=C +[/card] +[card] +primitive=Swamp +id=398507 +rarity=C +[/card] +[card] +primitive=Swamp +id=398677 +rarity=C +[/card] + diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index fb52b39fb..37f37ddf5 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -86,17 +86,6 @@ mana={5}{U} type=Sorcery [/card] [card] -name=Gravecrawler -abilities=cantblock -autograveyard=aslongas(zombie|myBattlefield) {B}:name(cast from graveyard) activate name(cast from graveyard) castcard(normal) assorcery -text=Gravecrawler can't block. -- You may cast Gravecrawler from your graveyard as long as you control a Zombie. -mana={B} -type=Creature -subtype=Zombie -power=2 -toughness=1 -[/card] -[card] name=Ivy Seer auto={2}{G}{T}:foreach(*[green]|myhand) 1/1 target(creature) text={2}{G}, {T}: Reveal any number of green cards in your hand. Target creature gets +X/+X until end of turn, where X is the number of cards revealed this way. diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index c86547215..261522a02 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -510,6 +510,15 @@ power=2 toughness=3 [/card] [card] +name=Abzan Advantage +target=player +auto=ability$!name(sacrifice enchantment) notatarget(enchantment|myBattlefield) sacrifice!$ targetedplayer +auto=ability$!name(Bolster) notatarget(creature[toughness=toughness:lowest:creature:mybattlefield]|mybattlefield) counter(1/1,1)!$ controller +text=Target player sacrifices an enchantment. -- Bolster 1. (Choose a creature with the least toughness among creatures you control and put a +1/+1 counter on it.) +mana={1}{W} +type=Instant +[/card] +[card] name=Abzan Ascendancy auto=all(creature|mybattlefield) counter(1/1,1) auto=@movedto(creature[-token]|graveyard) from(mybattlefield):token(Spirit,Creature Spirit,1/1,white flying) controller @@ -539,6 +548,16 @@ power=3 toughness=2 [/card] [card] +name=Abzan Beastmaster +auto=@each my upkeep restriction{type(creature[toughness=toughness:highest:creature:Battlefield]|myBattlefield)~morethan~0}:draw:1 controller +text=At the beginning of your upkeep, draw a card if you control the creature with the greatest toughness or tied for the greatest toughness. +mana={2}{G} +type=Creature +subtype=Hound Shaman +power=2 +toughness=1 +[/card] +[card] name=Abzan Charm auto=choice name(Exile power 3 or more) moveTo(exile) target(creature[power>=3]|battlefield) auto=choice name(Draw 2 cards lose 2 life) draw:2 controller && life:-2 controller @@ -572,6 +591,37 @@ power=4 toughness=4 [/card] [card] +name=Abzan Kin-Guard +auto=aslongas(*[white;black]|mybattlefield) lifelink +text=Abzan Kin-Guard has lifelink as long as you control a white or black permanent. +mana={3}{G} +type=Creature +subtype=Human Warrior +power=3 +toughness=3 +[/card] +[card] +name=Abzan Runemark +target=creature +auto=2/2 +auto=aslongas(*[black;green]|mybattlefield):teach(creature) vigilance +text=Enchant creature. -- Enchanted creature gets +2/+2. -- Enchanted creature has vigilance as long as you control a black or green permanent. +mana={2}{W} +type=Enchantment +subtype=Aura +[/card] +[card] +name=Abzan Skycaptain +abilities=flying +auto=@movedTo(this|graveyard) from(battlefield):ability$!name(Bolster) notatarget(creature[toughness=toughness:lowest:creature:mybattlefield]|mybattlefield) counter(1/1,2)!$ controller +text=Flying. -- When Abzan Skycaptain dies, bolster 2. (Choose a creature with the least toughness among creatures you control and put two +1/+1 counters on it.) +mana={3}{W} +type=Creature +subtype=Bird Soldier +power=2 +toughness=2 +[/card] +[card] name=Academy Raider abilities=intimidate auto=@combatdamaged(player) from(this):if type(*|myhand)~morethan~0 then ability$!may reject notatarget(*|myhand) and!(draw:1)! !$ controller @@ -1270,6 +1320,17 @@ power=2 toughness=1 [/card] [card] +name=Ainok Guide +auto=choice name(+1/+1 counter) counter(1/1,1) +auto=choice name(search for a land) moveTo(ownerlibrary) notatarget(land[basic]|mylibrary) +text=When Ainok Guide enters the battlefield, choose one: -- Put a +1/+1 counter on Ainok Guide. -- Search your library for a basic land card, reveal it, then shuffle your library and put that card on top of it. +mana={1}{G} +type=Creature +subtype=Hound Scout +power=1 +toughness=1 +[/card] +[card] name=Ainok Tracker abilities=first strike facedown={3} @@ -1919,6 +1980,28 @@ power=2 toughness=2 [/card] [card] +name=Alesha, Who Smiles at Death +abilities=first strike +auto=@combat(attacking) source(this) restriction{type(creature[power<=2]|mygraveyard)~morethan~0}:pay({WB}{WB}) target(creature[power<=2]|mygraveyard) ninjutsu +text=First strike -- Whenever Alesha, Who Smiles at Death attacks, you may pay [W/B][W/B]. If you do, return target creature card with power 2 or less from your graveyard to the battlefield tapped and attacking. +mana={2}{R} +type=Legendary Creature +subtype=Human Warrior +power=3 +toughness=2 +[/card] +[card] +name=Alesha's Vanguard +other={2}{B} name(Dash) +auto=if paid(alternative) then transforms((,newability[haste],newability[phaseaction[endofturn sourceinplay] moveto(ownerhand) all(this)])) forever +text=Dash {2}{B} (You may cast this spell for its dash cost. If you do, it gains haste, and it's returned from the battlefield to its owner's hand at the beginning of the next end step.) +mana={3}{B} +type=Creature +subtype=Orc Warrior +power=3 +toughness=3 +[/card] +[card] name=Alexi, Zephyr Mage auto={X}{U}{T}{discard(*|myhand)}{discard(*|myhand)}:name(X = 0) donothing auto={1}{U}{T}{discard(*|myhand)}{discard(*|myhand)}:name(X = 1) target(creature) moveTo(ownerhand) @@ -2262,6 +2345,17 @@ power=2 toughness=2 [/card] [card] +name=Ambush Krotiq +abilities=trample +auto=moveTo(ownerhand) notatarget(other creature|myBattlefield) +text=Trample -- When Ambush Krotiq enters the battlefield, return another creature you control to its owner's hand. +mana={5}{G} +type=Creature +subtype=Insect +power=5 +toughness=5 +[/card] +[card] name=Ambush Party abilities=first strike,haste text=First strike, haste @@ -2593,6 +2687,16 @@ mana={5}{W}{W} type=Sorcery [/card] [card] +name=Ancestral Vengeance +target=creature +auto=-1/-1 +auto=counter(1/1,1) target(creature|mybattlefield) +text=When Ancestral Vengeance enters the battlefield, put a +1/+1 counter on target creature you control. -- Enchanted creature gets -1/-1. +mana={B}{B} +type=Enchantment +subtype=Aura +[/card] +[card] name=Ancient Amphitheater auto=tap auto=aslongas(giant|myHand) untap @@ -3592,6 +3696,16 @@ power=5 toughness=5 [/card] [card] +name=Arashin Cleric +auto=life:3 +text=When Arashin Cleric enters the battlefield, you gain 3 life. +mana={1}{W} +type=Creature +subtype=Human Cleric +power=1 +toughness=3 +[/card] +[card] name=Arbalest Elite auto={2}{W}{T}:damage:3 target(creature[attacking;blocking]) && all(this) frozen text={2}{W}, {T}: Arbalest Elite deals 3 damage to target attacking or blocking creature. Arbalest Elite doesn't untap during your next untap step. @@ -3663,7 +3777,7 @@ type=Sorcery [/card] [card] name=Arc Mage -auto={2}{R}{T}:token(-1111113) && damage:1 target(creature,player) +auto={2}{R}{T}{discard(*|myhand)}:damage:1 target(creature,player) && activate damage:1 target(creature,player) text={2}{R}, {T}, Discard a card: Arc Mage deals 2 damage divided as you choose among one or two target creatures and/or players. mana={2}{R} type=Creature @@ -3672,14 +3786,6 @@ power=2 toughness=2 [/card] [card] -name=Arc Mage's 2nd Damage -auto=counter(0/0,1,Arc Mage) -auto=@damaged(creature,player):thisforeach(counter{0/0.1.Arc Mage}>0) damage:1 target(creature,player) && counter(0/0,-1,Arc Mage) && counter(0/0,1,Bury) -auto=thisforeach(counter{0/0.1.Bury}>0) bury -id=-1111113 -type=Nothing -[/card] -[card] name=Arc Runner abilities=haste,treason text=Haste -- At the beginning of the end step, sacrifice Arc Runner. @@ -3775,6 +3881,13 @@ power=3 toughness=4 [/card] [card] +name=Arcbond +auto=target(creature) transforms((,newability[@damaged(this):damage:thatmuch all(other creature|battlefield)],newability[@damaged(this):damage:thatmuch all(player)])) ueot +text=Choose target creature. Whenever that creature is dealt damage this turn, it deals that much damage to each other creature and each player. +mana={2}{R} +type=Instant +[/card] +[card] name=Arcbound Bruiser auto=counter(1/1,3) auto=@movedTo(this|mygraveyard) from(myBattlefield):may thisforeach(counter{1/1.1}) counter(1/1,1) target(creature[artifact]) @@ -3970,6 +4083,16 @@ power=6 toughness=6 [/card] [card] +name=Archers of Qarsi +abilities=defender,reach +text=Defender -- Reach (This creature can block creatures with flying.) +mana={3}{G} +type=Creature +subtype=Naga Archer +power=5 +toughness=2 +[/card] +[card] name=Archers' Parapet abilities=defender auto={1}{B}{T}:life:-1 opponent @@ -5260,6 +5383,17 @@ power=2 toughness=2 [/card] [card] +name=Atarka, World Render +abilities=flying,trample +auto=lord(dragon|mybattlefield) transforms((,newability[@combat(attacking) source(this):double strike ueot])) +text=Flying,trample. -- Whenever a Dragon you control attacks, it gains double strike until end of turn. +mana={5}{R}}{G} +type=Legendary Creature +subtype=Dragon +power=6 +toughness=4 +[/card] +[card] name=Atog auto={S(artifact|myBattlefield)}:2/2 text=Sacrifice an artifact: Atog gets +2/+2 until end of turn. @@ -5965,6 +6099,16 @@ mana={1}{W}{W} type=Enchantment [/card] [card] +name=Aven Skirmisher +abilities=flying +text=Flying +mana={W} +type=Creature +subtype=Bird Warrior +power=1 +toughness=1 +[/card] +[card] name=Aven Smokeweaver abilities=flying,protection from red text=Flying, protection from red @@ -5985,6 +6129,18 @@ power=1 toughness=1 [/card] [card] +name=Aven Surveyor +abilities=flying +auto=choice name(+1/+1 counter) counter(1/1,1) +auto=choice name(bounce creature) moveto(ownerhand) target(creature) +text=Flying. -- When Aven Surveyor enters the battlefield, choose one: -- Put a +1/+1 counter on Aven Surveyor. -- Return target creature to its owners hand. +mana={3}{U}{U} +type=Creature +subtype=Bird Scout +power=2 +toughness=2 +[/card] +[card] name=Aven Trailblazer abilities=flying auto=aslongas(forest|myBattlefield) 0/1 @@ -7383,6 +7539,14 @@ power=2 toughness=1 [/card] [card] +name=Bathe in Dragonfire +target=creature +auto=damage:4 +text=Bathe in Dragonfire deals 4 damage to target creature. +mana={2}{R} +type=Sorcery +[/card] +[card] name=Bathe in Light target=creature auto=choice name(white) protection from white && all(creature[share!color!]) protection from white @@ -7481,6 +7645,17 @@ type=Artifact subtype=Equipment [/card] [card] +name=Battle Brawler +auto=aslongas(*[red;white]|mybattlefield) 1/0 +auto=aslongas(*[red;white]|mybattlefield) first strike +text=As long as you control a red or white permanent, Battle Brawler gets +1/+0 and has first strike. +mana={1}{B} +type=Creature +subtype=Orc Warrior +power=2 +toughness=2 +[/card] +[card] name=Battle Cry auto=untap all(creature[white]|mybattlefield) auto=all(creature|myBattlefield) transforms((,newability[@combat(blocking) source(this) once:0/1 ueot])) ueot @@ -7639,6 +7814,17 @@ power=2 toughness=2 [/card] [card] +name=Battlefront Krushok +abilities=oneblocker +auto=lord(creature[counter{1/1.1}]|myBattlefield) oneblocker +text=Battlefront Krushok can't be blocked by more than one creature. -- Each creature you control with a +1/+1 counter on it can't be blocked by more than one creature. +mana={4}{G} +type=Creature +subtype=Beast +power=3 +toughness=4 +[/card] +[card] name=Battlegate Mimic auto=@movedTo(*[red&white]|mystack) turnlimited:transforms((,setpower=4,settoughness=2,first strike)) ueot text=Whenever you cast a spell that's both red and white, Battlegate Mimic becomes 4/2 and gains first strike until end of turn. @@ -9845,6 +10031,17 @@ power=1 toughness=1 [/card] [card] +name=Bloodfire Enforcers +auto=aslongas(*[instant]|mygraveyard)aslongas(*[sorcery]|mygraveyard) first strike +auto=aslongas(*[instant]|mygraveyard)aslongas(*[sorcery]|mygraveyard) trample +text=Bloodfire Enforcers has first strike and trample as long as an instant card and a sorcery card are in your graveyard. +mana={3}{R} +type=Creature +subtype=Human Monk +power=5 +toughness=2 +[/card] +[card] name=Bloodfire Expert auto=@movedTo(*[-creature]|mystack):1/1 ueot text=Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.) @@ -11729,6 +11926,13 @@ mana={1}{W} type=Instant [/card] [card] +name=Break Through the Line +auto={R}:target(creature[power<=2]) transforms((,newability[haste ueot],newability[unblockable ueot])) ueot +text={R}:Target creature with power 2 or less gains haste until end of turn and can't be blocked this turn. +mana={1}{R} +type=Enchantment +[/card] +[card] name=Breath of Darigaaz kicker={2} auto=damage:1 all(creature[-flying]) @@ -12929,6 +13133,13 @@ power=4 toughness=4 [/card] [card] +name=Cached Defenses +auto=ability$!name(Bolster) notatarget(creature[toughness=toughness:lowest:creature:mybattlefield]|mybattlefield) counter(1/1,3)!$ controller +text=Bolster 3. (Choose a creature with the least toughness among creatures you control and put three +1/+1 counters on it.) +mana={2}{G} +type=Sorcery +[/card] +[card] name=Cackling Counterpart target=creature|mybattlefield auto=clone @@ -16100,6 +16311,14 @@ mana={2}{R} type=Enchantment [/card] [card] +name=Citadel Siege +auto=choice name(Khans) transforms((,newability[counter(0/0.1.Khans)],newability[@each my combatbegins:counter(1/1.2) target(creature|mybattlefield)])) forever +auto=choice name(Dragons) transforms((,newability[counter(0/0.1.Dragons)],newability[@each opponent combatbegins:tap target(creature|opponentbattlefield)])) forever +text=As Citadel Siege enters the battlefield, choose Khans or Dragons. -- ? Khans ? At the beginning of combat on your turn, put two +1/+1 counters on target creature you control. -- ? Dragons ? At the beginning of combat on each opponent's turn, tap target creature that player controls. +mana={2}{W}{W} +type=Enchantment +[/card] +[card] name=Citanul Centaurs abilities=shroud auto=upcost[{3}{G};next upkeep] sacrifice @@ -17279,6 +17498,14 @@ mana={3}{R} type=Enchantment [/card] [card] +name=Collateral Damage +target=creature,player +auto=damage:3 +text=As an additional cost to cast Collateral Damage, sacrifice a creature. -- Reckless Abandon deals 3 damage to target creature or player. +mana={R}{S(creature|mybattlefield)} +type=Instant +[/card] +[card] name=Collective Blessing auto=lord(creature|mybattlefield) 3/3 text=Creatures you control get +3/+3. @@ -19533,6 +19760,14 @@ type=Tribal Instant subtype=Giant [/card] [card] +name=Crux of Fate +auto=choice name(destroy dragons) destroy all(creature[dragon]) +auto=choice name(destroy non-dragons) destroy all(creature[-dragon]) +text=Choose one: -- Destroy all Dragon creatures. -- Destroy all non-Dragon creatures. +mana={3}{B}{B} +type=Sorcery +[/card] +[card] name=Cryoclasm target=plains,island auto=destroy @@ -19875,6 +20110,16 @@ power=0 toughness=1 [/card] [card] +name=Cunning Strike +target=creature +auto=damage:2 +auto=damage:2 target(player) +auto=draw:1 +text=Cunning Strike deals 2 damage to target creature and 2 damage to target player. -- Draw a card. +mana={3}{U}{R} +type=Instant +[/card] +[card] name=Cuombajj Witches auto={T}:damage:1 target(creature,player) && ability$!target(creature,player|mybattlefield) damage:1!$ opponent text={T}: Cuombajj Witches deals 1 damage to target creature or player and 1 damage to target creature or player of an opponent's choice. @@ -22491,6 +22736,17 @@ power=1 toughness=1 [/card] [card] +name=Defiant Ogre +auto=choice name(+1/+1 counter) counter(1/1,1) +auto=choice name(destroy artifact) target(artifact) destroy +text=When Defiant Ogre enters the battlefield, choose one: -- Put a +1/+1 counter on Defiant Ogre. -- Destroy target artifact. +mana={5}{R} +type=Creature +subtype=Ogre Warrior +power=3 +toughness=5 +[/card] +[card] name=Defiant Stand target=creature auto=1/3 @@ -23165,6 +23421,17 @@ type=Enchantment subtype=Aura [/card] [card] +name=Destructor Dragon +abilities=flying +auto=@movedTo(this|graveyard) from(Battlefield):destroy target(*[-creature]) +text=Flying -- When Destructor Dragon dies, destroy target noncreature permanent. +mana={4}{G}{G} +type=Creature +subtype=Dragon +power=4 +toughness=4 +[/card] +[card] name=Detainment Spell target=creature auto=noactivatedability @@ -23662,6 +23929,15 @@ power=4 toughness=4 [/card] [card] +name=Diplomacy of the Wastes +target=opponent +auto=if type(*[-land]|targetedpersonshand)~lessthan~1 then name(look) donothing notatarget(*|targetedpersonshand) else reject notatarget(*[-land]|targetedpersonshand) +auto=if type(*[warrior]|mybattlefield)~morethan~0 then life:-2 targetedplayer +text=Target opponent reveals his or her hand. You choose a nonland card from it. That player discards that card. If you control a Warrior, that player loses 2 life. +mana={2}{B} +type=Sorcery +[/card] +[card] name=Diplomatic Immunity abilities=shroud target=creature @@ -23859,18 +24135,8 @@ toughness=1 [card] name=Discordant Dirge auto=@each my upkeep:may counter(0/0,1,Verse) -auto=this(counter{0/0.1.Verse}=) {B}{S}:reject target(*|opponenthand) -auto=this(counter{0/0.2.Verse}=) {B}{S}:reject target(*|opponenthand) -auto=this(counter{0/0.3.Verse}=) {B}{S}:reject target(*|opponenthand) -auto=this(counter{0/0.4.Verse}=) {B}{S}:reject target(*|opponenthand) -auto=this(counter{0/0.5.Verse}=) {B}{S}:reject target(*|opponenthand) -auto=this(counter{0/0.6.Verse}=) {B}{S}:reject target(*|opponenthand) -auto=this(counter{0/0.7.Verse}=) {B}{S}:reject target(*|opponenthand) -auto=this(counter{0/0.8.Verse}=) {B}{S}:reject target(*|opponenthand) -auto=this(counter{0/0.9.Verse}=) {B}{S}:reject target(*|opponenthand) -auto=this(counter{0/0.10.Verse}=) {B}{S}:reject target(*|opponenthand) -auto=this(counter{0/0.11.Verse}=) {B}{S}:reject target(*|opponenthand) -auto=this(counter{0/0.12.Verse}=) {B}{S}:reject target(*|opponenthand) +auto=this(counter{0/0.1.Verse}<1) {B}{S}:name(look) donothing target(*|opponenthand) +auto=this(counter{0/0.1.Verse}>0) {B}{S}:reject target(*|opponenthand) text=At the beginning of your upkeep, you may put a verse counter on Discordant Dirge. -- {B}, Sacrifice Discordant Dirge: Look at target opponent's hand and choose up to X cards from it, where X is the number of verse counters on Discordant Dirge. That player discards those cards. mana={3}{B}{B} type=Enchantment @@ -24769,7 +25035,7 @@ type=Sorcery [card] name=Dragon Appeasement auto=phasealter(remove,draw,controller) -auto=@sacrificed(creature|mybattlefield):may draw:1 controller +auto=@sacrificed(creature|mybattlefield):name(draw) ability$!may draw:1!$ controller text=Skip your draw step. -- Whenever you sacrifice a creature, you may draw a card. mana={3}{B}{R}{G} type=Enchantment @@ -24782,6 +25048,17 @@ mana={5} type=Artifact [/card] [card] +name=Dragon Bell Monk +abilities=vigilance +auto=@movedTo(*[-creature]|mystack):1/1 ueot +text=Vigilance. -- Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.) +mana={2}{W} +type=Creature +subtype=Human Monk +power=2 +toughness=2 +[/card] +[card] name=Dragon Blood auto={3}{T}:counter(1/1,1) target(creature) text={3}, {T}: Put a +1/+1 counter on target creature. @@ -25056,6 +25333,14 @@ power=1 toughness=1 [/card] [card] +name=Dragonrage +auto=foreach(creature[attacking}|mybattlefield) add{R} +auto=emblem transforms((,newability[lord(creature[attacking]|mybattlefield) {R}:1/0 ueot])) ueot +text=Add {R} to your mana pool for each attacking creature you control. Until end of turn, attacking creatures you control gain "{R}: This creature gets +1/+0 until end of turn." +mana={2}{R} +type=Instant +[/card] +[card] name=Dragonscale Boon target=creature auto=counter(1/1,2) @@ -25065,6 +25350,16 @@ mana={3}{G} type=Instant [/card] [card] +name=Dragonscale General +auto=@each my end:ability$!name(Bolster) counter(1/1,type:creature[tapped]:mybattlefield) notatarget(creature[toughness=toughness:lowest:creature:mybattlefield])!$ controller +text=At the beginning of your end step, bolster X, where X is the number of tapped creatures you control. (Choose a creature with the least toughness among creatures you control and put X +1/+1 counters on it.) +mana={3}{W} +type=Creature +subtype=Human Warrior +power=2 +toughness=3 +[/card] +[card] name=Dragonskull Summit auto=tap auto=aslongas(mountain,swamp|myBattlefield) untap @@ -25131,6 +25426,18 @@ mana={1}{B}{X:black} type=Sorcery [/card] [card] +name=Draining Whelk +abilities=flash,flying +auto=target(*|stack) fizzle +alias=111057 +text=Flash (You may cast this spell any time you could cast an instant.) -- Flying -- When Draining Whelk enters the battlefield, counter target spell. Put X +1/+1 counters on Draining Whelk, where X is that spell's converted mana cost. +mana={4}{U}{U} +type=Creature +subtype=Illusion +power=1 +toughness=1 +[/card] +[card] name=Drainpipe Vermin auto=@movedto(this|graveyard) from(battlefield):pay({B}) name(discard) target(player) ability$!name(discard) target(*|myhand) reject!$ targetedplayer text=When Drainpipe Vermin dies, you may pay {B}. If you do, target player discards a card. @@ -25835,6 +26142,17 @@ mana={W}{U}{B} type=Instant [/card] [card] +name=Dromoka, the Eternal +abilities=flying +auto=@combat(attacking) source(dragon|mybattlefield):ability$!name(Bolster) notatarget(creature[toughness=toughness:lowest:creature:mybattlefield]|mybattlefield) counter(1/1,2)!$ controller +text=Flying -- Whenever a Dragon you control attacks, bolster 2. (Choose a creature with the least toughness among creatures you control and put two +1/+1 counters on it.) +mana={3}{G}{W} +type=Legendary Creature +subtype=Dragon +power=5 +toughness=5 +[/card] +[card] name=Dromosaur auto=@combat(blocking,blocked,turnlimited) source(this):2/-2 ueot text=Whenever Dromosaur blocks or becomes blocked, it gets +2/-2 until end of turn. @@ -27715,6 +28033,17 @@ power=2 toughness=2 [/card] [card] +name=Elite Scaleguard +auto=ability$!name(Bolster) notatarget(creature[toughness=toughness:lowest:creature:mybattlefield]|mybattlefield) counter(1/1,2)!$ controller +auto=@combat(attacking) source(creature[counter{1/1.1}]|mybattlefield):tap target(creature|opponentbattlefield) +text=When Elite Scaleguard enters the battlefield, bolster 2. (Choose a creature with the least toughness among creatures you control and put two +1/+1 counters on it.) -- Whenever a creature you control with a +1/+1 counter on it attacks, tap target creature defending player controls. +mana={4}{W} +type=Creature +subtype=Human Soldier +power=2 +toughness=3 +[/card] +[card] name=Elite Skirmisher auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):may tap target(creature) text=Heroic -- Whenever you cast a spell that targets Elite Skirmisher, you may tap target creature. @@ -28942,6 +29271,14 @@ power=2 toughness=2 [/card] [card] +name=Enhanced Awareness +auto=draw:3 +auto=reject notatarget(*|myhand) +text=Draw three cards, then discard a card. +mana={4}{U} +type=Instant +[/card] +[card] name=Enlightened Tutor auto=moveTo(ownerlibrary) notatarget(artifact,enchantment|mylibrary) text=Search your library for an artifact or enchantment card and reveal that card. Shuffle your library, then put the card on top of it. @@ -31201,6 +31538,14 @@ mana={5} type=Artifact [/card] [card] +name=Fascination +auto=choice name(each player draws) Draw:X all(player) +auto=choice name(each player mills) deplete:X all(player) +text=Choose one: -- Each player draws X cards. -- Each player puts the top X cards of his or her library into his or her graveyard. +mana={X}{U}{U} +type=Sorcery +[/card] +[card] name=Fastbond alias=1243 text=You may play any number of additional lands on each of your turns. -- Whenever you play a land, if it wasn't the first land you played this turn, Fastbond deals 1 damage to you. @@ -31405,6 +31750,14 @@ type=Enchantment subtype=Aura [/card] [card] +name=Fearsome Awakening +target=creature|mygraveyard +auto=moveto(mybattlefield) && transforms((,newability[if cantargetcard(dragon) then counter(1/1.2)])) oneshot +text=Return target creature card from your graveyard to the battlefield. If it's a Dragon, put two +1/+1 counters on it. +mana={4}{B} +type=Sorcery +[/card] +[card] name=Fearsome Temper target=creature auto=2/2 @@ -31733,6 +32086,15 @@ type=Enchantment subtype=Aura [/card] [card] +name=Feral Krushok +text= +mana={4}{G} +type=Creature +subtype=Beast +power=5 +toughness=4 +[/card] +[card] name=Feral Lightning auto=token(Elemental,Creature Elemental,3/1,red,haste,unearth)*3 text=Put three 3/1 red Elemental creature tokens with haste onto the battlefield. Exile them at the beginning of the next end step. @@ -32290,20 +32652,13 @@ toughness=1 name=Fire at Will target=creature[attacking;blocking] auto=damage:1 -auto=may damage:1 target(creature[attacking;blocking]) -auto=token(-1111121) +auto=damage:1 target(creature[attacking;blocking]) +auto=ability$!name(damage) choice target(creature[attacking;blocking]) damage:1!$ controller text=Fire at Will deals 3 damage divided as you choose among one, two, or three target attacking or blocking creatures. mana={RW}{RW}{RW} type=Instant [/card] [card] -name=Fire at Will's 3rd Damage -auto=@movedto(exile) from(this):may damage:1 target(creature,player) -auto=moveto(exile) -id=-1111121 -type=Nothing -[/card] -[card] name=Firebolt target=creature,player auto=damage:2 @@ -32968,6 +33323,17 @@ power=4 toughness=2 [/card] [card] +name=Flamewake Phoenix +abilities=Flying,haste,mustattack +autograveyard=@each my combatbegins restriction{type(creature[power>=4]|mybattlefield)~morethan~0}:pay({R}) name(Pay {R} to return phoenix) moveTo(mybattlefield) +text=Flying, haste. -- Flamewake Phoenix attacks each turn if able. -- Ferocious - At the beginning of combat on your turn, if you control a creature with power 4 or greater, you may pay {R}. If you do, return Flamewake Phoenix from your graveyard to the battlefield. +mana={1}{R}{R} +type=Creature +subtype=Phoenix +power=2 +toughness=2 +[/card] +[card] name=Flamewave Invoker auto={7}{R}:Damage:5 target(player) text={7}{R}: Flamewave Invoker deals 5 damage to target player. @@ -34844,6 +35210,16 @@ power=1 toughness=1 [/card] [card] +name=Frontier Mastodon +auto=if type(creature[power>=4]|mybattlefield)~morethan~0 then counter(1/1,1) +text=Ferocious - Frontier Mastodon enters the battlefield with a +1/+1 counter on it if you control a creature with power 4 or greater. +mana={2}{G} +type=Creature +subtype=Elephant +power=3 +toughness=2 +[/card] +[card] name=Frontline Sage abilities=exalted auto={u}{T}:draw:1 && transforms((,newability[target(*|myhand) reject])) forever @@ -34902,6 +35278,16 @@ power=5 toughness=3 [/card] [card] +name=Frost Walker +auto=@targeted(this):sacrifice +text=When Frost Walker becomes the target of a spell or ability, sacrifice it. +mana={1}{U} +type=Creature +subtype=Elemental +power=4 +toughness=1 +[/card] +[card] name=Frostburn Weird auto={UR}:1/-1 text={UR}: Frostburn Weird gets +1/-1 until end of turn. @@ -34982,6 +35368,15 @@ type=Enchantment subtype=Aura [/card] [card] +name=Fruit of the First Tree +target=creature|mybattlefield +auto=@movedto(mytgt|graveyard) from(Battlefield):choice life:toughness controller && draw:toughness controller +text=Enchant creature you control -- When enchanted creature dies, you gain X life and draw X cards, where X is its toughness. +mana={3}{G} +type=Enchantment +subtype=Aura +[/card] +[card] name=Fruition auto=life:type:forest:battlefield text=You gain 1 life for each Forest on the battlefield. @@ -35183,7 +35578,7 @@ toughness=3 [/card] [card] name=Furnace Celebration -auto=@sacrificed(other *|mybattlefield):pay({2}) damage:2 target(creature,player) +auto=@sacrificed(other *|mybattlefield):ability$!name(pay 2 for damage) pay[[{2}]] name(pay 2 for damage) damage:2 target(creature,player)!$ controller mana={1}{R}{R} type=Enchantment text=Whenever you sacrifice another permanent, you may pay {2}. If you do, Furnace Celebration deals 2 damage to target creature or player. @@ -37911,6 +38306,14 @@ mana={1}{R} type=Enchantment [/card] [card] +name=Goblin Boom Keg +auto=@each my upkeep:sacrifice +auto=@movedTo(this|graveyard) from(battlefield):damage:3 target(creature,player) +text=At the beginning of your upkeep, sacrifice Goblin Boom Keg. -- When Goblin Boom Keg is put into a graveyard from the battlefield, it deals 3 damage to target creature or player. +mana={4} +type=Artifact +[/card] +[card] name=Goblin Brawler abilities=first strike auto=cantbetargetof(equipment) @@ -38227,6 +38630,18 @@ mana={R}{S(goblin|mybattlefield)} type=Sorcery [/card] [card] +name=Goblin Heelcutter +auto=@combat(attacking) source(this):cantblock target(creature) ueot +other={2}{R} name(Dash) +auto=if paid(alternative) then transforms((,newability[haste],newability[phaseaction[endofturn sourceinplay] moveto(ownerhand) all(this)])) forever +text=Dash {2}{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.) -- Whenever Goblin Heelcutter attacks, target creature can't block this turn. +mana={3}{R} +type=Creature +subtype=Goblin Berserker +power=3 +toughness=2 +[/card] +[card] name=Goblin Hero mana={2}{R} type=Creature @@ -39214,6 +39629,14 @@ power=7 toughness=6 [/card] [card] +name=Gore Swine +mana={2}{R} +type=Creature +subtype=Boar +power=4 +toughness=1 +[/card] +[card] name=Gore Vassal auto={S}:target(creature) transforms((,newability[counter(-1/-1,1)],newability[if cantargetcard(creature[power>=1]) then regenerate])) forever text=Sacrifice Gore Vassal: Put a -/1-1 counter on target creature. Then, if that creature's toughness is 1 or greater, regenerate it. @@ -39594,6 +40017,15 @@ power=1 toughness=1 [/card] [card] +name=Grave Strength +target=creature +auto=deplete:3 +auto=foreach(creature|mygraveyard) counter(1/1,1) +text=Choose target creature. Put the top three cards of your library into your graveyard, then put a +1/+1 counter on that creature for each creature card in your graveyard. +mana={1}{B} +type=Sorcery +[/card] +[card] name=Grave Titan abilities=deathtouch auto=token(Zombie,Creature Zombie,2/2,black)*2 @@ -39626,6 +40058,17 @@ power=3 toughness=3 [/card] [card] +name=Gravecrawler +abilities=cantblock +autograveyard=aslongas(zombie|myBattlefield) transforms((,newability[CanPlayFromGraveyard])) +text=Gravecrawler can't block. -- You may cast Gravecrawler from your graveyard as long as you control a Zombie. +mana={B} +type=Creature +subtype=Zombie +power=2 +toughness=1 +[/card] +[card] name=Gravedigger auto=may moveTo(myhand) target(creature|mygraveyard) text=When Gravedigger enters the battlefield, you may return target creature card from your graveyard to your hand. @@ -39989,6 +40432,14 @@ type=Artifact subtype=Equipment [/card] [card] +name=Great-Horn Krushok +mana={4}{W} +type=Creature +subtype=Beast +power=3 +toughness=5 +[/card] +[card] name=Greed auto={L:2}{B}:draw:1 text={B}, Pay 2 life: Draw a card. @@ -40226,6 +40677,15 @@ text={T}: Add 1 to your mana pool. -- {2}{B}{G},{T},Sacrifice a creature: Draw a type=Land [/card] [card] +name=Grim Contest +target=creature|mybattlefield +auto=transforms((,newability[target(creature|opponentbattlefield) dynamicability])) ueot +restriction=type(creature|opponentbattlefield)~morethan~0 +text=Choose target creature you control and target creature an opponent controls. Each of those creatures deals damage equal to its toughness to the other. +mana={1}{B}{G} +type=Instant +[/card] +[card] name=Grim Feast auto=@each my upkeep:damage:1 controller auto=@movedTo(creature|opponentgraveyard) from(battlefield):all(trigger[to]) dynamicability @@ -41981,6 +42441,15 @@ mana={2}{W} type=Sorcery [/card] [card] +name=Harsh Sustenance +target=creature,player +auto=damage:type:creature:mybattlefield +auto=life:type:creature:mybattlefield controller +text=Harsh Sustenance deals X damage to target creature or player and you gain X life, where X is the number of creatures you control. +mana={1}{W}{B} +type=Instant +[/card] +[card] name=Haru-Onna auto=draw:1 controller auto=@movedto(arcane,spirit|mystack):may moveto(ownerhand) @@ -42286,7 +42755,7 @@ toughness=3 [/card] [card] name=Hazezon Tamar -auto=@next my upkeep:foreach(land|myBattlefield) token(Sand Warrior,Creature Sand Warrior,1/1,red,green,white) +auto=phaseaction[my upkeep once]: token(Sand Warrior,Creature Sand Warrior,1/1,red,green,white)*type:land:mybattlefield auto=@movedTo(this|nonbattlezone) from(battlefield):moveto(exile) all(sand warrior) text=When Hazezon Tamar enters the battlefield, put X 1/1 Sand Warrior creature tokens that are red, green, and white onto the battlefield at the beginning of your next upkeep, where X is the number of lands you control at that time. -- When Hazezon leaves the battlefield, exile all Sand Warriors. mana={4}{R}{G}{W} @@ -43290,6 +43759,16 @@ power=4 toughness=2 [/card] [card] +name=Hero's Blade +auto={4}:equip +auto=3/2 +auto=@movedto(creature[legendary]|mybattlefield):may all(trigger[to]) retarget +text=Equipped creature gets +3/+2. -- Whenever a legendary creature enters the battlefield under your control, you may attach Hero's Blade to it. +mana={2} +type=Artifact +subtype=Equipment +[/card] +[card] name=Hero's Demise target=creature[legendary] auto=destroy @@ -43349,6 +43828,16 @@ mana={1}{U} type=Enchantment [/card] [card] +name=Hewed Stone Retainers +restriction=casted a spell +text=Cast Hewed Stone Retainers only if you've cast another spell this turn. +mana={3} +type=Artifact Creature +subtype=Golem +power=4 +toughness=4 +[/card] +[card] name=Hex target=<6>creature auto=destroy @@ -44121,6 +44610,14 @@ power=1 toughness=1 [/card] [card] +name=Honor's Reward +auto=life:4 controller +auto=ability$!name(Bolster) notatarget(creature[toughness=toughness:lowest:creature:mybattlefield]|mybattlefield) counter(1/1,2)!$ controller +text=You gain 4 life. Bolster 2. (Choose a creature with the least toughness among creatures you control and put two +1/+1 counters on it.) +mana={2}{W} +type=Instant +[/card] +[card] name=Honor-Worn Shaku auto={T}:add{1} auto={T(*[legendary]|mybattlefield)}:untap @@ -44129,6 +44626,17 @@ mana={3} type=Artifact [/card] [card] +name=Hooded Assassin +auto=choice name(+1/+1 counter) counter(1/1,1) +auto=choice name(destroy damaged creature) destroy target(creature[damaged]|battlefield) +text=When Hooded Assassin enters the battlefield, choose one: -- Put a +1/+1 counter on Hooded Assassin. -- Destroy target creature that was dealt damage this turn. +mana={2}{B} +type=Creature +subtype=Human Assassin +power=1 +toughness=2 +[/card] +[card] name=Hooded Hydra facedown={3} autofacedown={3}{G}{G}:morph @@ -44714,6 +45222,16 @@ power=2 toughness=2 [/card] [card] +name=Humble Defector +auto={T}:draw:2 controller && transforms((,newability[choice target(opponent) && moveto(targetedpersonsbattlefield) all(this)])) forever myturnonly +text={T}: Draw two cards. Target opponent gains control of Humble Defector. Activate this ability only during your turn. +mana={1}{R} +type=Creature +subtype=Human Rogue +power=2 +toughness=1 +[/card] +[card] name=Humbler of Mortals auto=all(creature|myBattlefield) trample ueot auto=@movedTo(enchantment|myBattlefield):all(creature|myBattlefield) trample ueot @@ -46245,6 +46763,14 @@ power=4 toughness=4 [/card] [card] +name=Induce Paranoia +target=*|stack +auto=if spent({B}) then transforms((,newability[deplete:manacost],newability[fizzle])) else fizzle +text=Counter target spell. If {B} was spent to cast Induce Paranoia, that spell's controller puts the top X cards of his or her library into his or her graveyard, where X is the spell's converted mana cost. +mana={2}{U}{U} +type=Instant +[/card] +[card] name=Inertia Bubble target=artifact auto=doesnotuntap @@ -47926,6 +48452,17 @@ mana={3} type=Artifact [/card] [card] +name=Jeskai Barricade +abilities=flash,defender +auto=may name(bounce target creature you control) moveTo(ownerhand) target(other creature|myBattlefield) +text=Flash (You may cast this spell any time you could cast an instant.) -- Defender -- When Jeskai Barricade enters the battlefield, you may return another target creature you control to its owner's hand. +mana={1}{W} +type=Creature +subtype=Wall +power=0 +toughness=4 +[/card] +[card] name=Jeskai Charm auto=choice name(top of library) moveTo(ownerLibrary) target(creature) auto=choice name(4 damage) damage:4 target(opponent) @@ -47946,6 +48483,27 @@ power=1 toughness=2 [/card] [card] +name=Jeskai Runemark +target=creature +auto=2/2 +auto=aslongas(*[red;white]|mybattlefield):teach(creature) flying +text=Enchant creature -- Enchanted creature gets +2/+2. -- Enchanted creature has flying as long as you control a red or white permanent. +mana={2}{U} +type=Enchantment +subtype=Aura +[/card] +[card] +name=Jeskai Sage +auto=@movedto(*[-creature]|mystack):1/1 ueot +auto=@movedto(this|graveyard) from(mybattlefield):draw:1 controller +text=Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.) -- When Jeskai Sage dies, draw a card. +mana={1}{U} +type=Creature +subtype=Human Monk +power=1 +toughness=1 +[/card] +[card] name=Jeskai Student auto=@movedTo(*[-creature]|mystack):1/1 ueot text=Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.) @@ -50469,7 +51027,7 @@ toughness=1 [card] name=Kiora, the Crashing Wave auto=counter(0/0,2,loyalty) -auto={C(0/0,1,Loyalty)}:name(+1: Prevention) token(37852101) controller +auto={C(0/0,1,Loyalty)}:name(+1: Prevention) target(*|opponentbattlefield) transforms((,newability[preventalldamage from(this)],newability[preventalldamage to(this)])) uynt auto={C(0/0,-1,Loyalty)}:name(-1: Draw 1 and Lands +1) draw:1 controller && maxPlay(land)+1 ueot auto={C(0/0,-5,Loyalty)}:emblem name(-5: Emblem) transforms((,newability[@each my endofturn:token(-378521) controller])) forever dontremove text=+1: Until your next turn, prevent all damage that would be dealt to and dealt by target permanent an opponent controls. -- -1: Draw a card. You may play an additional land this turn. -- -5: You get an emblem with "At the beginning of your end step, put a 9/9 blue Kraken creature token onto the battlefield." -- Starting Loyalty (2) @@ -50478,15 +51036,6 @@ type=Planeswalker subtype=Kiora [/card] [card] -name=Kiora's Prevention -abilities=indestructible,shroud -type=nothing -text=Until your next turn, prevent all damage that would be dealt to and dealt by target permanent an opponent controls. -auto=name(Prevention) target(*|opponentbattlefield) transforms((,newability[preventalldamage from(this)],newability[preventalldamage to(this)])) uynt -auto=@each myuntap:moveto(exile) all(this) -color=green,blue -[/card] -[card] name=Kiora's Kraken type=Creature subtype=Kraken @@ -51256,6 +51805,19 @@ power=5 toughness=5 [/card] [card] +name=Kolaghan, the Storm's Fury +abilities=flying +auto=@combat(attacking) source(dragon|mybattlefield):all(creature|mybattlefield) 1/0 ueot +other={3}{R}{B} name(Dash) +auto=if paid(alternative) then transforms((,newability[haste],newability[phaseaction[endofturn sourceinplay] moveto(ownerhand) all(this)])) forever +text=Flying. -- Whenever a Dragon you control attacks, creatures you control get +1/+0 until end of turn. -- Dash {3}{B}{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={3}{B}}{R} +type=Legendary Creature +subtype=Dragon +power=4 +toughness=5 +[/card] +[card] name=Konda, Lord of Eiganjo abilities=vigilance,indestructible auto=bushido(5/5) @@ -53964,6 +54526,17 @@ power=2 toughness=1 [/card] [card] +name=Lightning Shrieker +abilities=flying,trample,haste +auto=@each endofturn:moveto(ownerlibrary) && shuffle +text=Flying, trample, haste. -- At the beginning of the end step, Lightning Shrieker's owner shuffles it into his or her library. +mana={4}{R} +type=Creature +subtype=Dragon +power=5 +toughness=5 +[/card] +[card] name=Lightning Strike target=creature,player auto=damage:3 @@ -54876,6 +55449,17 @@ power=1+* toughness=1+* [/card] [card] +name=Lotus Path Djinn +abilities=flying +auto=@movedTo(*[-creature]|mystack):1/1 ueot +text=Flying. -- Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.) +mana={3}{U} +type=Creature +subtype=Djinn Monk +power=2 +toughness=3 +[/card] +[card] name=Lost Soul abilities=swampwalk text=Swampwalk @@ -54970,6 +55554,17 @@ text=If Lotus Vale would enter the battlefield, sacrifice two untapped lands ins type=Land [/card] [card] +name=Lotus-Eye Mystics +auto=@movedTo(*[-creature]|mystack):1/1 ueot +auto=choice moveTo(myhand) target(enchantment|mygraveyard) +text=Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.) -- When Lotus-Eye Mystics enters the battlefield, return target enchantment card from your graveyard to your hand. +mana={3}{W} +type=Creature +subtype=Human Monk +power=3 +toughness=2 +[/card] +[card] name=Lovisa Coldeyes auto=lord(warrior,berserker,other barbarian) 2/2 auto=lord(warrior,berserker,other barbarian) haste @@ -56779,6 +57374,14 @@ type=Enchantment subtype=Aura [/card] [card] +name=Map the Wastes +auto=moveTo(myBattlefield) and!(tap)! notatarget(land[basic]|myLibrary) +auto=ability$!name(Bolster) notatarget(creature[toughness=toughness:lowest:creature:mybattlefield]|mybattlefield) counter(1/1,1)!$ controller +text=Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library. -- Bolster 1. (Choose a creature with the least toughness among creatures you control and put a +1/+1 counter on it.) +mana={2}{G} +type=Sorcery +[/card] +[card] name=Marauding Knight abilities=protection from white auto=foreach(Plains|opponentBattlefield) 1/1 @@ -56952,6 +57555,39 @@ power=5 toughness=4 [/card] [card] +name=Mardu Runemark +target=creature +auto=2/2 +auto=aslongas(*[white;black]|mybattlefield):teach(creature) first strike +text=Enchant creature. -- Enchanted creature gets +2/+2. -- Enchanted creature has first strike as long as you control a white or black permanent. +mana={2}{R} +type=Enchantment +subtype=Aura +[/card] +[card] +name=Mardu Scout +other={1}{R} name(Dash) +auto=if paid(alternative) then transforms((,newability[haste],newability[phaseaction[endofturn sourceinplay] moveto(ownerhand) all(this)])) forever +text=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}{R} +type=Creature +subtype=Goblin Scout +power=3 +toughness=1 +[/card] +[card] +name=Mardu Shadowspear +auto=@combat(attacking) source(this):life:-1 opponent +other={1}{B} name(Dash) +auto=if paid(alternative) then transforms((,newability[haste],newability[phaseaction[endofturn sourceinplay] moveto(ownerhand) all(this)])) forever +text=Whenever Mardu Shadowspear attacks, each opponent loses 1 life. -- Dash {1}{B} (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={B} +type=Creature +subtype=Human Warrior +power=1 +toughness=1 +[/card] +[card] name=Mardu Skullhunter auto=tap auto=if thisturn(creature[attacking]|mybattlefield)~morethan~0 then target(opponent) ability$!name(discard) target(*|myhand) reject!$ targetedplayer @@ -56963,6 +57599,18 @@ power=2 toughness=1 [/card] [card] +name=Mardu Strike Leader +auto=@combat(attacking) source(this):token(Warrior,Creature Warrior,2/1,black) controller +other={3}{B} name(Dash) +auto=if paid(alternative) then transforms((,newability[haste],newability[phaseaction[endofturn sourceinplay] moveto(ownerhand) all(this)])) forever +text=Whenever Mardu Strike Leader attacks, put a 2/1 black Warrior creature token onto the battlefield. -- Dash {3}{B} (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={2}{B} +type=Creature +subtype=Human Warrior +power=3 +toughness=2 +[/card] +[card] name=Mardu Warshrieker auto=if thisturn(creature[attacking]|mybattlefield)~morethan~0 then Add{R}{W}{B} text=Raid - When Mardu Warshrieker enters the battlefield, if you attacked with a creature this turn, add {R}{W}{B} to your mana pool. @@ -56973,6 +57621,17 @@ power=3 toughness=3 [/card] [card] +name=Mardu Woe-Reaper +auto=may moveTo(Exile) target(creature|graveyard) && life:1 controller +auto=@movedTo(warrior|myBattlefield):may moveTo(Exile) target(creature|graveyard) && life:1 controller +text=Whenever Mardu Woe-Reaper or another Warrior enters the battlefield under your control, you may exile target creature card from a graveyard. If you do, you gain 1 life. +mana={W} +type=Creature +subtype=Human Warrior +power=2 +toughness=1 +[/card] +[card] name=Marhault Elsdragon auto=rampage(1/1,1) text=Rampage 1 (Whenever this creature becomes blocked, it gets +1/+1 until end of turn for each creature blocking it beyond the first.) @@ -58448,6 +59107,17 @@ mana={4}{W}{B} type=Sorcery [/card] [card] +name=Merciless Executioner +auto=sacrifice notatarget(creature|mybattlefield) +auto=ability$! sacrifice notatarget(creature|mybattlefield) !$ opponent +text=When Merciless Executioner enters the battlefield, each player sacrifices a creature. +mana={2}{B} +type=Creature +subtype=Orc Warrior +power=3 +toughness=1 +[/card] +[card] name=Mercy Killing target=creature auto=sacrifice && token(Elf Warrior,Creature Elf Warrior,1/1,green white)*power targetcontroller @@ -59464,6 +60134,17 @@ mana={4}{R} type=Enchantment [/card] [card] +name=Mindscour Dragon +abilities=flying +auto=@combatdamaged(opponent) from(this):deplete:4 target(player) +text=Flying -- Whenever Mindscour Dragon deals combat damage to an opponent, target player puts the top 4 cards of his or her library into his or her graveyard. +mana={4}{U}{U} +type=Creature +subtype=Dragon +power=4 +toughness=4 +[/card] +[card] name=Mindslicer auto=@movedto(this|graveyard) from(battlefield):reject all(*|hand) text=When Mindslicer dies, each player discards his or her hand. @@ -60113,6 +60794,17 @@ power=0 toughness=0 [/card] [card] +name=Mistfire Adept +auto=@movedTo(*[-creature]|mystack):1/1 ueot +auto=@movedTo(*[-creature]|mystack):target(creature) flying ueot +text=Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.) -- Whenever you cast a noncreature spell, target creature gains flying until end of turn. +mana={3}{U} +type=Creature +subtype=Human Monk +power=3 +toughness=3 +[/card] +[card] name=Mistfire Weaver abilities=flying facedown={3} @@ -60385,6 +61077,14 @@ mana={1}{R} type=Sorcery [/card] [card] +name=Mob Rule +auto=choice name(Power 4 or greater) all(creature[power>=4]|opponentbattlefield) transforms((,newability[moveTo(opponentbattlefield)],newability[phaseaction[endofturn sourceinplay] moveTo(ownerbattlefield)],newability[untap],haste)) ueot +auto=choice name(Power 3 or less) all(creature[power<=3]|opponentbattlefield) transforms((,newability[moveTo(opponentbattlefield)],newability[phaseaction[endofturn sourceinplay] moveTo(ownerbattlefield)],newability[untap],haste)) ueot +text=Choose one: --Gain control of all creatures with power 4 or greater until end of turn. Untap those creatures. They gain haste until end of turn. --Gain control of all creatures with power 3 or less until end of turn. Untap those creatures. They gain haste until end of turn. +mana={4}{R}{R} +type=Sorcery +[/card] +[card] name=Mobile Fort abilities=defender auto={3}:3/-1 && canattack ueot limit:1 @@ -60864,6 +61564,27 @@ power=0 toughness=5 [/card] [card] +name=Monastery Mentor +auto=@movedTo(*[-creature]|mystack):1/1 ueot +auto=@movedTo(*[-creature]|mystack):choice name(Create Monk) token(-391883) controller +text=Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.) -- Whenever you cast a noncreature spell, put a 1/1 white Monk creature token with prowess onto the battlefield. +mana={2}{W} +type=Creature +subtype=Human Monk +power=2 +toughness=2 +[/card] +[card] +name=Monk Token +auto=@movedTo(*[-creature]|mystack):1/1 ueot +text=Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.) +color=white +type=Creature +subtype=Monk +power=1 +toughness=1 +[/card] +[card] name=Monastery Swiftspear abilities=haste auto=@movedTo(*[-creature]|mystack):1/1 ueot @@ -61468,7 +62189,7 @@ subtype=Equipment [/card] [card] name=Mortician Beetle -auto=@sacrificed(creature):may counter(1/1,1) +auto=@sacrificed(creature):name(counter +1/+1) ability$!may counter(1/1,1) all(mystored)!$ controller text=Whenever a player sacrifices a creature, you may put a +1/+1 counter on Mortician Beetle. mana={B} type=Creature @@ -63768,6 +64489,14 @@ type=Artifact subtype=Equipment [/card] [card] +name=Neutralizing Blast +target=*[multicolor]|stack +auto=fizzle +text=Counter target multicolored spell. +mana={1}{U} +type=Instant +[/card] +[card] name=Nevermaker abilities=flying other={3}{U} name(Evoke) @@ -64885,6 +65614,17 @@ power=0 toughness=0 [/card] [card] +name=Noxious Dragon +abilities=flying +auto=@movedTo(this|graveyard) from(Battlefield):may destroy target(creature[manacost<=3]) +text=Flying -- When Noxious Dragon dies, you may destroy target creature with converted mana cost 3 or less. +mana={4}{B}{B} +type=Creature +subtype=Dragon +power=4 +toughness=4 +[/card] +[card] name=Noxious Field target=land|myBattlefield auto=teach(land) {T}:damage:1 all(creature,player) @@ -65722,6 +66462,17 @@ power=1 toughness=3 [/card] [card] +name=Ojutai, Soul of Winter +abilities=flying,vigilance +auto=@combat(attacking) source(dragon|mybattlefield):name(tap & Freeze) target(*[-land]|opponentbattlefield) transforms((,newability[tap],newability[frozen])) uynt +text=Flying, vigilance. -- Whenever a Dragon you control attacks, Tap target nonland permament your opponents control. It doesn't untap during its controller's next untap step. +mana={5}{W}}{U} +type=Legendary Creature +subtype=Dragon +power=5 +toughness=6 +[/card] +[card] name=Okiba-Gang Shinobi auto=@combatdamaged(opponent) from(this):ability$!name(discard 2 cards) target(<2>*|myhand) reject!$ opponent autohand={3}{B}{N}:ninjutsu @@ -66262,6 +67013,16 @@ power=2 toughness=2 [/card] [card] +name=Orc Sureshot +auto=@movedTo(other creature|myBattlefield):target(creature|opponentbattlefield) -1/-1 ueot +text=Whenever another creature enters the battlefield under your control, target creature an opponent controls gets -1/-1 until end of turn. +mana={3}{B} +type=Creature +subtype=Orc Archer +power=4 +toughness=2 +[/card] +[card] name=Orcish Artillery auto={T}:damage:2 target(creature,player) && damage:3 controller text={T}: Orcish Artillery deals 2 damage to target creature or player and 3 damage to you. @@ -67261,6 +68022,14 @@ power=5 toughness=4 [/card] [card] +name=Palace Siege +auto=choice name(Khans) transforms((,newability[counter(0/0.1.Khans)],newability[@each my upkeep:moveto(myhand) target(creature|mygraveyard)])) forever +auto=choice name(Dragons) transforms((,newability[counter(0/0.1.Dragons)],newability[@each my upkeep:life:-2 opponent && life:2 controller])) forever +text=As Palace Siege enters the battlefield, choose Khans or Dragons. -- ? Khans ? At the beginning of your upkeep, return target creature card from your graveyard to your hand. -- ? Dragons ? At the beginning of your upkeep, each opponent loses 2 life and you gain 2 life. +mana={3}{B}{B} +type=Enchantment +[/card] +[card] name=Paladin en-Vec abilities=first strike,protection from black,protection from red text=First strike, protection from black and from red (This creature deals combat damage before creatures without first strike. It can't be blocked, targeted, dealt damage, or enchanted by anything black or red.) @@ -67573,6 +68342,13 @@ mana={3}{G}{G} type=Sorcery [/card] [card] +name=Parallel Lives +abilities=tokenizer +text=If an effect would put one or more tokens onto the battlefield under your control, it puts twice that many of those tokens onto the battlefield instead. +mana={3}{G} +type=Enchantment +[/card] +[card] name=Paralyze target=creature auto=tap @@ -67768,8 +68544,7 @@ subtype=Arcane name=Path of Bravery auto=this(controllerlife > 19) lord(creature|mybattlefield) 1/1 auto=@each my blockers:life:type:creature[attacking]|mybattlefield controller -text=Enchantment. -- As long as your life total is greater than or equal to your starting life total, creatures you control get +1/+1. -- -Whenever one or more creatures you control attack, you gain life equal to the number of attacking creatures. +text=Enchantment. -- As long as your life total is greater than or equal to your starting life total, creatures you control get +1/+1. -- Whenever one or more creatures you control attack, you gain life equal to the number of attacking creatures. mana={2}{W} type=Enchantment [/card] @@ -69493,6 +70268,16 @@ power=1 toughness=1 [/card] [card] +name=Pilgrim of the Fires +abilities=first strike,trample +text=First strike, Trample +mana={7} +type=Artifact Creature +subtype=Golem +power=6 +toughness=4 +[/card] +[card] name=Pilgrim's Eye abilities=flying auto=may moveTo(ownerhand) target(land[basic]|mylibrary) @@ -70796,6 +71581,15 @@ mana={2}{W}{W} type=Sorcery [/card] [card] +name=Pressure Point +target=creature +auto=tap +auto=draw:1 controller +text=Tap target creature. -- Draw a card. +mana={1}{W} +type=Instant +[/card] +[card] name=Pretender's Claim target=creature auto=@combat(blocked,turnlimited) source(mytgt):tap all(land|opponentbattlefield) @@ -73486,6 +74280,16 @@ mana={2}{B} type=Sorcery [/card] [card] +name=Ral Zarek +auto={C(0/0,1,Loyalty)}:tap target(*) && ability$!untap target(*)!$ controller +auto={C(0/0,-2,Loyalty)}:damage:3 target(creature,player) +auto={C(0/0,-7,Loyalty)}:flipacoin winability turns:+1 controller winabilityend flipend && flipacoin winability turns:+1 controller winabilityend flipend && flipacoin winability turns:+1 controller winabilityend flipend && flipacoin winability turns:+1 controller winabilityend flipend && flipacoin winability turns:+1 controller winabilityend flipend +text=+1: Tap target permanent, then untap another target permanent. -- -2: Ral Zarek deals 3 damage to target creature or player. -- -7: Flip five coins. Take an extra turn after this one for each coin that comes up heads. +mana={2}{U}{R} +type=Planeswalker +subtype=Ral +[/card] +[card] name=Rally auto=lord(creature[blocking]) 1/1 text=Blocking creatures get +1/+1 until end of turn. @@ -73493,6 +74297,14 @@ mana={W}{W} type=Instant [/card] [card] +name=Rally the Ancestors +auto=moveTo(exile) +auto=moveTo(mybattlefield) all(creature[manacost<=X]|mygraveyard) and!( transforms((,newability[phaseaction[my upkeep sourceinplay]:moveto(exile)])) forever )! +text=Return each creature card with converted mana cost X or less from your graveyard to the battlefield. Exile those creatures at the beginning of your next upkeep. Exile Rally the Ancestors. +mana={X}{W}{W} +type=Instant +[/card] +[card] name=Rally the Forces auto=all(creature[attacking]) 1/0 auto=all(creature[attacking]) first strike @@ -74353,6 +75165,14 @@ type=Tribal Instant subtype=Treefolk [/card] [card] +name=Reach of Shadows +target=creature[white;blue;black;red;green] +auto=destroy +text=Destroy target creature that's one or more colors. +mana={4}{B} +type=Instant +[/card] +[card] name=Reach Through Mists auto=draw:1 text=Draw a card. @@ -74568,18 +75388,8 @@ type=Sorcery [card] name=Recantation auto=@each my upkeep:may counter(0/0,1,Verse) -auto=this(counter{0/0.1.Verse}=) {U}{S}:moveTo(ownerhand) target(*|battlefield) -auto=this(counter{0/0.2.Verse}=) {U}{S}:moveTo(ownerhand) target(*|battlefield) -auto=this(counter{0/0.3.Verse}=) {U}{S}:moveTo(ownerhand) target(*|battlefield) -auto=this(counter{0/0.4.Verse}=) {U}{S}:moveTo(ownerhand) target(*|battlefield) -auto=this(counter{0/0.5.Verse}=) {U}{S}:moveTo(ownerhand) target(*|battlefield) -auto=this(counter{0/0.6.Verse}=) {U}{S}:moveTo(ownerhand) target(*|battlefield) -auto=this(counter{0/0.7.Verse}=) {U}{S}:moveTo(ownerhand) target(*|battlefield) -auto=this(counter{0/0.8.Verse}=) {U}{S}:moveTo(ownerhand) target(*|battlefield) -auto=this(counter{0/0.9.Verse}=) {U}{S}:moveTo(ownerhand) target(*|battlefield) -auto=this(counter{0/0.10.Verse}=) {U}{S}:moveTo(ownerhand) target(*|battlefield) -auto=this(counter{0/0.11.Verse}=) {U}{S}:moveTo(ownerhand) target(*|battlefield) -auto=this(counter{0/0.12.Verse}=) {U}{S}:moveTo(ownerhand) target(*|battlefield) +auto=this(counter{0/0.1.Verse}<1) {U}{S}:name(do nothing) donothing +auto=this(counter{0/0.1.Verse}>0) {U}{S}:moveTo(ownerhand) target(*|battlefield) text=At the beginning of your upkeep, you may put a verse counter on Recantation. -- {U}, Sacrifice Recantation: Return up to X target permanents to their owners' hands, where X is the number of verse counters on Recantation. mana={3}{U}{U} type=Enchantment @@ -74925,6 +75735,15 @@ type=Enchantment subtype=Aura [/card] [card] +name=Refocus +target=creature +auto=untap +auto=draw:1 controller +text=Untap target creature. Draw a card. +mana={1}{U} +type=Instant +[/card] +[card] name=Reforge the Soul auto=reject all(*|hand) auto=draw:7 opponent @@ -75848,6 +76667,15 @@ mana={2}{W}{W} type=Instant [/card] [card] +name=Return to the Earth +auto=choice name(artifact) destroy target(artifact|battlefield) restriction{type(artifact|battlefield)~morethan~0} +auto=choice name(enchantment) destroy target(enchantment|battlefield) restriction{type(enchantment|battlefield)~morethan~0} +auto=choice name(Creature with Flying) destroy target(creature[flying]|battlefield) restriction{type(creature[flying]|battlefield)~morethan~0} +text=Destroy target artifact, enchantment, or creature with flying. +mana={3}{G} +type=Instant +[/card] +[card] name=Returned Centaur auto=deplete:4 target(player) text=When Returned Centaur enters the battlefield, target player puts the top four cards of his or her library into his or her graveyard. @@ -77540,7 +78368,7 @@ type=Enchantment [/card] [card] name=Root Spider -auto=@combat(blocking) source(this):choice 1/0 && first strike ueot +auto=@combat(blocking) source(this):all(this) 1/0 ueot && all(this) first strike ueot text=Whenever Root Spider blocks, it gets +1/+0 and gains first strike until end of turn. mana={3}{G} type=Creature @@ -78070,18 +78898,8 @@ toughness=4 [card] name=Rumbling Crescendo auto=@each my upkeep:may counter(0/0,1,Verse) -auto=this(counter{0/0.1.Verse}=) {R}{S}:destroy target(land) -auto=this(counter{0/0.2.Verse}=) {R}{S}:destroy target(land) -auto=this(counter{0/0.3.Verse}=) {R}{S}:destroy target(land) -auto=this(counter{0/0.4.Verse}=) {R}{S}:destroy target(land) -auto=this(counter{0/0.5.Verse}=) {R}{S}:destroy target(land) -auto=this(counter{0/0.6.Verse}=) {R}{S}:destroy target(land) -auto=this(counter{0/0.7.Verse}=) {R}{S}:destroy target(land) -auto=this(counter{0/0.8.Verse}=) {R}{S}:destroy target(land) -auto=this(counter{0/0.9.Verse}=) {R}{S}:destroy target(land) -auto=this(counter{0/0.10.Verse}=) {R}{S}:destroy target(land) -auto=this(counter{0/0.11.Verse}=) {R}{S}:destroy target(land) -auto=this(counter{0/0.12.Verse}=) {R}{S}:destroy target(land) +auto=this(counter{0/0.1.Verse}<1) {R}{S}:name(do nothing) donothing +auto=this(counter{0/0.1.Verse}>0) {R}{S}:destroy target(land) text=At the beginning of your upkeep, you may put a verse counter on Rumbling Crescendo. -- {R}, Sacrifice Rumbling Crescendo: Destroy up to X target lands, where X is the number of verse counters on Rumbling Crescendo. mana={3}{R}{R} type=Enchantment @@ -78516,6 +79334,14 @@ power=2 toughness=1 [/card] [card] +name=Ruthless Instincts +auto=choice name(reach and deathtouch) target(creature[-attacking]) transforms((,newability[reach ueot],newability[deathtouch ueot],newability[untap])) ueot +auto=choice name(+2/+2 and Trample) target(creature[attacking]) transforms((,newability[2/2 ueot],newability[trample ueot])) ueot +text=Choose one: -- Target nonattacking creature gains reach and deathtouch until end of turn. Untap it. -- Target attacking creature gets +2/+2 and gains trample until end of turn. +mana={2}{G} +type=Instant +[/card] +[card] name=Ruthless Invasion auto=all(creature[-artifact]) cantblock text=({p(R)} may be paid for with either {R} or 2 life.) -- Nonartifact creatures can't block this turn. @@ -79243,6 +80069,14 @@ power=3 toughness=4 [/card] [card] +name=Sandblast +target=creature[attacking;blocking] +auto=damage:5 +text=Sandblast deals 5 damage to target attacking creature or blocking creature. +mana={2}{W} +type=Instant +[/card] +[card] name=Sands of Delirium auto={x}{T}:deplete:x target(player) text={X}, {T}: Target player puts the top X cards of his or her library into his or her graveyard. @@ -79279,6 +80113,28 @@ text=Sandsteppe Citadel enters the battlefield tapped. -- {T}: Add {W}, {B}, or type=Land [/card] [card] +name=Sandsteppe Mastodon +abilities=Reach +auto=ability$!name(Bolster) notatarget(creature[toughness=toughness:lowest:creature:mybattlefield]|mybattlefield) counter(1/1,5)!$ controller +text=When Sandsteppe Mastodon enters the battlefield Bolster 5 (Choose a creature with the least toughness or tied with the least toughness among creatures you control. Put 5 +1/+1 counters on it.) +mana={5}{G}{G} +type=Creature +subtype=Elephant +power=5 +toughness=5 +[/card] +[card] +name=Sandsteppe Outcast +auto=choice name(+1/+1 counter) counter(1/1,1) +auto=choice name(Spirit Token) token(Spirit,Creature Spirit,1/1,white,flying) +text=When Sandsteppe Outcast enters the battlefield, choose one: -- Put a +1/+1 counter on Sandsteppe Outcast. -- Put a 1/1 white Spirit creature token with flying onto the battlefield. +mana={2}{W} +type=Creature +subtype=Human Warrior +power=2 +toughness=1 +[/card] +[card] name=Sandstone Deadfall auto={T}{S(land|myBattlefield)}{S(land|myBattlefield)}{S}:destroy target(creature[attacking]) text={T}, Sacrifice two lands and Sandstone Deadfall: Destroy target attacking creature. @@ -79882,7 +80738,7 @@ type=Sorcery [card] name=Savra, Queen of the Golgari auto=@sacrificed(creature[black]|mybattlefield):may life:-2 && ability$!sacrifice notatarget(creature|mybattlefield)!$ opponent -auto=@sacrificed(creature[green]|mybattlefield):may life:2 controller +auto=@sacrificed(creature[green]|mybattlefield):name(gain life) ability$!may life:2!$ controller text=Whenever you sacrifice a black creature, you may pay 2 life. If you do, each other player sacrifices a creature. -- Whenever you sacrifice a green creature, you may gain 2 life. mana={2}{B}{G} type=Legendary Creature @@ -80919,6 +81775,14 @@ mana={2} type=Artifact [/card] [card] +name=Scroll of the Masters +auto=@movedTo(*[-creature]|mystack):counter (0/0,Lore) all(this) +auto={3}{T}:thisforeach(counter{0/0.1.Lore}) 1/1 target(creature|mybattlefield) ueot +text=Whenever you cast a noncreature spell, put a lore counter on Scroll of the Masters. -- {3}{T}: Target creature you control gets +1/+1 until end of turn for each lore counter on Scroll of the Masters. +mana={2} +type=Artifact +[/card] +[card] name=Scroll Thief auto=@combatdamaged(player) from(this):draw:1 text=Whenever Scroll Thief deals combat damage to a player, draw a card. @@ -82553,18 +83417,8 @@ subtype=Aura [card] name=Serra's Liturgy auto=@each my upkeep:may counter(0/0,1,Verse) -auto=this(counter{0/0.1.Verse}=) {W}{S}:destroy target(artifact,enchantment) -auto=this(counter{0/0.2.Verse}=) {W}{S}:destroy target(artifact,enchantment) -auto=this(counter{0/0.3.Verse}=) {W}{S}:destroy target(artifact,enchantment) -auto=this(counter{0/0.4.Verse}=) {W}{S}:destroy target(artifact,enchantment) -auto=this(counter{0/0.5.Verse}=) {W}{S}:destroy target(artifact,enchantment) -auto=this(counter{0/0.6.Verse}=) {W}{S}:destroy target(artifact,enchantment) -auto=this(counter{0/0.7.Verse}=) {W}{S}:destroy target(artifact,enchantment) -auto=this(counter{0/0.8.Verse}=) {W}{S}:destroy target(artifact,enchantment) -auto=this(counter{0/0.9.Verse}=) {W}{S}:destroy target(artifact,enchantment) -auto=this(counter{0/0.10.Verse}=) {W}{S}:destroy target(artifact,enchantment) -auto=this(counter{0/0.11.Verse}=) {W}{S}:destroy target(artifact,enchantment) -auto=this(counter{0/0.12.Verse}=) {W}{S}:destroy target(artifact,enchantment) +auto=this(counter{0/0.1.Verse}<1) {W}{S}:name(do nothing) donothing +auto=this(counter{0/0.1.Verse}>0) {W}{S}:destroy target(artifact,enchantment) text=At the beginning of your upkeep, you may put a verse counter on Serra's Liturgy. -- {W}, Sacrifice Serra's Liturgy: Destroy up to X target artifacts and/or enchantments, where X is the number of verse counters on Serra's Liturgy. mana={2}{W}{W} type=Enchantment @@ -82595,6 +83449,14 @@ power=2 toughness=2 [/card] [card] +name=Serum Powder +auto={T}:Add{1} +autohand={0}:serumpowder +text={T}: Add {1} to your mana pool. -- Any time you could mulligan and Serum Powder is in your hand, you may exile all the cards from your hand, then draw that many cards. (You can do this in addition to taking mulligans.) +mana={3} +type=Artifact +[/card] +[card] name=Serum Tank auto=counter(0/0,1,Charge) auto=@movedTo(other artifact|Battlefield):counter(0/0,1,Charge) @@ -82993,6 +83855,26 @@ power=3 toughness=2 [/card] [card] +name=Shaman of the Great Hunt +abilities=haste +auto=lord(creature|mybattlefield) transforms((,newability[@combatdamaged(player) from(this):counter(1/1.1) all(this)])) +auto={2}{GU}{GU}:foreach(creature[power>=4]|mybattlefield) draw:1 +text=Haste -- Whenever a creature you control deals combat damage to a player, put a +1/+1 counter on it. -- Ferocious ? {2}{G/U}{G/U}: Draw a card for each creature you control with power 4 or greater. +mana={3}{R} +type=Creature +subtype=Orc Shaman +power=4 +toughness=2 +[/card] +[card] +name=Shamanic Revelation +auto=draw:type:creature:mybattlefield +auto=foreach(creature[power>=4]|mybattlefield) life:4 +text=Draw a card for each creature you control. -- Ferocious ? You gain 4 life for each creature you control with power 4 or greater. +mana={3}{G}{G} +type=Sorcery +[/card] +[card] name=Shambleshark abilities=flash auto=evolve @@ -83873,6 +84755,17 @@ power=1 toughness=1 [/card] [card] +name=Shockmaw Dragon +abilities=flying +auto=@combatdamaged(opponent) from(this):all(creature|opponentbattlefield) damage:1 +text=Flying -- Whenever Shockmaw Dragon deals combat damage to a player, it deals 1 damage to each creature that player controls. +mana={4}{R}{R} +type=Creature +subtype=Dragon +power=4 +toughness=4 +[/card] +[card] name=Shore Snapper auto={U}:islandwalk text={U}: Shore Snapper gains islandwalk until end of turn. @@ -84249,6 +85142,17 @@ power=2 toughness=4 [/card] [card] +name=Shu Yun, the Silent Tempest +auto=@movedTo(*[-creature]|mystack):1/1 ueot +auto=@movedTo(*[-creature]|mystack):name(Pay {RW}{RW} for Double Strike) pay({RW}{RW}) name(double Strike) target(creature) double strike ueot +text=Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.) -- Whenever you cast a noncreature spell, you may pay Red or WhiteRed or White. If you do, target creature gains double strike until end of turn. +mana={2}{U} +type=Legendary Creature +subtype=Human Monk +power=3 +toughness=2 +[/card] +[card] name=Shuko auto={0}:equip auto=1/0 @@ -84279,6 +85183,16 @@ power=5 toughness=6 [/card] [card] +name=Sibsig Host +auto=choice all(player) deplete:3 +text=When Sibsig Host enters the battlefield, each player puts the top three cards of his or her library into his or her graveyard. +mana={4}{B} +type=Creature +subtype=Zombie +power=2 +toughness=6 +[/card] +[card] name=Sick and Tired target=<2>creature auto=-1/-1 @@ -84737,6 +85651,17 @@ power=3 toughness=3 [/card] [card] +name=Silumgar, the Drifting Death +abilities=flying,opponentshroud +auto=@combat(attacking) source(dragon|mybattlefield):all(creature|opponentbattlefield) -1/-1 ueot +text=Flying,hexproof. -- Whenever a Dragon you control attacks, creatures defending player control each get -1/-1 until end of turn. +mana={4}{U}{B} +type=Legendary Creature +subtype=Dragon +power=3 +toughness=7 +[/card] +[card] name=Silver Drake abilities=flying auto=moveTo(ownerhand) notatarget(creature[white;blue]|myBattlefield) @@ -87124,6 +88049,16 @@ text=Smoldering Crater enters the battlefield tapped. -- {T}: Add {R} to your ma type=Land [/card] [card] +name=Smoldering Efreet +auto=@movedto(this|graveyard) from(battlefield):damage:2 controller +text=When Smoldering Efreet dies, it deals 2 damage to you. +mana={1}{R} +type=Creature +subtype=Efreet Monk +power=2 +toughness=2 +[/card] +[card] name=Smoldering Spires auto=tap auto=cantblock target(creature) ueot @@ -92610,6 +93545,14 @@ mana={3}{R} type=Instant [/card] [card] +name=Sudden Reclamation +auto=deplete:4 controller +auto=transforms((,newability[ability$!notatarget(creature|mygraveyard) moveto(ownerhand)!$ controller],newability[ability$!notatarget(land|mygraveyard) moveto(ownerhand)!$ controller])) oneshot +text=Put the top four cards of your library into your graveyard, then return a creature card and a land card from your graveyard to your hand. +mana={3}{G} +type=Instant +[/card] +[card] name=Sudden Shock target=creature,player auto=damage:2 @@ -92723,6 +93666,26 @@ power=3 toughness=4 [/card] [card] +name=Sultai Runemark +target=creature +auto=2/2 +auto=aslongas(*[green;blue]|mybattlefield):teach(creature) deathtouch +text=Enchant creature. -- Enchanted creature gets +2/+2. -- Enchanted creature has deathtouch as long as you control a green or blue permanent. +mana={2}{B} +type=Enchantment +subtype=Aura +[/card] +[card] +name=Sultai Skullkeeper +auto=deplete:2 controller +text=When Sultai Skullkeeper enters the battlefield, put the top two cards of your library into your graveyard. +mana={1}{U} +type=Creature +subtype=Naga Shaman +power=2 +toughness=1 +[/card] +[card] name=Summer Bloom auto=maxPlay(land)+3 text=You may play up to three additional lands this turn. @@ -93190,6 +94153,15 @@ mana={1}{W} type=Instant [/card] [card] +name=Supplant Form +target=creature +auto=moveTo(ownerhand) +auto=clone +text=Return target creature to its owner's hand. You put a token onto the battlefield that's a copy of that creature. +mana={4}{U}{U} +type=Instant +[/card] +[card] name=Supply-Line Cranes auto=counter(1/1,1) target(creature) text=When Supply-Line Cranes enters the battlefield, put a +1/+1 counter on target creature. @@ -95593,6 +96565,15 @@ mana={3} type=Artifact [/card] [card] +name=Temur Battle Rage +target=creature +auto=double strike ueot +auto=if type(creature[power>=4]|mybattlefield)~morethan~0 then trample ueot +text=Target creature gains double strike until end of turn. (It deals both first-strike and regular combat damage.) -- Ferocious - That creature also gains trample until end of turn if you control a creature with power 4 or greater. +mana={1}{R} +type=Instant +[/card] +[card] name=Temur Charm auto=choice name(+1/+1 and fight) target(creature|mybattlefield) transforms((,newability[1/1 ueot],newability[target(creature|opponentbattlefield) dynamicability])) ueot restriction{type(creature|opponentbattlefield)~morethan~0} auto=choice name(Mana Leak) target(*|stack) transforms((,newability[pay[[{3}]] name(pay 3 mana) donothing?fizzle])) forever restriction{type(*|stack)~morethan~0} @@ -95602,6 +96583,26 @@ mana={R}{G}{U} type=Instant [/card] [card] +name=Temur Runemark +target=creature +auto=2/2 +auto=aslongas(*[blue;red]|mybattlefield):teach(creature) trample +text=Enchant creature. -- Enchanted creature gets +2/+2. -- Enchanted creature has trample as long as you control a blue or red permanent. +mana={2}{G} +type=Enchantment +subtype=Aura +[/card] +[card] +name=Temur Sabertooth +auto={H(other creature|mybattlefield)}{1}{G}:indestructible ueot +text={1}{G}: You may return another creature you control to its owner's hand. If you do, Temur Sabertooth gains indestructible until end of turn. +mana={2}{G}{G} +type=Creature +subtype=Cat +power=4 +toughness=3 +[/card] +[card] name=Tenacious Dead autograveyard=@movedto(this|mygraveyard) from(mybattlefield):all(trigger) transforms((,newability[name(Pay 1B) pay[[{1}{B}]] name(pay 1B mana) moveto(ownerbattlefield} && tap?name(cancel) donothing])) oneshot text=When Tenacious Dead dies, you may pay {1}{B}. If you do, return it to the battlefield tapped under its owner's control. @@ -97047,7 +98048,7 @@ toughness=3 name=Thraximundar abilities=haste auto=@combat(attacking) source(this):ability$!name(sacrifice) notatarget(creature|mybattlefield) sacrifice!$ opponent -auto=@sacrificed(creature):counter(1/1,1) +auto=@sacrificed(creature):name(counter +1/+1) ability$!may counter(1/1,1) all(mystored)!$ controller text=Haste -- Whenever Thraximundar attacks, defending player sacrifices a creature. -- Whenever a player sacrifices a creature, you may put a +1/+1 counter on Thraximundar. mana={4}{U}{B}{R} type=Legendary Creature @@ -98535,13 +99536,13 @@ type=Artifact [card] name=Tornado auto=cumulativeupcost[{G}] sacrifice -auto=this(counter{0/0.1.Velocity}<1) {2}{G}:destroy target(*) && all(this) counter(0/0,1,Velocity) -auto=this(counter{0/0.1.Velocity}=) {2}{G}{L:3}:destroy target(*) && all(this) counter(0/0,1,Velocity) -auto=this(counter{0/0.2.Velocity}=) {2}{G}{L:6}:destroy target(*) && all(this) counter(0/0,1,Velocity) -auto=this(counter{0/0.3.Velocity}=) {2}{G}{L:9}:destroy target(*) && all(this) counter(0/0,1,Velocity) -auto=this(counter{0/0.4.Velocity}=) {2}{G}{L:12}:destroy target(*) && all(this) counter(0/0,1,Velocity) -auto=this(counter{0/0.5.Velocity}=) {2}{G}{L:15}:destroy target(*) && all(this) counter(0/0,1,Velocity) -auto=this(counter{0/0.6.Velocity}=) {2}{G}{L:18}:destroy target(*) && all(this) counter(0/0,1,Velocity) +auto=this(counter{0/0.1.Velocity}<1) {2}{G}:destroy target(*) && all(this) counter(0/0,1,Velocity) limit:1 +auto=this(counter{0/0.1.Velocity}=) {2}{G}{L:3}:destroy target(*) && all(this) counter(0/0,1,Velocity) limit:1 +auto=this(counter{0/0.2.Velocity}=) {2}{G}{L:6}:destroy target(*) && all(this) counter(0/0,1,Velocity) limit:1 +auto=this(counter{0/0.3.Velocity}=) {2}{G}{L:9}:destroy target(*) && all(this) counter(0/0,1,Velocity) limit:1 +auto=this(counter{0/0.4.Velocity}=) {2}{G}{L:12}:destroy target(*) && all(this) counter(0/0,1,Velocity) limit:1 +auto=this(counter{0/0.5.Velocity}=) {2}{G}{L:15}:destroy target(*) && all(this) counter(0/0,1,Velocity) limit:1 +auto=this(counter{0/0.6.Velocity}=) {2}{G}{L:18}:destroy target(*) && all(this) counter(0/0,1,Velocity) limit:1 text=Cumulative upkeep {G} (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.) -- {2}{G}, Pay 3 life for each velocity counter on Tornado: Destroy target permanent and put a velocity counter on Tornado. Activate this ability only once each turn. mana={4}{G} type=Enchantment @@ -100711,6 +101712,47 @@ power=2 toughness=4 [/card] [card] +name=Ugin, the Spirit Dragon +auto=counter(0/0,7,loyalty) +auto={C(0/0,2,Loyalty)}:name(+2: damage 3) damage:3 target(creature,player) +auto={C(0/0,-0,Loyalty)}:name(X=0) moveto(exile) all(*[white;blue;black;red;green;manacost<=0]) +auto={C(0/0,-1,Loyalty)}:name(X=1) moveto(exile) all(*[white;blue;black;red;green;manacost<=1]) +auto={C(0/0,-2,Loyalty)}:name(X=2) moveto(exile) all(*[white;blue;black;red;green;manacost<=2]) +auto={C(0/0,-3,Loyalty)}:name(X=3) moveto(exile) all(*[white;blue;black;red;green;manacost<=3]) +auto={C(0/0,-4,Loyalty)}:name(X=4) moveto(exile) all(*[white;blue;black;red;green;manacost<=4]) +auto={C(0/0,-5,Loyalty)}:name(X=5) moveto(exile) all(*[white;blue;black;red;green;manacost<=5]) +auto={C(0/0,-6,Loyalty)}:name(X=6) moveto(exile) all(*[white;blue;black;red;green;manacost<=6]) +auto={C(0/0,-7,Loyalty)}:name(X=7) moveto(exile) all(*[white;blue;black;red;green;manacost<=7]) +auto={C(0/0,-8,Loyalty)}:name(X=8) moveto(exile) all(*[white;blue;black;red;green;manacost<=8]) +auto={C(0/0,-9,Loyalty)}:name(X=9) moveto(exile) all(*[white;blue;black;red;green;manacost<=9]) +auto={C(0/0,-10,Loyalty)}:name(X=10) moveto(exile) all(*[white;blue;black;red;green;manacost<=10]) +auto={C(0/0,-11,Loyalty)}:name(X=11) moveto(exile) all(*[white;blue;black;red;green;manacost<=11]) +auto={C(0/0,-12,Loyalty)}:name(X=12) moveto(exile) all(*[white;blue;black;red;green;manacost<=12]) +auto={C(0/0,-13,Loyalty)}:name(X=13) moveto(exile) all(*[white;blue;black;red;green;manacost<=13]) +auto={C(0/0,-14,Loyalty)}:name(X=14) moveto(exile) all(*[white;blue;black;red;green;manacost<=14]) +auto={C(0/0,-15,Loyalty)}:name(X=15) moveto(exile) all(*[white;blue;black;red;green;manacost<=15]) +auto={C(0/0,-16,Loyalty)}:name(X=16) moveto(exile) all(*[white;blue;black;red;green;manacost<=16]) +auto={C(0/0,-17,Loyalty)}:name(X=17) moveto(exile) all(*[white;blue;black;red;green;manacost<=17]) +auto={C(0/0,-18,Loyalty)}:name(X=18) moveto(exile) all(*[white;blue;black;red;green;manacost<=18]) +auto={C(0/0,-19,Loyalty)}:name(X=19) moveto(exile) all(*[white;blue;black;red;green;manacost<=19]) +auto={C(0/0,-20,Loyalty)}:name(X=20) moveto(exile) all(*[white;blue;black;red;green;manacost<=20]) +auto={C(0/0,-10,Loyalty)}:name(-10: Ultimate) life:7 && draw:7 && transforms((,newability[choice moveto(mybattlefield) target(*[-instant;-sorcery]|myhand)])) forever +text=+2: Ugin, the Spirit Dragon deals 3 damage to target creature or player. -- -X: Exile each permanent with converted mana cost X or less that's one or more colors. -- -10: You gain 7 life, draw seven cards, then put up to seven permanent cards from your hand onto the battlefield. +mana={8} +type=Planeswalker +subtype=Ugin +[/card] +[card] +name=Ugin's Construct +auto=sacrifice notatarget(*[white;blue;black;red;green]|myBattlefield) +text=When Ugin's Construct enters the battlefield, sacrifice a permanent that's one or more colors. +mana={4} +type=Artifact Creature +subtype=Construct +power=4 +toughness=5 +[/card] +[card] name=Uktabi Drake abilities=flying,haste auto=upcost[{1}{G}{G};next upkeep] sacrifice @@ -102150,6 +103192,15 @@ mana={1}{W}{W} type=Sorcery [/card] [card] +name=Valorous Stance +target=creature +auto=choice name(indestructible) indestructible ueot +auto=if cantargetcard(creature[power>=4]|battlefield) then choice name(Destroy) destroy +text=Choose one ? Target creature gains indestructible until end of turn. - Destroy target creature with toughness 4 or greater. +mana={1}{W} +type=Instant +[/card] +[card] name=Vampire Aristocrat auto={S(creature|myBattlefield)}:2/2 text=Sacrifice a creature: Vampire Aristocrat gets +2/+2 until end of turn. @@ -102539,6 +103590,18 @@ mana={U} type=Instant [/card] [card] +name=Vaultbreaker +other={2}{R} name(Dash) +auto=if paid(alternative) then transforms((,newability[haste],newability[phaseaction[endofturn sourceinplay] moveto(ownerhand) all(this)])) forever +auto=@combat(attacking) source(this):may name(discard and draw) reject notatarget(*|myhand) && transforms((,newability[draw:1 controller])) forever +text=Whenever Vaultbreaker attacks, you may discard a card. If you do, draw a card. -- Dash {2}{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={3}{R} +type=Creature +subtype=Orc Rogue +power=4 +toughness=2 +[/card] +[card] name=Vebulid auto=counter(1/1,1) auto=@each my upkeep:may counter(1/1,1) @@ -103812,18 +104875,8 @@ type=Instant [card] name=Vile Requiem auto=@each my upkeep:may counter(0/0,1,Verse) -auto=this(counter{0/0.1.Verse}=) {1}{B}{S}:bury target(creature[-black]) -auto=this(counter{0/0.2.Verse}=) {1}{B}{S}:bury target(creature[-black]) -auto=this(counter{0/0.3.Verse}=) {1}{B}{S}:bury target(creature[-black]) -auto=this(counter{0/0.4.Verse}=) {1}{B}{S}:bury target(creature[-black]) -auto=this(counter{0/0.5.Verse}=) {1}{B}{S}:bury target(creature[-black]) -auto=this(counter{0/0.6.Verse}=) {1}{B}{S}:bury target(creature[-black]) -auto=this(counter{0/0.7.Verse}=) {1}{B}{S}:bury target(creature[-black]) -auto=this(counter{0/0.8.Verse}=) {1}{B}{S}:bury target(creature[-black]) -auto=this(counter{0/0.9.Verse}=) {1}{B}{S}:bury target(creature[-black]) -auto=this(counter{0/0.10.Verse}=) {1}{B}{S}:bury target(creature[-black]) -auto=this(counter{0/0.11.Verse}=) {1}{B}{S}:bury target(creature[-black]) -auto=this(counter{0/0.12.Verse}=) {1}{B}{S}:bury target(creature[-black]) +auto=this(counter{0/0.1.Verse}<1) {1}{B}{S}:name(do nothing) donothing +auto=this(counter{0/0.1.Verse}>0) {1}{B}{S}:bury target(creature[-black]) text=At the beginning of your upkeep, you may put a verse counter on Vile Requiem. -- {1}{B}, Sacrifice Vile Requiem: Destroy up to X target nonblack creatures, where X is the number of verse counters on Vile Requiem. They can't be regenerated. mana={2}{B}{B} type=Enchantment @@ -105414,8 +106467,8 @@ toughness=7 name=Walking Archive abilities=defender auto=counter(1/1,1) -auto=@each my upkeep:thisforeach(counter{1/1.1}) draw:1 controller -auto=@each opponent upkeep:thisforeach(counter{1/1.1}) draw:1 opponent +auto=@each my upkeep:draw:counter{1%1} controller +auto=@each opponent upkeep:draw:counter{1%1} opponent auto={2}{W}{U}:counter(1/1,1) text=Defender (This creature can't attack.) -- Walking Archive enters the battlefield with a +1/+1 counter on it. -- At the beginning of each player's upkeep, that player draws a card for each +1/+1 counter on Walking Archive. -- {2}{W}{U}: Put a +1/+1 counter on Walking Archive. mana={3} @@ -106038,6 +107091,16 @@ power=3 toughness=3 [/card] [card] +name=Wandering Champion +auto=@combatdamaged(player) from(this) restriction{type(*[blue;red]|mybattlefield)~morethan~0}:may name(discard and draw) reject notatarget(*|myhand) && transforms((,newability[draw:1 controller])) forever +text=Whenever Wandering Champion deals combat damage to a player, if you control a blue or red permanent, you may discard a card. If you do, draw a card. +mana={1}{W} +type=Creature +subtype=Human Monk +power=3 +toughness=1 +[/card] +[card] name=Wandering Goblins auto={3}:aslongas(plains|myBattlefield]) 1/0 && aslongas(island|myBattlefield]) 1/0 && aslongas(swamp|myBattlefield]) 1/0 && aslongas(mountain|myBattlefield]) 1/0 && aslongas(forest|myBattlefield]) 1/0 text=Domain - {3}: Wandering Goblins gets +1/+0 until end of turn for each basic land type among lands you control. @@ -106177,6 +107240,14 @@ power=2 toughness=1 [/card] [card] +name=War Flare +auto=all(creature|myBattlefield) 2/1 ueot +auto=untap all(creature|myBattlefield) +text=Creatures you control get +2/+1 until end of turn. Untap those creatures. +mana={2}{R}{W} +type=Instant +[/card] +[card] name=War Mammoth abilities=trample text=Trample @@ -106319,6 +107390,18 @@ power=3 toughness=3 [/card] [card] +name=Warden of the First Tree +auto={1}{WB}:becomes(Human Warrior,3/3) forever +auto=this(cantargetcard(*[Warrior]) {2}{WB}{WB}:becomes(Human Spirit Warrior,trample,lifelink) forever ) +auto=this(cantargetcard(*[Spirit]) {3}{WB}{WB}{WB}:counter(1/1,5) +text={1}{WB}: Warden of the First Tree becomes a Human Warrior with base power and toughness 3/3. -- {2}{WB}{WB}: If Warden of the First Tree is a Warrior, it becomes a Human Spirit Warrior with trample and lifelink. -- {3}{WB}{WB}{WB}: If Warden of the First Tree is a Spirit, put five +1/+1 counters on it. +mana={G} +type=Creature +subtype=Human +power=1 +toughness=1 +[/card] +[card] name=Warden of the Wall auto=tap auto={T}:Add{1} @@ -107430,6 +108513,25 @@ power=4 toughness=2 [/card] [card] +name=Whisk Away +target=creature[attacking;blocking] +auto=moveto(ownerlibrary) +text=Put target attacking or blocking creature on top of its owner's library. +mana={2}{U} +type=Instant +[/card] +[card] +name=Whisperer of the Wilds +auto={T}:add{G} +auto=aslongas(creature[power>=4]|mybattlefield) {T}:Add{G}{G} +text={T}: Add {G} to your mana pool. Ferocious - {T}: Add {G}{G} to your mana pool. Activate this ability only if you control a creature with power 4 or greater. +mana={1}{G} +type=Creature +subtype=Human Shaman +power=0 +toughness=2 +[/card] +[card] name=Whispering Shade abilities=swampwalk auto={B}:1/1 @@ -108148,6 +109250,13 @@ mana={R} type=Sorcery [/card] [card] +name=Winds of Qal Sisma +auto=if type(creature[power>=4]|mybattlefield)~morethan~0 then preventAllCombatDamage from(creature|opponentbattlefield) ueot else preventAllcombatDamage ueot +text=Prevent all combat damage that would be dealt this turn. -- Ferocious - If you control a creature with power 4 or greater, instead prevent all combat damage that would be dealt this turn by creatures your opponents control. +mana={1}{G} +type=Instant +[/card] +[card] name=Winds of Rath auto=bury all(creature[-enchanted]) text=Destroy all creatures that aren't enchanted. They can't be regenerated. @@ -108782,7 +109891,7 @@ type=Instant [/card] [card] name=Wolf Pack -auto=@combat(blocked,turnlimited) source(this):may name(assign combat damage to defending player) thisforeach(power>=1) damage:1 opponent && fog from(this) +auto=@combat(blocked,turnlimited) source(this):may name(assign combat damage to defending player) damage:power opponent && fog from(this) text=You may have Wolf Pack assign its combat damage as though it weren't blocked. mana={6}{G}{G} type=Creature diff --git a/projects/mtg/bin/Res/sets/primitives/unsupported.txt b/projects/mtg/bin/Res/sets/primitives/unsupported.txt index 3c72654be..2700d7866 100644 --- a/projects/mtg/bin/Res/sets/primitives/unsupported.txt +++ b/projects/mtg/bin/Res/sets/primitives/unsupported.txt @@ -4149,15 +4149,6 @@ mana={U}{U} type=Sorcery [/card] [card] -name=Draining Whelk -text=Flash (You may cast this spell any time you could cast an instant.) -- Flying -- When Draining Whelk enters the battlefield, counter target spell. Put X +1/+1 counters on Draining Whelk, where X is that spell's converted mana cost. -mana={4}{U}{U} -type=Creature -subtype=Illusion -power=1 -toughness=1 -[/card] -[card] name=Drake Umbra mana={4}{U} type=Enchantment @@ -7676,12 +7667,6 @@ type=Instant text=As an additional cost to cast Induce Despair, reveal a creature card from your hand. Target creature gets -X/-X until end of turn, where X is the revealed card's converted mana cost. [/card] [card] -name=Induce Paranoia -text=Counter target spell. If {B} was spent to cast Induce Paranoia, that spell's controller puts the top X cards of his or her library into his or her graveyard, where X is the spell's converted mana cost. -mana={2}{U}{U} -type=Instant -[/card] -[card] name=Inescapable Brute text=Wither (This deals damage to creatures in the form of -1/-1 counters.) -- Inescapable Brute must be blocked if able. mana={5}{R} @@ -12877,13 +12862,6 @@ mana={R}{R} type=Enchantment [/card] [card] -name=Ral Zarek -text=+1: Tap target permanent, then untap another target permanent. -- -2: Ral Zarek deals 3 damage to target creature or player. -- -7: Flip five coins. Take an extra turn after this one for each coin that comes up heads. -mana={2}{U}{R} -type=Planeswalker -subtype=Ral -[/card] -[card] name=Raiding Party text=Raiding Party can't be the target of white spells or abilities from white sources. -- Sacrifice an Orc: Each player may tap any number of untapped white creatures he or she controls. For each creature tapped this way, that player chooses up to two Plains. Then destroy all Plains that weren't chosen this way by any player. mana={2}{R} @@ -14513,12 +14491,6 @@ mana={W} type=Enchantment [/card] [card] -name=Serum Powder -text={T}: Add {1} to your mana pool. -- Any time you could mulligan and Serum Powder is in your hand, you may exile all the cards from your hand, then draw that many cards. (You can do this in addition to taking mulligans.) -mana={3} -type=Artifact -[/card] -[card] name=Serum Visions text=Draw a card. -- Scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.) mana={U} diff --git a/projects/mtg/bin/Res/test/PTInstant.txt b/projects/mtg/bin/Res/test/PTInstant.txt new file mode 100644 index 000000000..437357e6d --- /dev/null +++ b/projects/mtg/bin/Res/test/PTInstant.txt @@ -0,0 +1,29 @@ +# BUG..cast tundra wolves with soul warden in play, kill soul warden with last gasp, you still get a life because the spell resolved +# first before Soul Warden goes to graveyard. +[INIT] +FIRSTMAIN +[PLAYER1] +hand:Tundra Wolves +manapool:{W} +inplay:Soul Warden +life:20 +[PLAYER2] +manapool:{B}{B} +hand:Last Gasp +[DO] +Tundra Wolves +no +yes +Last Gasp +Soul Warden +endinterruption +[ASSERT] +FIRSTMAIN +[PLAYER1] +graveyard:Soul Warden +inplay:Tundra Wolves +life:20 +[PLAYER2] +graveyard:Last Gasp +life:20 +[END] diff --git a/projects/mtg/bin/Res/test/Savra_Queen_of_the_Golgari.txt b/projects/mtg/bin/Res/test/Savra_Queen_of_the_Golgari.txt index 1ea05e352..0b385dca1 100644 --- a/projects/mtg/bin/Res/test/Savra_Queen_of_the_Golgari.txt +++ b/projects/mtg/bin/Res/test/Savra_Queen_of_the_Golgari.txt @@ -16,6 +16,9 @@ choice 0 choice 0 choice 0 180595 +choice 0 +180595 +choice 1 eot [ASSERT] untap diff --git a/projects/mtg/bin/Res/test/_tests.txt b/projects/mtg/bin/Res/test/_tests.txt index 0d65718ba..598704221 100644 --- a/projects/mtg/bin/Res/test/_tests.txt +++ b/projects/mtg/bin/Res/test/_tests.txt @@ -313,6 +313,7 @@ executioners_swing.txt executioners_swing2.txt executioners_swing3.txt explore.txt +exquisite_blood_i953.txt Faceless_Butcher.txt fading.txt fangren_pathcutter.txt @@ -530,6 +531,7 @@ protomatter_powder.txt prowess_of_the_fair.txt prowess_of_the_fair2.txt prowess_of_the_fair3.txt +PTInstant.txt pygmy_troll.txt pyknite_i426.txt pyroclasm.txt @@ -655,6 +657,7 @@ thallid.txt the_tabernacle_at_pendrell_vale.txt thelon_of_havenwood.txt threaten.txt +thraximundar.txt throne_of_bone.txt thunder-thrash_elder.txt tidal_warrior_i646.txt @@ -662,6 +665,8 @@ tidal_warrior_i649.txt tidal_warrior_i652.txt Timely_Reinforcements.txt titanic_ultimatum.txt +tokenizer.txt +tokenizer2.txt torture.txt tranquil_domain.txt turn_to_slag.txt diff --git a/projects/mtg/bin/Res/test/bugs/exquisite_blood_i953.txt b/projects/mtg/bin/Res/test/exquisite_blood_i953.txt similarity index 100% rename from projects/mtg/bin/Res/test/bugs/exquisite_blood_i953.txt rename to projects/mtg/bin/Res/test/exquisite_blood_i953.txt diff --git a/projects/mtg/bin/Res/test/thraximundar.txt b/projects/mtg/bin/Res/test/thraximundar.txt new file mode 100644 index 000000000..a6ad2ddf9 --- /dev/null +++ b/projects/mtg/bin/Res/test/thraximundar.txt @@ -0,0 +1,20 @@ +#Bug: thraximundar ability must resolve first... and survives +[INIT] +FIRSTMAIN +[PLAYER1] +inplay:thraximundar,bloodfire colossus +manapool:{R} +[PLAYER2] +[DO] +bloodfire colossus +choice 0 +[ASSERT] +FIRSTMAIN +[PLAYER1] +graveyard:bloodfire colossus +inplay:thraximundar +manapool:{0} +life:14 +[PLAYER2] +life:14 +[END] \ No newline at end of file diff --git a/projects/mtg/bin/Res/test/tokenizer.txt b/projects/mtg/bin/Res/test/tokenizer.txt new file mode 100644 index 000000000..96875f319 --- /dev/null +++ b/projects/mtg/bin/Res/test/tokenizer.txt @@ -0,0 +1,29 @@ +# Testing Tokenizer - Parallel Lives (ISD) 249662 +# Dragon Fodder (ALA) 174936 +# text=Put two 1/1 red Goblin creature tokens into play. +# Tokens must be 2.. since there are no tokenizer. +[INIT] +FIRSTMAIN +[PLAYER1] +hand:174936 +manapool:{R}{1} +inplay:249662 +[PLAYER2] +hand:Demystify +manapool:{W} +[DO] +174936 +no +yes +Demystify +249662 +endinterruption +[ASSERT] +FIRSTMAIN +[PLAYER1] +graveyard:249662,174936 +inplay:-174936,-174936 +[PLAYER2] +graveyard:Demystify +life:20 +[END] \ No newline at end of file diff --git a/projects/mtg/bin/Res/test/tokenizer2.txt b/projects/mtg/bin/Res/test/tokenizer2.txt new file mode 100644 index 000000000..0f413c291 --- /dev/null +++ b/projects/mtg/bin/Res/test/tokenizer2.txt @@ -0,0 +1,27 @@ +# Testing Tokenizer - Parallel Lives (ISD) 249662 +# Dragon Fodder (ALA) 174936 +# text=Put two 1/1 red Goblin creature tokens into play. +# Tokens must be 8.. since there are two tokenizer... original value +# is 2 with first tokenizer it will become 4, with the second tokenizer +# the value will be 8... +[INIT] +FIRSTMAIN +[PLAYER1] +hand:174936 +manapool:{R}{1} +inplay:249662,249662 +[PLAYER2] +inplay:plains +hand:Demystify +[DO] +174936 +[ASSERT] +FIRSTMAIN +[PLAYER1] +graveyard:174936 +inplay:249662,249662,-174936,-174936,-174936,-174936,-174936,-174936,-174936,-174936 +[PLAYER2] +hand:Demystify +inplay:plains +life:20 +[END] \ No newline at end of file diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index f39949ba0..476c670b3 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -3140,7 +3140,7 @@ public: SAFE_DELETE(NewPow); SAFE_DELETE(NewTou); } - for (int i = 0; i < multiplier->getValue(); ++i) + for (int i = 0; i < Tokenizer(); ++i) { //MTGCardInstance * myToken; if (tokenId) @@ -3199,6 +3199,23 @@ public: return 1; } + int Tokenizer()//tokenizer + { + int tokenize = 1; + if (source->controller()->game->battlefield->hasAbility(Constants::TOKENIZER)) + { + int nbcards = source->controller()->game->battlefield->nb_cards; + for (int j = 0; j < nbcards; j++) + { + if (source->controller()->game->battlefield->cards[j]->has(Constants::TOKENIZER)) + tokenize *= 2; + } + return multiplier->getValue()*tokenize; + } + else + return multiplier->getValue(); + } + void setTokenOwner() { switch(who) @@ -5540,6 +5557,17 @@ public: AAShuffle * clone() const; }; +//Mulligan +class AAMulligan: public ActivatedAbilityTP +{ +public: + AAMulligan(GameObserver* observer, int _id, MTGCardInstance * card, Targetable * _target, ManaCost * _cost = NULL, int who = + TargetChooser::UNSET); + int resolve(); + const string getMenuText(); + AAMulligan * clone() const; +}; + //Remove Mana From ManaPool class AARemoveMana: public ActivatedAbilityTP { diff --git a/projects/mtg/include/GameObserver.h b/projects/mtg/include/GameObserver.h index 5b3bfcbbe..25fcf745b 100644 --- a/projects/mtg/include/GameObserver.h +++ b/projects/mtg/include/GameObserver.h @@ -151,6 +151,7 @@ class GameObserver{ bool undo(); bool isLoading(){ return mLoading; }; void Mulligan(Player* player = NULL); + void serumMulligan(Player* player = NULL); Player* getPlayer(size_t index) { return players[index];}; bool isStarted() { return (mLayers!=NULL);}; RandomGenerator* getRandomGenerator() { return &randomGenerator; }; diff --git a/projects/mtg/include/MTGDefinitions.h b/projects/mtg/include/MTGDefinitions.h index 08667058e..1240c25ca 100644 --- a/projects/mtg/include/MTGDefinitions.h +++ b/projects/mtg/include/MTGDefinitions.h @@ -219,7 +219,8 @@ class Constants LURE = 101, NOLEGEND = 102, CANPLAYFROMGRAVEYARD = 103, - NB_BASIC_ABILITIES = 104, + TOKENIZER = 104, + NB_BASIC_ABILITIES = 105, RARITY_S = 'S', //Special Rarity diff --git a/projects/mtg/include/Player.h b/projects/mtg/include/Player.h index 099b24604..589e8766a 100644 --- a/projects/mtg/include/Player.h +++ b/projects/mtg/include/Player.h @@ -68,6 +68,8 @@ public: MTGInPlay * inPlay(); ManaPool * getManaPool(); void takeMulligan(); + void serumMulligan(); + bool DeadLifeState(); ManaCost * doesntEmpty; ManaCost * poolDoesntEmpty; void cleanupPhase(); diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index 26cd01faa..1b2612e1a 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -1359,6 +1359,13 @@ int AAFizzler::resolve() sCard = sTarget->source; if (!sCard || !sTarget || sCard->has(Constants::NOFIZZLE)) return 0; + if (source->alias == 111057 && sTarget)//Draining Whelk + { + for (int j = sTarget->cost->getConvertedCost(); j > 0; j--) + { + source->counters->addCounter(1,1); + } + } stack->Fizzle(sTarget, fizzleMode); return 1; } @@ -2482,35 +2489,49 @@ int AACloner::resolve() Player * targetPlayer = who == 1 ? source->controller()->opponent() : source->controller(); - MTGCardInstance * myClone = NEW MTGCardInstance(clone, targetPlayer->game); - targetPlayer->game->temp->addCard(myClone); + int tokenize = 1;//tokenizer support for cloning + if (targetPlayer->game->battlefield->hasAbility(Constants::TOKENIZER)) + { + int nbcards = targetPlayer->game->battlefield->nb_cards; + for (int j = 0; j < nbcards; j++) + { + if (targetPlayer->game->battlefield->cards[j]->has(Constants::TOKENIZER)) + tokenize *= 2; + } + } + + for (int i = 0; i < tokenize; ++i) + { + MTGCardInstance * myClone = NEW MTGCardInstance(clone, targetPlayer->game); + targetPlayer->game->temp->addCard(myClone); - Spell * spell = NEW Spell(game, myClone); - spell->source->isToken = 1; - spell->resolve(); - spell->source->fresh = 1; - spell->source->model = spell->source; - spell->source->model->data = spell->source; - if(_target->isToken) - { - spell->source->power = _target->origpower; - spell->source->toughness = _target->origtoughness; - spell->source->life = _target->origtoughness; + Spell * spell = NEW Spell(game, myClone); + spell->source->isToken = 1; + spell->resolve(); + spell->source->fresh = 1; + spell->source->model = spell->source; + spell->source->model->data = spell->source; + if(_target->isToken) + { + spell->source->power = _target->origpower; + spell->source->toughness = _target->origtoughness; + spell->source->life = _target->origtoughness; + } + list::iterator it; + for (it = awith.begin(); it != awith.end(); it++) + { + spell->source->basicAbilities[*it] = 1; + } + for (it = colors.begin(); it != colors.end(); it++) + { + spell->source->setColor(*it); + } + for (it = typesToAdd.begin(); it != typesToAdd.end(); it++) + { + spell->source->addType(*it); + } + delete spell; } - list::iterator it; - for (it = awith.begin(); it != awith.end(); it++) - { - spell->source->basicAbilities[*it] = 1; - } - for (it = colors.begin(); it != colors.end(); it++) - { - spell->source->setColor(*it); - } - for (it = typesToAdd.begin(); it != typesToAdd.end(); it++) - { - spell->source->addType(*it); - } - delete spell; return 1; } @@ -2941,6 +2962,32 @@ AAShuffle * AAShuffle::clone() const return NEW AAShuffle(*this); } +// Mulligan +AAMulligan::AAMulligan(GameObserver* observer, int _id, MTGCardInstance * card, Targetable * _target, ManaCost * _cost, int who) : + ActivatedAbilityTP(observer, _id, card, _target, _cost, who) +{ +} + +int AAMulligan::resolve() +{ + Player * player = getPlayerFromTarget(getTarget()); + if (player) + { + player->serumMulligan(); + } + return 1; +} + +const string AAMulligan::getMenuText() +{ + return "Mulligan"; +} + +AAMulligan * AAMulligan::clone() const +{ + return NEW AAMulligan(*this); +} + // Remove Mana From ManaPool AARemoveMana::AARemoveMana(GameObserver* observer, int _id, MTGCardInstance * card, Targetable * _target, string manaDesc, int who) : ActivatedAbilityTP(observer, _id, card, _target, NULL, who) @@ -4316,6 +4363,7 @@ int PTInstant::resolve() APowerToughnessModifier * a = ability->clone(); GenericInstantAbility * wrapper = NEW GenericInstantAbility(game, 1, source, (Damageable *) (this->target), a); wrapper->addToGame(); + ((Damageable *) (this->target))->afterDamage();//additional check the negative pt after resolving.. return 1; } const string PTInstant::getMenuText() diff --git a/projects/mtg/src/CardGui.cpp b/projects/mtg/src/CardGui.cpp index 0b5b9d44a..de5efb003 100644 --- a/projects/mtg/src/CardGui.cpp +++ b/projects/mtg/src/CardGui.cpp @@ -1242,6 +1242,9 @@ bool CardGui::FilterCard(MTGCard * _card,string filter) if (minus) { cd.setisMultiColored(-1); + cd.SetExclusionColor(0);//not multicolored is monocolored not colorless, use iscolorless attribute + cd.SetExclusionColor(6);//restriction... green, red, blue, black or white colored only + cd.mode = CardDescriptor::CD_OR; } else { diff --git a/projects/mtg/src/GameObserver.cpp b/projects/mtg/src/GameObserver.cpp index 80fb9a0f4..b82960119 100644 --- a/projects/mtg/src/GameObserver.cpp +++ b/projects/mtg/src/GameObserver.cpp @@ -727,34 +727,7 @@ void GameObserver::gameStateBasedEffects() /////////////////////////////////////////////////////////// //life checks/poison checks also checks cant win or lose.// /////////////////////////////////////////////////////////// - if (players[i]->life <= 0 || players[i]->poisonCount >= 10) - { - int cantlosers = 0; - MTGGameZone * z = players[i]->game->inPlay; - int nbcards = z->nb_cards; - for (int j = 0; j < nbcards; ++j) - { - MTGCardInstance * c = z->cards[j]; - if (c->has(Constants::CANTLOSE) || (c->has(Constants::CANTLIFELOSE) && players[i]->poisonCount < 10)) - { - cantlosers++; - } - } - MTGGameZone * k = players[i]->opponent()->game->inPlay; - int onbcards = k->nb_cards; - for (int m = 0; m < onbcards; ++m) - { - MTGCardInstance * e = k->cards[m]; - if (e->has(Constants::CANTWIN)) - { - cantlosers++; - } - } - if (cantlosers < 1) - { - setLoser(players[i]); - } - } + players[i]->DeadLifeState();//refactored } ////////////////////////////////////////////////////// //-------------card based states effects------------// @@ -1839,6 +1812,13 @@ void GameObserver::Mulligan(Player* player) player->takeMulligan(); } +void GameObserver::serumMulligan(Player* player) +{ + if(!player) player = currentPlayer; + logAction(player, "mulligan serum powder"); + player->serumMulligan(); +} + Player* GameObserver::createPlayer(const string& playerMode #ifdef TESTSUITE , TestSuiteGame* testgame diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index a4ad3f5e2..e8d6c34ed 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -2532,6 +2532,16 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG return a; } + //Serum Powder + found = s.find("serumpowder"); + if (found != string::npos) + { + Targetable * t = spell? spell->getNextTarget() : NULL; + MTGAbility * a = NEW AAMulligan(observer, id, card, t, NULL, who); + a->oneShot = 1; + return a; + } + //Remove Mana from ManaPool vector splitRemove = parseBetween(s, "removemana(", ")"); if (splitRemove.size()) @@ -4942,6 +4952,39 @@ int TriggeredAbility::receiveEvent(WEvent * e) resolve(); return 1; } + if(dynamic_cast(e)) + { + //sacrificed event + //thraximundar vs bloodfore collosus, thraximundar + //must be able to survive a sacrificed bloodfire collosus, + //same with mortician beetle vs phyrexian denouncer test + resolve(); + return 1; + } + if(dynamic_cast(e)) + { + //check life state on life triger + WEventLife * lifecheck = dynamic_cast(e); + if (lifecheck->player->DeadLifeState()) + { + return 0; + } + fireAbility(); + return 1; + } + if(dynamic_cast(e)) + { + //check life state on damage trigger + WEventDamage * lifecheck = dynamic_cast(e); + if (lifecheck->damage->target->type_as_damageable == Damageable::DAMAGEABLE_PLAYER) + { + Player * triggerPlayer = (Player *) lifecheck->damage->target; + if(triggerPlayer->DeadLifeState()) + return 0; + } + fireAbility(); + return 1; + } WEventZoneChange * stackCheck = dynamic_cast(e); if(stackCheck && (stackCheck->to == game->currentPlayer->game->stack||stackCheck->to == game->currentPlayer->opponent()->game->stack)) { diff --git a/projects/mtg/src/MTGDefinitions.cpp b/projects/mtg/src/MTGDefinitions.cpp index 3161c3749..952f0be75 100644 --- a/projects/mtg/src/MTGDefinitions.cpp +++ b/projects/mtg/src/MTGDefinitions.cpp @@ -132,7 +132,8 @@ const char* Constants::MTGBasicAbilities[] = { "soulbond", "lure", "nolegend", - "canplayfromgraveyard" + "canplayfromgraveyard", + "tokenizer"//parallel lives }; map Constants::MTGBasicAbilitiesMap; diff --git a/projects/mtg/src/Player.cpp b/projects/mtg/src/Player.cpp index 2792c5a11..2003d0b83 100644 --- a/projects/mtg/src/Player.cpp +++ b/projects/mtg/src/Player.cpp @@ -217,6 +217,56 @@ void Player::takeMulligan() //Draw hand with 1 less card penalty //almhum } +void Player::serumMulligan() +{ + MTGPlayerCards * currentPlayerZones = game; + int cardsinhand = currentPlayerZones->hand->nb_cards; + for (int i = 0; i < cardsinhand; i++) //Exile + currentPlayerZones->putInZone(currentPlayerZones->hand->cards[0], + currentPlayerZones->hand, + currentPlayerZones->exile); + + currentPlayerZones->library->shuffle(); //Shuffle + + for (int i = 0; i < (cardsinhand); i++) + game->drawFromLibrary(); + //Draw hand no penalty +} + +bool Player::DeadLifeState() +{ + if ((life <= 0)||(poisonCount >= 10)) + { + int cantlosers = 0; + MTGGameZone * z = game->inPlay; + int nbcards = z->nb_cards; + for (int j = 0; j < nbcards; ++j) + { + MTGCardInstance * c = z->cards[j]; + if (c->has(Constants::CANTLOSE) || (c->has(Constants::CANTLIFELOSE) && poisonCount < 10)) + { + cantlosers++; + } + } + MTGGameZone * k = opponent()->game->inPlay; + int onbcards = k->nb_cards; + for (int m = 0; m < onbcards; ++m) + { + MTGCardInstance * e = k->cards[m]; + if (e->has(Constants::CANTWIN)) + { + cantlosers++; + } + } + if (cantlosers < 1) + { + getObserver()->setLoser(this); + return true; + } + } + return false; +} + //Cleanup phase at the end of a turn void Player::cleanupPhase() { diff --git a/projects/mtg/src/TargetChooser.cpp b/projects/mtg/src/TargetChooser.cpp index e69f29702..fd12b317a 100644 --- a/projects/mtg/src/TargetChooser.cpp +++ b/projects/mtg/src/TargetChooser.cpp @@ -503,6 +503,9 @@ TargetChooser * TargetChooserFactory::createTargetChooser(string s, MTGCardInsta if (minus) { cd->setisMultiColored(-1); + cd->SetExclusionColor(0);//not multicolored is monocolored not colorless, use iscolorless attribute + cd->SetExclusionColor(6);//restriction... green, red, blue, black or white colored only + cd->mode = CardDescriptor::CD_OR; } else {