Merge branch 'WagicProject:master' into circleci-project-setup

This commit is contained in:
Eduardo MG
2023-05-07 10:31:16 -06:00
committed by GitHub
34 changed files with 4860 additions and 1619 deletions
@@ -110,6 +110,7 @@ public class SDLActivity extends Activity implements OnKeyListener {
public static final String kSaveDataPathPreference = "StorageDataLocation"; public static final String kSaveDataPathPreference = "StorageDataLocation";
public static final String kWagicDataStorageOptionsKey = "dataStorageOptions"; public static final String kWagicDataStorageOptionsKey = "dataStorageOptions";
public static final int kStorageDataOptionsMenuId = 2000; public static final int kStorageDataOptionsMenuId = 2000;
public static final int kdownloadResOptionsMenuId = 4000;
public static final int kOtherOptionsMenuId = 3000; public static final int kOtherOptionsMenuId = 3000;
static { static {
@@ -170,6 +171,7 @@ public class SDLActivity extends Activity implements OnKeyListener {
MenuItem downloader; MenuItem downloader;
MenuItem about; MenuItem about;
MenuItem storage; MenuItem storage;
MenuItem resource;
// Handler for the messages // Handler for the messages
Handler commandHandler = new Handler() { Handler commandHandler = new Handler() {
@@ -951,6 +953,9 @@ public class SDLActivity extends Activity implements OnKeyListener {
about = menu.add(Menu.NONE, 4, 4, "About"); about = menu.add(Menu.NONE, 4, 4, "About");
storage = settingsMenu.add(kStorageDataOptionsMenuId, storage = settingsMenu.add(kStorageDataOptionsMenuId,
kStorageDataOptionsMenuId, Menu.NONE, "Storage Data Options"); kStorageDataOptionsMenuId, Menu.NONE, "Storage Data Options");
resource = settingsMenu.add(kdownloadResOptionsMenuId,
kdownloadResOptionsMenuId, Menu.NONE, "Download Core & Quit");
} }
@Override @Override
@@ -966,6 +971,10 @@ public class SDLActivity extends Activity implements OnKeyListener {
if (itemId == kStorageDataOptionsMenuId) { if (itemId == kStorageDataOptionsMenuId) {
displayStorageOptions(); displayStorageOptions();
} else if (itemId == kdownloadResOptionsMenuId) {
File oldRes = new File(getSystemStorageLocation() + RES_FILENAME);
oldRes.delete();
startDownload();
} else if (itemId == 2) { } else if (itemId == 2) {
importDeckOptions(); importDeckOptions();
} else if (itemId == 3) { } else if (itemId == 3) {
@@ -1000,7 +1009,7 @@ public class SDLActivity extends Activity implements OnKeyListener {
public void showSettingsSubMenu() { public void showSettingsSubMenu() {
AlertDialog.Builder builder = new AlertDialog.Builder(this); AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Settings Menu"); builder.setTitle("Settings Menu");
String[] choices = { "Storage Data Options" }; String[] choices = { "Storage Data Options", "Download Core & Quit" };
builder.setItems(choices, builder.setItems(choices,
new DialogInterface.OnClickListener() { new DialogInterface.OnClickListener() {
@Override @Override
@@ -1009,6 +1018,9 @@ public class SDLActivity extends Activity implements OnKeyListener {
case 0: case 0:
onOptionsItemSelected(storage); onOptionsItemSelected(storage);
break; break;
case 1:
onOptionsItemSelected(resource);
break;
} }
} }
}); });
@@ -1122,13 +1134,41 @@ public class SDLActivity extends Activity implements OnKeyListener {
prepareOptionMenu(null); prepareOptionMenu(null);
} }
public void forceResDownload(final File oldRes) {
AlertDialog.Builder resChooser = new AlertDialog.Builder(this);
final SDLActivity parent = this;
resChooser.setTitle("Do you want to download latest core file?");
resChooser.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
FrameLayout _videoLayout = new FrameLayout(parent);
setContentView(_videoLayout,
new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
oldRes.delete();
startDownload();
}
});
resChooser.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
mainDisplay();
}
});
resChooser.create().show();
}
public void initializeGame() { public void initializeGame() {
String coreFileLocation = getSystemStorageLocation() + RES_FILENAME; String coreFileLocation = getSystemStorageLocation() + RES_FILENAME;
File file = new File(coreFileLocation); File file = new File(coreFileLocation);
if (file.exists()) { if (file.exists()) {
mainDisplay(); forceResDownload(file);
} else { } else {
FrameLayout _videoLayout = new FrameLayout(this); FrameLayout _videoLayout = new FrameLayout(this);
setContentView(_videoLayout, setContentView(_videoLayout,
+4 -7
View File
@@ -54829,6 +54829,10 @@ AFR;null;https://cards.scryfall.io/large/front/1/a/1accce8c-7ca4-4cc5-bd8a-26b19
AFR;null;https://cards.scryfall.io/large/front/f/3/f3febf51-6f40-478c-8b71-c529be420ff7.jpg AFR;null;https://cards.scryfall.io/large/front/f/3/f3febf51-6f40-478c-8b71-c529be420ff7.jpg
AFR;null;https://cards.scryfall.io/large/front/c/1/c13045ec-27e4-497a-bbc4-134cf46b7b89.jpg AFR;null;https://cards.scryfall.io/large/front/c/1/c13045ec-27e4-497a-bbc4-134cf46b7b89.jpg
AFR;null;https://cards.scryfall.io/large/front/e/a/ea414698-5f87-461b-b1b2-b317b929280f.jpg AFR;null;https://cards.scryfall.io/large/front/e/a/ea414698-5f87-461b-b1b2-b317b929280f.jpg
CLB;57018400t;https://cards.scryfall.io/large/back/2/c/2c65185b-6cf0-451d-985e-56aa45d9a57d.jpg
CLB;57018401t;https://cards.scryfall.io/large/front/2/c/2c65185b-6cf0-451d-985e-56aa45d9a57d.jpg
CLB;57018400;https://cards.scryfall.io/large/back/2/c/2c65185b-6cf0-451d-985e-56aa45d9a57d.jpg
CLB;57018401;https://cards.scryfall.io/large/front/2/c/2c65185b-6cf0-451d-985e-56aa45d9a57d.jpg
CLB;570184;https://cards.scryfall.io/large/front/2/5/25564fba-5765-457b-8dd3-f26b877221b8.jpg CLB;570184;https://cards.scryfall.io/large/front/2/5/25564fba-5765-457b-8dd3-f26b877221b8.jpg
CLB;562885;https://cards.scryfall.io/large/front/3/9/396f9198-67b6-45d8-91b4-dc853bff9623.jpg CLB;562885;https://cards.scryfall.io/large/front/3/9/396f9198-67b6-45d8-91b4-dc853bff9623.jpg
CLB;562886;https://cards.scryfall.io/large/front/4/2/421395b1-2694-42fd-bb90-0007e78adefc.jpg CLB;562886;https://cards.scryfall.io/large/front/4/2/421395b1-2694-42fd-bb90-0007e78adefc.jpg
@@ -65837,7 +65841,6 @@ MOC;612494;https://cards.scryfall.io/large/front/d/5/d560c996-ef80-4117-8642-a63
MOC;612495;https://cards.scryfall.io/large/front/7/1/7165a9ac-3f44-4d14-93bb-d4d4970ab41b.jpg MOC;612495;https://cards.scryfall.io/large/front/7/1/7165a9ac-3f44-4d14-93bb-d4d4970ab41b.jpg
MOC;612496;https://cards.scryfall.io/large/front/3/2/323c8de1-f09b-45c5-8942-81cb3a09c803.jpg MOC;612496;https://cards.scryfall.io/large/front/3/2/323c8de1-f09b-45c5-8942-81cb3a09c803.jpg
MOC;612497;https://cards.scryfall.io/large/front/4/6/4676c019-886c-4b0d-9849-c044c0e03da3.jpg MOC;612497;https://cards.scryfall.io/large/front/4/6/4676c019-886c-4b0d-9849-c044c0e03da3.jpg
MOC;612497;https://cards.scryfall.io/large/front/4/6/4676c019-886c-4b0d-9849-c044c0e03da3.jpg
MOC;612498;https://cards.scryfall.io/large/front/5/4/5446e1ba-c745-45b2-ad05-b22abf04daec.jpg MOC;612498;https://cards.scryfall.io/large/front/5/4/5446e1ba-c745-45b2-ad05-b22abf04daec.jpg
MOC;612499;https://cards.scryfall.io/large/front/b/7/b7bb405a-3643-4b3a-95d2-ea7ac9c6a2ff.jpg MOC;612499;https://cards.scryfall.io/large/front/b/7/b7bb405a-3643-4b3a-95d2-ea7ac9c6a2ff.jpg
MOC;612500;https://cards.scryfall.io/large/front/7/e/7e7d463b-e74e-4ebe-9f92-02ccdeadbf96.jpg MOC;612500;https://cards.scryfall.io/large/front/7/e/7e7d463b-e74e-4ebe-9f92-02ccdeadbf96.jpg
@@ -65847,11 +65850,9 @@ MOC;612503;https://cards.scryfall.io/large/front/e/6/e60aaa4e-267c-4909-8abe-414
MOC;612504;https://cards.scryfall.io/large/front/f/c/fce002dc-5fb5-465b-935e-042121f1119d.jpg MOC;612504;https://cards.scryfall.io/large/front/f/c/fce002dc-5fb5-465b-935e-042121f1119d.jpg
MOC;612505;https://cards.scryfall.io/large/front/f/a/fad2b56b-bedf-4d8e-8e0c-733946e0731b.jpg MOC;612505;https://cards.scryfall.io/large/front/f/a/fad2b56b-bedf-4d8e-8e0c-733946e0731b.jpg
MOC;612506;https://cards.scryfall.io/large/front/8/0/80fffad3-2486-4350-8dff-54a215ebfc28.jpg MOC;612506;https://cards.scryfall.io/large/front/8/0/80fffad3-2486-4350-8dff-54a215ebfc28.jpg
MOC;612506;https://cards.scryfall.io/large/front/8/0/80fffad3-2486-4350-8dff-54a215ebfc28.jpg
MOC;612507;https://cards.scryfall.io/large/front/2/2/221c82a2-b558-4c3a-b7ad-4452ef8e9067.jpg MOC;612507;https://cards.scryfall.io/large/front/2/2/221c82a2-b558-4c3a-b7ad-4452ef8e9067.jpg
MOC;612508;https://cards.scryfall.io/large/front/3/6/36b1e963-9b8c-4103-abbc-580866f144e7.jpg MOC;612508;https://cards.scryfall.io/large/front/3/6/36b1e963-9b8c-4103-abbc-580866f144e7.jpg
MOC;612509;https://cards.scryfall.io/large/front/8/4/84c63c27-6095-4fbc-9064-0ef602e1ced8.jpg MOC;612509;https://cards.scryfall.io/large/front/8/4/84c63c27-6095-4fbc-9064-0ef602e1ced8.jpg
MOC;612509;https://cards.scryfall.io/large/front/8/4/84c63c27-6095-4fbc-9064-0ef602e1ced8.jpg
MOC;612510;https://cards.scryfall.io/large/front/2/8/281ad1ca-307b-4382-865a-bd2c16ca608f.jpg MOC;612510;https://cards.scryfall.io/large/front/2/8/281ad1ca-307b-4382-865a-bd2c16ca608f.jpg
MOC;612511;https://cards.scryfall.io/large/front/8/6/86f6f3e9-b594-49da-b0af-75a672590da1.jpg MOC;612511;https://cards.scryfall.io/large/front/8/6/86f6f3e9-b594-49da-b0af-75a672590da1.jpg
MOC;612512;https://cards.scryfall.io/large/front/4/3/43752240-10b1-4920-bb89-e4a4a1e78219.jpg MOC;612512;https://cards.scryfall.io/large/front/4/3/43752240-10b1-4920-bb89-e4a4a1e78219.jpg
@@ -65859,7 +65860,6 @@ MOC;612513;https://cards.scryfall.io/large/front/a/9/a9861fb3-6722-43b8-bf0a-af6
MOC;612514;https://cards.scryfall.io/large/front/0/9/09bb74d7-dd61-4cce-b88c-ee4d656a97f4.jpg MOC;612514;https://cards.scryfall.io/large/front/0/9/09bb74d7-dd61-4cce-b88c-ee4d656a97f4.jpg
MOC;612515;https://cards.scryfall.io/large/front/b/4/b40aa855-bfa9-4dc8-ab9e-b78385185b81.jpg MOC;612515;https://cards.scryfall.io/large/front/b/4/b40aa855-bfa9-4dc8-ab9e-b78385185b81.jpg
MOC;612516;https://cards.scryfall.io/large/front/1/c/1cd477f5-53e9-446a-b717-5796d87672ba.jpg MOC;612516;https://cards.scryfall.io/large/front/1/c/1cd477f5-53e9-446a-b717-5796d87672ba.jpg
MOC;612516;https://cards.scryfall.io/large/front/1/c/1cd477f5-53e9-446a-b717-5796d87672ba.jpg
MOC;612517;https://cards.scryfall.io/large/front/0/3/03f16bbd-00d6-43ed-9a11-ebe7fc65933a.jpg MOC;612517;https://cards.scryfall.io/large/front/0/3/03f16bbd-00d6-43ed-9a11-ebe7fc65933a.jpg
MOC;612518;https://cards.scryfall.io/large/front/5/4/54b5c19e-f50a-4cd1-bf42-e545da7a6b0f.jpg MOC;612518;https://cards.scryfall.io/large/front/5/4/54b5c19e-f50a-4cd1-bf42-e545da7a6b0f.jpg
MOC;612519;https://cards.scryfall.io/large/front/3/1/31825ceb-d795-4ad7-81d8-77ab34c272f9.jpg MOC;612519;https://cards.scryfall.io/large/front/3/1/31825ceb-d795-4ad7-81d8-77ab34c272f9.jpg
@@ -65920,7 +65920,6 @@ MOC;612573;https://cards.scryfall.io/large/front/c/0/c0ee001b-6ddb-478e-a407-58b
MOC;612574;https://cards.scryfall.io/large/front/a/9/a9c61721-3f80-44e6-8a75-08ff609e4470.jpg MOC;612574;https://cards.scryfall.io/large/front/a/9/a9c61721-3f80-44e6-8a75-08ff609e4470.jpg
MOC;612575;https://cards.scryfall.io/large/front/f/4/f402e6d9-8c72-4b31-bec5-4a1b3ffb39ae.jpg MOC;612575;https://cards.scryfall.io/large/front/f/4/f402e6d9-8c72-4b31-bec5-4a1b3ffb39ae.jpg
MOC;612576;https://cards.scryfall.io/large/front/8/2/82202ac9-7281-4d12-af4e-a8147cc38296.jpg MOC;612576;https://cards.scryfall.io/large/front/8/2/82202ac9-7281-4d12-af4e-a8147cc38296.jpg
MOC;612576;https://cards.scryfall.io/large/front/8/2/82202ac9-7281-4d12-af4e-a8147cc38296.jpg
MOC;612577;https://cards.scryfall.io/large/front/2/9/29ab3610-342d-4a67-9be8-a7efb89a4b46.jpg MOC;612577;https://cards.scryfall.io/large/front/2/9/29ab3610-342d-4a67-9be8-a7efb89a4b46.jpg
MOC;612578;https://cards.scryfall.io/large/front/9/f/9f299f1e-2694-44e6-aad4-1f29c2ee5553.jpg MOC;612578;https://cards.scryfall.io/large/front/9/f/9f299f1e-2694-44e6-aad4-1f29c2ee5553.jpg
MOC;612579;https://cards.scryfall.io/large/front/1/4/1438d850-1e08-4d75-a79c-d6a4738d5a67.jpg MOC;612579;https://cards.scryfall.io/large/front/1/4/1438d850-1e08-4d75-a79c-d6a4738d5a67.jpg
@@ -65932,12 +65931,10 @@ MOC;612584;https://cards.scryfall.io/large/front/e/8/e8c8f35e-faa8-4537-b320-c84
MOC;612585;https://cards.scryfall.io/large/front/9/d/9dbb8991-1b2c-4045-be1f-54286027d4a1.jpg MOC;612585;https://cards.scryfall.io/large/front/9/d/9dbb8991-1b2c-4045-be1f-54286027d4a1.jpg
MOC;612586;https://cards.scryfall.io/large/front/7/6/76f344e7-a3a9-44e1-832b-f51dd4ad02f2.jpg MOC;612586;https://cards.scryfall.io/large/front/7/6/76f344e7-a3a9-44e1-832b-f51dd4ad02f2.jpg
MOC;612587;https://cards.scryfall.io/large/front/b/f/bf909dbb-6e49-4556-a37a-2738889915d1.jpg MOC;612587;https://cards.scryfall.io/large/front/b/f/bf909dbb-6e49-4556-a37a-2738889915d1.jpg
MOC;612587;https://cards.scryfall.io/large/front/b/f/bf909dbb-6e49-4556-a37a-2738889915d1.jpg
MOC;612588;https://cards.scryfall.io/large/front/1/c/1cd2026d-140c-4ad2-8589-9e5e7c23f207.jpg MOC;612588;https://cards.scryfall.io/large/front/1/c/1cd2026d-140c-4ad2-8589-9e5e7c23f207.jpg
MOC;612589;https://cards.scryfall.io/large/front/b/8/b8a702e4-0d5c-428b-b490-64fe6701f6d4.jpg MOC;612589;https://cards.scryfall.io/large/front/b/8/b8a702e4-0d5c-428b-b490-64fe6701f6d4.jpg
MOC;612590;https://cards.scryfall.io/large/front/1/d/1dea34d8-c68f-41b5-8476-fd6128d69576.jpg MOC;612590;https://cards.scryfall.io/large/front/1/d/1dea34d8-c68f-41b5-8476-fd6128d69576.jpg
MOC;612591;https://cards.scryfall.io/large/front/e/0/e01cc65a-0e38-4f41-b9ed-796ef0355d0b.jpg MOC;612591;https://cards.scryfall.io/large/front/e/0/e01cc65a-0e38-4f41-b9ed-796ef0355d0b.jpg
MOC;612591;https://cards.scryfall.io/large/front/e/0/e01cc65a-0e38-4f41-b9ed-796ef0355d0b.jpg
MOC;612592;https://cards.scryfall.io/large/front/9/0/90e72f86-9f09-40af-838c-3d344c50f607.jpg MOC;612592;https://cards.scryfall.io/large/front/9/0/90e72f86-9f09-40af-838c-3d344c50f607.jpg
MOC;612593;https://cards.scryfall.io/large/front/4/1/414a25b5-2b4f-4935-8564-4b507db12dbc.jpg MOC;612593;https://cards.scryfall.io/large/front/4/1/414a25b5-2b4f-4935-8564-4b507db12dbc.jpg
MOC;612594;https://cards.scryfall.io/large/front/f/9/f9c55add-d621-4477-95ec-f2b691c0bdae.jpg MOC;612594;https://cards.scryfall.io/large/front/f/9/f9c55add-d621-4477-95ec-f2b691c0bdae.jpg
Can't render this file because it is too large.
+79 -91
View File
@@ -1,93 +1,81 @@
#NAME:Golgari ramp #NAME:Belbe Commander 2023
#DESC:The first Commander Format Deck #DESC:Deck by apparently (tappedout.net)
#DESC:Refined for Wagic by Bob
#HINT:castpriority(commander,*) #HINT:castpriority(commander,*)
Mardu Shadowspear (*) *1 Ancient Stone Idol
Night Market Lookout (*) *1 Apex Devastator
Pulse Tracker (*) *1 Archetype of Endurance
Thornbow Archer (*) *1 Artisan of Kozilek
Vicious Conquistador (*) *1 Bane of Bala Ged
Archers' Parapet (*) *1 Beacon of Unrest
Shepherd of Rot (*) *1 Bellowing Tanglewurm
Loyal Subordinate (*) *1 Cabal Conditioning
Crypt Ghast (*) *1 Caller of the Pack
Rankle, Master of Pranks (*) *1 Colossus of Akros
Spawn of Mayhem (*) *1 Command Tower
Twilight Prophet (*) *1 Conduit of Ruin
Conduit of Ruin (*) *1 Copper Myr
Duplicant (*) *1 Court of Ambition
Oblivion Sower (*) *1 Cultivate
Wurmcoil Engine (*) *1 Dread Defiler
World Breaker (*) *1 Eldrazi Conscription
Platinum Emperion (*) *1 Exsanguinate
Apex Devastator (*) *1 Farseek
Blightsteel Colossus (*) *1 Fierce Empath
Ugin, the Ineffable (*) *1 Forest (4ED) *4
Malakir Rebirth (*) *1 Forest (NEO) *4
Nature's Claim (*) *1 Forest (ONE) *4
Veil of Summer (*) *1 Forest (SNC) *4
Vicious Rumors (*) *1 Garruk's Uprising
Worldly Tutor (*) *1 Gilanra, Caller of Wirewood
Assassin's Trophy (*) *1 God-Pharaoh's Statue
Damnable Pact (*) *1 Grave Betrayal
Demonic Tutor (*) *1 Helm of the Host
Exsanguinate (*) *1 Hooded Blightfang
Farseek (*) *1 Horizon Stone
Heroic Intervention (*) *1 In Garruk's Wake
Rampant Growth (*) *1 Josu Vess, Lich Knight
Three Visits (*) *1 Kodama's Reach (CMD)
Torment of Hailfire (*) *1 Leaden Myr
Agadeem's Awakening (*) *1 Leechridden Swamp
Barrier Breach (*) *1 Lim-Dul's Hex
Beast Within (*) *1 Loxodon Warhammer (10E)
Cultivate (*) *1 Loyal Subordinate
Grim Tutor (*) *1 Mardu Shadowspear
Kodama's Reach (*) *1 Mirror Shield
Toxic Deluge (*) *1 Night Market Lookout
Skyshroud Claim (*) *1 Oblivion Sower
Return of the Wildspeaker (*) *1 Pathrazer of Ulamog
Beseech the Queen (*) *1 Phyrexian Juggernaut
Turntimber Symbiosis (*) *1 Phyrexian Triniform
Decree of Pain (*) *1 Plague Spitter
In Garruk's Wake (*) *1 Planar Bridge
Sol Ring (*) *1 Platinum Emperion
Arcane Signet (*) *1 Polyraptor
Lightning Greaves (*) *1 Pulse Tracker
Swiftfoot Boots (*) *1 Rampant Growth
Talisman of Resilience (*) *1 Return of the Wildspeaker
Thought Vessel (*) *1 Sanctum of Stone Fangs
God-Pharaoh's Statue (*) *1 Sandstone Oracle
Staff of Nin (*) *1 Sandwurm Convergence
The Immortal Sun (*) *1 Skull Storm
Ward of Bones (*) *1 Skyclave Relic
Cryptolith Rite (*) *1 Sol Ring
Sanctum of Stone Fangs (*) *1 Staff of Nin
Phyrexian Arena (*) *1 Swamp (ONE) *4
Retreat to Hagra (*) *1 Swamp (NEO) *4
Court of Ambition (*) *1 Swamp (SNC) *4
Eldrazi Conscription (*) *1 Swamp (4ED) *3
Sandwurm Convergence (*) *1 The Immortal Sun
Ancient Tomb (*) *1 Thornbow Archer
Blast Zone (*) *1 Thought Vessel
Bojuka Bog (*) *1 Three Visits
Cabal Coffers (*) *1 Thunderfoot Baloth
Castle Garenbrig (*) *1 Torment of Hailfire
Castle Locthwain (*) *1 Ulamog's Crusher
Command Tower (*) *1 Undergrowth Stadium
Crawling Barrens (*) *1 Urborg, Tomb of Yawgmoth
Forest (*) *7 Vicious Conquistador
Leechridden Swamp (*) *1 Yavimaya, Cradle of Growth
Llanowar Wastes (*) *1 Zendikar Resurgent
Nurturing Peatland (*) *1
Overgrown Tomb (*) *1
Phyrexian Tower (*) *1
Prismatic Vista (*) *1
Reliquary Tower (*) *1
Sanctum of Ugin (*) *1
Swamp (*) *5
Twilight Mire (*) *1
Undergrowth Stadium (*) *1
Urborg, Tomb of Yawgmoth (*) *1
Verdant Catacombs (*) *1
War Room (*) *1
Woodland Cemetery (*) *1
#CMD:Belbe, Corrupted Observer (*) *1 #CMD:Belbe, Corrupted Observer (*) *1
@@ -1,4 +1,203 @@
[card] [card]
name=Volo, Itinerant Scholar
abilities=backgroundpartner
text=When Volo enters the battlefield, create Volo's Journal, a legendary colorless artifact token with hexproof and "Whenever you cast a creature spell, note one of its creature types that hasn't been noted for this artifact." -- {2}, {T}: Draw a card for each creature type noted for target permanent you control named Volo's Journal. -- Choose a Background
mana={2}{U}
type=Legendary Creature
subtype=Human Wizard
power=2
toughness=3
[/card]
[card]
name=Raggadragga, Goreguts Boss
text=Each creature you control with a mana ability gets +2/+2. -- Whenever a creature you control with a mana ability attacks, untap it. -- Whenever you cast a spell, if at least seven mana was spent to cast it, untap target creature. It gets +7/+7 and gains trample until end of turn.
mana={2}{R}{G}
type=Legendary Creature
subtype=Human Boar
power=4
toughness=4
[/card]
[card]
name=Lae'zel, Vlaakith's Champion
abilities=backgroundpartner
text=If you would put one or more counters on a creature or planeswalker you control or on yourself, put that many plus one of each of those kinds of counters on that permanent or player instead. -- Choose a Background (You can have a Background as a second commander.)
mana={2}{W}
type=Legendary Creature
subtype=Gith Warrior
power=3
toughness=3
[/card]
[card]
name=Lae'zel's Acrobatics
text=Exile all nontoken creatures you control, then roll a d20. -- 1-9 | Return those cards to the battlefield under their owner's control at the beginning of the next end step. -- 10-20 | Return those cards to the battlefield under their owner's control, then exile them again. Return those cards to the battlefield under their owner's control at the beginning of the next end step.
mana={3}{W}
type=Instant
[/card]
[card]
name=Noble Heritage
text=Commander creatures you own have "When this creature enters the battlefield and at the beginning of your upkeep, each player may put two +1/+1 counters on a creature they control. For each opponent who does, you gain protection from that player until your next turn." (You can't be targeted, dealt damage, or enchanted by anything controlled by that player.)
mana={1}{W}
type=Legendary Enchantment
subtype=Background
[/card]
[card]
name=Archivist of Oghma
abilities=flash
text=Flash -- Whenever an opponent searches their library, you gain 1 life and draw a card.
mana={1}{W}
type=Creature
subtype=Halfling Cleric
power=2
toughness=2
[/card]
[card]
name=Fraying Line
text=When Fraying Line enters the battlefield, put a rope counter on target creature you control. -- At the beginning of each player's upkeep, that player may pay {2}. If they do, they put a rope counter on a creature they control. Otherwise, exile Fraying Line and each creature without a rope counter on it, then remove all rope counters from all creatures.
mana={4}
type=Artifact
[/card]
[card]
name=Lae'zel's Acrobatics
text=Exile all nontoken creatures you control, then roll a d20. -- 1-9 | Return those cards to the battlefield under their owner's control at the beginning of the next end step. -- 10-20 | Return those cards to the battlefield under their owner's control, then exile them again. Return those cards to the battlefield under their owner's control at the beginning of the next end step.
mana={3}{W}
type=Instant
[/card]
[card]
name=Green Slime
abilities=flash
text=Flash -- When Green Slime enters the battlefield, counter target activated or triggered ability from an artifact or enchantment source. If a permanent's ability is countered this way, destroy that permanent. -- Foretell {G} (During your turn, you may pay {2} and exile this card from your hand face down. Cast it on a later turn for its foretell cost.)
mana={2}{G}
type=Creature
subtype=Ooze
power=2
toughness=2
[/card]
[card]
name=Aboleth Spawn
abilities=flash
auto=_WARD_(2)
text=Flash -- Ward {2} -- Probing Telepathy - Whenever a creature entering the battlefield under an opponent's control causes a triggered ability of that creature to trigger, you may copy that ability. You may choose new targets for the copy.
mana={2}{U}
type=Creature
subtype=Fish Horror
power=2
toughness=3
[/card]
[card]
name=Stick Together
text=Each player chooses a party from among creatures they control, then sacrifices the rest. (To choose a party, choose up to one each of Cleric, Rogue, Warrior, and Wizard.)
mana={3}{W}{W}
type=Sorcery
[/card]
[card]
name=Mighty Servant of Leuk-o
abilities=trample
text=Trample -- Ward-Discard a card. -- Whenever Mighty Servant of Leuk-o becomes crewed for the first time each turn, if it was crewed by exactly two creatures, it gains "Whenever this creature deals combat damage to a player, draw two cards" until end of turn. -- Crew 4
mana={3}
type=Artifact
subtype=Vehicle
power=6
toughness=6
[/card]
[card]
name=Grell Philosopher
text=Aberrant Tinkering - When Grell Philosopher enters the battlefield and at the beginning of your upkeep, each Horror you control gains all activated abilities of target artifact an opponent controls until end of turn. You may spend blue mana as though it were mana of any color to activate those abilities.
mana={2}{U}
type=Creature
subtype=Horror Wizard
power=1
toughness=4
[/card]
[card]
name=Wyll's Reversal
target=*|stack
text=Choose target spell or ability with one or more targets. Roll a d20 and add the greatest power among creatures you control. -- 1-14 | You may choose new targets for that spell or ability. -- 15+ | You may choose new targets for that spell or ability. Then copy it. You may choose new targets for the copy.
mana={2}{R}
type=Instant
[/card]
[card]
name=Mighty Servant of Leuk-o
abilities=trample
text=Trample -- Ward-Discard a card. -- Whenever Mighty Servant of Leuk-o becomes crewed for the first time each turn, if it was crewed by exactly two creatures, it gains "Whenever this creature deals combat damage to a player, draw two cards" until end of turn. -- Crew 4
mana={3}
type=Artifact
subtype=Vehicle
power=6
toughness=6
[/card]
[card]
name=Fraying Line
text=When Fraying Line enters the battlefield, put a rope counter on target creature you control. -- At the beginning of each player's upkeep, that player may pay {2}. If they do, they put a rope counter on a creature they control. Otherwise, exile Fraying Line and each creature without a rope counter on it, then remove all rope counters from all creatures.
mana={4}
type=Artifact
[/card]
[card]
name=Lae'zel, Vlaakith's Champion
abilities=backgroundpartner
text=If you would put one or more counters on a creature or planeswalker you control or on yourself, put that many plus one of each of those kinds of counters on that permanent or player instead. -- Choose a Background (You can have a Background as a second commander.)
mana={2}{W}
type=Legendary Creature
subtype=Gith Warrior
power=3
toughness=3
[/card]
[card]
name=Volo, Itinerant Scholar
abilities=backgroundpartner
text=When Volo enters the battlefield, create Volo's Journal, a legendary colorless artifact token with hexproof and "Whenever you cast a creature spell, note one of its creature types that hasn't been noted for this artifact." -- {2}, {T}: Draw a card for each creature type noted for target permanent you control named Volo's Journal. -- Choose a Background
mana={2}{U}
type=Legendary Creature
subtype=Human Wizard
power=2
toughness=3
[/card]
[card]
name=Archivist of Oghma
abilities=flash
text=Flash -- Whenever an opponent searches their library, you gain 1 life and draw a card.
mana={1}{W}
type=Creature
subtype=Halfling Cleric
power=2
toughness=2
[/card]
[card]
name=Aboleth Spawn
abilities=flash
auto=_WARD_(2)
text=Flash -- Ward {2} -- Probing Telepathy - Whenever a creature entering the battlefield under an opponent's control causes a triggered ability of that creature to trigger, you may copy that ability. You may choose new targets for the copy.
mana={2}{U}
type=Creature
subtype=Fish Horror
power=2
toughness=3
[/card]
[card]
name=Stick Together
text=Each player chooses a party from among creatures they control, then sacrifices the rest. (To choose a party, choose up to one each of Cleric, Rogue, Warrior, and Wizard.)
mana={3}{W}{W}
type=Sorcery
[/card]
[card]
name=Grell Philosopher
text=Aberrant Tinkering - When Grell Philosopher enters the battlefield and at the beginning of your upkeep, each Horror you control gains all activated abilities of target artifact an opponent controls until end of turn. You may spend blue mana as though it were mana of any color to activate those abilities.
mana={2}{U}
type=Creature
subtype=Horror Wizard
power=1
toughness=4
[/card]
[card]
name=Green Slime
abilities=flash
text=Flash -- When Green Slime enters the battlefield, counter target activated or triggered ability from an artifact or enchantment source. If a permanent's ability is countered this way, destroy that permanent. -- Foretell {G} (During your turn, you may pay {2} and exile this card from your hand face down. Cast it on a later turn for its foretell cost.)
mana={2}{G}
type=Creature
subtype=Ooze
power=2
toughness=2
[/card]
[card]
name=Bloodthirsty Blade name=Bloodthirsty Blade
auto=teach(creature) 2/0 auto=teach(creature) 2/0
auto=teach(creature) mustattack auto=teach(creature) mustattack
@@ -17,6 +216,32 @@ power=0
toughness=4 toughness=4
[/card] [/card]
[card] [card]
name=Wyll's Reversal
target=*|stack
text=Choose target spell or ability with one or more targets. Roll a d20 and add the greatest power among creatures you control. -- 1-14 | You may choose new targets for that spell or ability. -- 15+ | You may choose new targets for that spell or ability. Then copy it. You may choose new targets for the copy.
mana={2}{R}
type=Instant
[/card]
[card]
name=Dynaheir, Invoker Adept
abilities=haste
text=Haste -- You may activate abilities of other creatures you control as though those creatures had haste. -- {T}: When you next activate an ability that isn't a mana ability this turn by spending four or more mana to activate it, copy that ability. You may choose new targets for the copy.
mana={1}{U}{R}{W}
type=Legendary Creature
subtype=Human Wizard
power=4
toughness=4
[/card]
[card]
name=Jon Irenicus, Shattered One
text=At the beginning of your end step, target opponent gains control of up to one target creature you control. Put two +1/+1 counters on it and tap it. It's goaded for the rest of the game and it gains "This creature can't be sacrificed." (It attacks each combat if able and attacks a player other than you if able.) -- Whenever a creature you own but don't control attacks, you draw a card.
mana={2}{U}{B}
type=Legendary Creature
subtype=Elf Wizard
power=3
toughness=3
[/card]
[card]
name=Valiant Changeling name=Valiant Changeling
abilities=changeling,double strike abilities=changeling,double strike
text=This spell costs {1} less to cast for each creature type among creatures you control. This effect can't reduce the amount of mana this spell costs by more than {5}. -- Changeling (This card is every creature type.) -- Double strike text=This spell costs {1} less to cast for each creature type among creatures you control. This effect can't reduce the amount of mana this spell costs by more than {5}. -- Changeling (This card is every creature type.) -- Double strike
@@ -26,3 +251,31 @@ subtype=Shapeshifter
power=3 power=3
toughness=3 toughness=3
[/card] [/card]
[card]
name=Raggadragga, Goreguts Boss
text=Each creature you control with a mana ability gets +2/+2. -- Whenever a creature you control with a mana ability attacks, untap it. -- Whenever you cast a spell, if at least seven mana was spent to cast it, untap target creature. It gets +7/+7 and gains trample until end of turn.
mana={2}{R}{G}
type=Legendary Creature
subtype=Human Boar
power=4
toughness=4
[/card]
[card]
name=Dynaheir, Invoker Adept
abilities=haste
text=Haste -- You may activate abilities of other creatures you control as though those creatures had haste. -- {T}: When you next activate an ability that isn't a mana ability this turn by spending four or more mana to activate it, copy that ability. You may choose new targets for the copy.
mana={1}{U}{R}{W}
type=Legendary Creature
subtype=Human Wizard
power=4
toughness=4
[/card]
[card]
name=Jon Irenicus, Shattered One
text=At the beginning of your end step, target opponent gains control of up to one target creature you control. Put two +1/+1 counters on it and tap it. It's goaded for the rest of the game and it gains "This creature can't be sacrificed." (It attacks each combat if able and attacks a player other than you if able.) -- Whenever a creature you own but don't control attacks, you draw a card.
mana={2}{U}{B}
type=Legendary Creature
subtype=Elf Wizard
power=3
toughness=3
[/card]
@@ -17,13 +17,6 @@ mana={3}
type=Artifact type=Artifact
[/card] [/card]
[card] [card]
name=Lightning Reflexes
text=You may cast Lightning Reflexes as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant creature -- Enchanted creature gets +1/+0 and has first strike.
mana={1}{R}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Crawlspace name=Crawlspace
text=No more than two creatures can attack you each combat. text=No more than two creatures can attack you each combat.
mana={3} mana={3}
@@ -44,15 +44,6 @@ power=6
toughness=6 toughness=6
[/card] [/card]
[card] [card]
name=Umori, the Collector
text=Companion - Each nonland card in your starting deck shares a card type. (If this card is your chosen companion, you may cast it once from outside the game.) -- As Umori, the CollectorUmori, the Collector enters the battlefield, choose a card type. -- Spells you cast of the chosen type cost 1 less to cast.
mana={2}{BG}{BG}
type=Legendary Creature
subtype=Ooze
power=4
toughness=5
[/card]
[card]
name=Zirda, the Dawnwaker name=Zirda, the Dawnwaker
text=Companion - Each permanent card in your starting deck has an activated ability. (If this card is your chosen companion, you may cast it once from outside the game.) -- Abilities you activate that aren't mana abilities cost {2} less to activate. This effect can't reduce the mana in that cost to less than one mana. -- {1}, {T}: Target creature can't block this turn. text=Companion - Each permanent card in your starting deck has an activated ability. (If this card is your chosen companion, you may cast it once from outside the game.) -- Abilities you activate that aren't mana abilities cost {2} less to activate. This effect can't reduce the mana in that cost to less than one mana. -- {1}, {T}: Target creature can't block this turn.
mana={1}{RW}{RW} mana={1}{RW}{RW}
@@ -68,13 +68,6 @@ mana={1}{U}
type=Instant type=Instant
[/card] [/card]
[card] [card]
name=Lightning Reflexes
text=You may cast Lightning Reflexes as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant creature -- Enchanted creature gets +1/+0 and has first strike.
mana={1}{R}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Energy Vortex name=Energy Vortex
text=As Energy Vortex enters the battlefield, choose an opponent. -- At the beginning of your upkeep, remove all energy counters from Energy Vortex. -- At the beginning of the chosen player's upkeep, Energy Vortex deals 3 damage to that player unless he or she pays {1} for each energy counter on Energy Vortex. -- {X}: Put X energy counters on Energy Vortex. Activate this ability only during your upkeep. text=As Energy Vortex enters the battlefield, choose an opponent. -- At the beginning of your upkeep, remove all energy counters from Energy Vortex. -- At the beginning of the chosen player's upkeep, Energy Vortex deals 3 damage to that player unless he or she pays {1} for each energy counter on Energy Vortex. -- {X}: Put X energy counters on Energy Vortex. Activate this ability only during your upkeep.
mana={3}{U}{U} mana={3}{U}{U}
@@ -111,13 +104,6 @@ mana={4}
type=Artifact type=Artifact
[/card] [/card]
[card] [card]
name=Soar
text=You may cast Soar as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant creature -- Enchanted creature gets +0/+1 and has flying.
mana={1}{U}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Celestial Dawn name=Celestial Dawn
text=Lands you control are Plains. -- Nonland cards you own that aren't on the battlefield, spells you control, and nonland permanents you control are white. -- You may spend white mana as though it were mana of any color. You may spend other mana only as though it were colorless mana. text=Lands you control are Plains. -- Nonland cards you own that aren't on the battlefield, spells you control, and nonland permanents you control are white. -- You may spend white mana as though it were mana of any color. You may spend other mana only as though it were colorless mana.
mana={1}{W}{W} mana={1}{W}{W}
@@ -139,13 +125,6 @@ power=1
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Armor of Thorns
text=You may cast Armor of Thorns as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant nonblack creature -- Enchanted creature gets +2/+2.
mana={1}{G}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Mangara's Tome name=Mangara's Tome
text=When Mangara's Tome enters the battlefield, search your library for five cards, exile them in a face-down pile, and shuffle that pile. Then shuffle your library. -- {2}: The next time you would draw a card this turn, instead put the top card of the exiled pile into its owner's hand. text=When Mangara's Tome enters the battlefield, search your library for five cards, exile them in a face-down pile, and shuffle that pile. Then shuffle your library. -- {2}: The next time you would draw a card this turn, instead put the top card of the exiled pile into its owner's hand.
mana={5} mana={5}
@@ -158,13 +137,6 @@ mana={1}{G}{G}
type=World Enchantment type=World Enchantment
[/card] [/card]
[card] [card]
name=Grave Servitude
text=You may cast Grave Servitude as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant creature -- Enchanted creature gets +3/-1 and is black.
mana={1}{B}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Noble Elephant name=Noble Elephant
abilities=trample,banding abilities=trample,banding
text=Trample; banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) text=Trample; banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
@@ -70,12 +70,3 @@ subtype=Elemental Horror
power=3 power=3
toughness=5 toughness=5
[/card] [/card]
[card]
name=Umori, the Collector
text=Companion - Each nonland card in your starting deck shares a card type. (If this card is your chosen companion, you may cast it once from outside the game.) -- As Umori, the CollectorUmori, the Collector enters the battlefield, choose a card type. -- Spells you cast of the chosen type cost 1 less to cast.
mana={2}{BG}{BG}
type=Legendary Creature
subtype=Ooze
power=4
toughness=5
[/card]
@@ -15,13 +15,6 @@ power=2
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Mystic Veil
text=You may cast Mystic Veil as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant creature -- Enchanted creature has shroud. (It can't be the target of spells or abilities.)
mana={1}{U}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Three Wishes name=Three Wishes
text=Exile the top three cards of your library face down. You may look at those cards for as long as they remain exiled. Until your next turn, you may play those cards. At the beginning of your next upkeep, put any of those cards you didn't play into your graveyard. text=Exile the top three cards of your library face down. You may look at those cards for as long as they remain exiled. Until your next turn, you may play those cards. At the beginning of your next upkeep, put any of those cards you didn't play into your graveyard.
mana={1}{U}{U} mana={1}{U}{U}
@@ -62,13 +55,6 @@ mana={2}{W}
type=Enchantment type=Enchantment
[/card] [/card]
[card] [card]
name=Spider Climb
text=You may cast Spider Climb as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant creature -- Enchanted creature gets +0/+3 and has reach. (It can block creatures with flying.)
mana={G}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Honorable Passage name=Honorable Passage
text=The next time a source of your choice would deal damage to target creature or player this turn, prevent that damage. If damage from a red source is prevented this way, Honorable Passage deals that much damage to the source's controller. text=The next time a source of your choice would deal damage to target creature or player this turn, prevent that damage. If damage from a red source is prevented this way, Honorable Passage deals that much damage to the source's controller.
mana={1}{W} mana={1}{W}
@@ -100,19 +86,6 @@ mana={3}{R}
type=World Enchantment type=World Enchantment
[/card] [/card]
[card] [card]
name=Parapet
text=You may cast Parapet as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Creatures you control get +0/+1.
mana={1}{W}
type=Enchantment
[/card]
[card]
name=Relic Ward
text=You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant artifact -- Enchanted artifact has shroud. (It can't be the target of spells or abilities.)
mana={1}{W}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Desolation name=Desolation
text=At the beginning of each end step, each player who tapped a land for mana this turn sacrifices a land. If a Plains is sacrificed this way, Desolation deals 2 damage to that Plains's controller. text=At the beginning of each end step, each player who tapped a land for mana this turn sacrifices a land. If a Plains is sacrificed this way, Desolation deals 2 damage to that Plains's controller.
mana={1}{B}{B} mana={1}{B}{B}
@@ -1,11 +1,4 @@
[card] [card]
name=Armor of Thorns
text=You may cast Armor of Thorns as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant nonblack creature -- Enchanted creature gets +2/+2.
mana={1}{G}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Magister of Worth name=Magister of Worth
abilities=flying abilities=flying
text=Flying -- Will of the council - When Magister of Worth enters the battlefield, starting with you, each player votes for grace or condemnation. If grace gets more votes, each player returns each creature card from his or her graveyard to the battlefield. If condemnation gets more votes or the vote is tied, destroy all creatures other than Magister of Worth. text=Flying -- Will of the council - When Magister of Worth enters the battlefield, starting with you, each player votes for grace or condemnation. If grace gets more votes, each player returns each creature card from his or her graveyard to the battlefield. If condemnation gets more votes or the vote is tied, destroy all creatures other than Magister of Worth.
@@ -1,7 +1,6 @@
Primal Command Primal Command
Rowan Kenrith Rowan Kenrith
Kitsune Ace Kitsune Ace
Professional Face-Breaker
Pyre-Sledge Arsonist Pyre-Sledge Arsonist
Sokenzan Smelter Sokenzan Smelter
Hotshot Mechanic Hotshot Mechanic
@@ -138,7 +137,6 @@ Venser, Corpse Puppet
Slobad, Iron Goblin Slobad, Iron Goblin
Solphim, Mayhem Dominus Solphim, Mayhem Dominus
Capricious Hellraiser Capricious Hellraiser
Tyrranax Rex
Phyrexian Vindicator Phyrexian Vindicator
Skrelv, Defector Mite Skrelv, Defector Mite
Drivnod, Carnage Dominus Drivnod, Carnage Dominus
@@ -155,7 +153,6 @@ Tamiyo's Logbook
Maze's Mantle Maze's Mantle
Lattice-Blade Mantis Lattice-Blade Mantis
Noxious Assault Noxious Assault
Paladin of Predation
Plague Nurse Plague Nurse
Porcelain Zealot Porcelain Zealot
Vanish into Eternity Vanish into Eternity
@@ -202,7 +199,6 @@ Anoint with Affliction
Hall of the Bandit Lord Hall of the Bandit Lord
Boseiju, Who Shelters All Boseiju, Who Shelters All
Chief Engineer Chief Engineer
Oracle's Vault
Conqueror's Flail Conqueror's Flail
Cryptic Spires Cryptic Spires
Thromok the Insatiable Thromok the Insatiable
@@ -223,57 +219,40 @@ Unite the Coalition
Verrak, Warped Sengir Verrak, Warped Sengir
Gerrard's Hourglass Pendant Gerrard's Hourglass Pendant
The Mana Rig The Mana Rig
Shalai and Hallar
Saint Traft and Rem Karolus Saint Traft and Rem Karolus
Rashmi and Ragavan Rashmi and Ragavan
Moira and Teshar
Elenda and Azor Elenda and Azor
Firemane Commando
Elspeth's Talent Elspeth's Talent
Infernal Sovereign
Teferi's Talent Teferi's Talent
Rowan's Talent Rowan's Talent
Liliana's Talent Liliana's Talent
Begin the Invasion Begin the Invasion
Vivien's Talent Vivien's Talent
Sidar Jabari of Zhalfir
Kasla, the Broken Halo Kasla, the Broken Halo
Gimbal, Gremlin Prodigy Gimbal, Gremlin Prodigy
Brimaz, Blight of Oreskos Brimaz, Blight of Oreskos
Bright-Palm, Soul Awakener Bright-Palm, Soul Awakener
Ichor Elixir Ichor Elixir
Bitterthorn, Nissa's Animus
Wildfire Awakener Wildfire Awakener
Vodalian Wave-Knight
Mistmeadow Vanisher
Flockchaser Phantom Flockchaser Phantom
Cutthroat Negotiator Cutthroat Negotiator
Sandsteppe War Riders Sandsteppe War Riders
Path of the Animist Path of the Animist
Emergent Woodwurm Emergent Woodwurm
Exsanguinator Cavalry
Conclave Sledge-Captain Conclave Sledge-Captain
Uncivil Unrest Uncivil Unrest
Path of the Pyromancer Path of the Pyromancer
Pain Distributor
Mirror-Style Master Mirror-Style Master
Hedron Detonator
Death-Greeter's Champion
Dance with Calamity Dance with Calamity
Path of the Schemer Path of the Schemer
Locthwain Lancer
Guardian Scalelord Guardian Scalelord
Filigree Vector
Blight Titan Blight Titan
Schema Thief
Path of the Enigma Path of the Enigma
Herald of Hoofbeats
Deluxe Dragster Deluxe Dragster
Foulmire Knight Foulmire Knight
Wand of the Worldsoul Wand of the Worldsoul
Vulpine Harvester Vulpine Harvester
Path of the Ghosthunter Path of the Ghosthunter
Nesting Dovehawk
Stensia Stensia
Krosa Krosa
Sokenzan Sokenzan
@@ -296,13 +275,7 @@ Murderous Rider
The Caldaia The Caldaia
Enigma Ridges Enigma Ridges
Esper Esper
Slimefoot and Squee
Katilda and Lier
Goro-Goro and Satoru
Excise the Imperfect Excise the Imperfect
Darksteel Splicer
Conjurer's Mantle
Chivalric Alliance
Wear Wear
Struggle Struggle
Heaven Heaven
@@ -355,9 +328,6 @@ Invasion of Dominaria
Borborygmos and Fblthp Borborygmos and Fblthp
Baral and Kari Zev Baral and Kari Zev
Invasion of Theros Invasion of Theros
Surrak and Goreclaw
Pile On
Orthion, Hero of Lavabrink
Zurgo and Ojutai Zurgo and Ojutai
Sandstalker Moloch Sandstalker Moloch
Zimone and Dina Zimone and Dina
@@ -368,21 +338,15 @@ Hoarding Broodlord
Seed of Hope Seed of Hope
Enduring Bondwarden Enduring Bondwarden
Invasion of Fiora Invasion of Fiora
Axgard Artisan
Terror of Towashi
Invasion of Eldraine Invasion of Eldraine
Tangled Skyline Tangled Skyline
Seer of Stolen Sight Seer of Stolen Sight
Elesh Norn Elesh Norn
Ichor Shade Ichor Shade
Injector Crocodile Injector Crocodile
Zephyr Winder
Referee Squad Referee Squad
Invasion of Innistrad Invasion of Innistrad
Interdisciplinary Mascot
Vengeant Earth
Seedpod Caretaker Seedpod Caretaker
Phyrexian Pegasus
Essence of Orthodoxy Essence of Orthodoxy
Invasion of Ravnica Invasion of Ravnica
Overgrown Pest Overgrown Pest
@@ -393,7 +357,6 @@ Kogla and Yidaro
Ozolith, the Shattered Spire Ozolith, the Shattered Spire
Attentive Skywarden Attentive Skywarden
Gift of Compleation Gift of Compleation
Angelic Intervention
Flitting Guerrilla Flitting Guerrilla
Urabrask Urabrask
Invasion of Ikoria Invasion of Ikoria
@@ -406,7 +369,6 @@ Invasion of Shandalar
Rona, Herald of Invasion Rona, Herald of Invasion
Jin-Gitaxias Jin-Gitaxias
Invasion of Belenon Invasion of Belenon
Fertilid's Favor
Wicked Slumber Wicked Slumber
Doomskar Warrior Doomskar Warrior
Deeproot Wayfinder Deeproot Wayfinder
@@ -421,7 +383,6 @@ Converter Beast
Realmbreaker, the Invasion Tree Realmbreaker, the Invasion Tree
Searing Barb Searing Barb
Voldaren Thrillseeker Voldaren Thrillseeker
Volcanic Spite
Nahiri's Warcrafting Nahiri's Warcrafting
Sculpted Perfection Sculpted Perfection
Scrappy Bruiser Scrappy Bruiser
@@ -553,212 +514,9 @@ Tear Asunder
Rona's Vortex Rona's Vortex
The Weatherseed Treaty The Weatherseed Treaty
The World Spell The World Spell
Sailors' Bane
Sea Hag // Aquatic Ingress
Sapphire Dragon // Psionic Pulse
Shameless Charlatan
Sword Coast Sailor
Stunning Strike
Tomb of Horrors Adventurer
Sword Coast Serpent // Capsizing Wave
Vhal, Candlekeep Researcher
Volo, Itinerant Scholar
Young Blue Dragon // Sand Augury
Agent of the Iron Throne
Altar of Bhaal // Bone Offering
Agent of the Shadow Thieves
Ancient Brass Dragon
Astarion's Thirst
Passionate Archaeologist
Undercellar Sweep
White Plume Adventurer
Zevlor, Elturel Exile
Veteran Soldier
Rilsa Rael, Kingpin
Windshaper Planetar
Raggadragga, Goreguts Boss
Aarakocra Sneak
Durnan of the Yawning Portal
Bane's Contingency
Candlekeep Sage
Candlekeep Inspiration
Stonespeaker Crystal
Cone of Cold
Dungeon Delver
Feywild Caretaker
Feywild Visitor
Gale's Redirection
Illithid Harvester // Plant Tadpoles
Imoen, Mystic Trickster
Lapis Orb of Dragonkind
Moonshae Pixie // Pixie Dust
Modify Memory
Firkraag, Cunning Instigator
Flaming Fist
Far Traveler
Goliath Paladin
Guardian Naga // Banishing Coils
Horn of Valhalla // Ysgard's Call
Lae'zel, Vlaakith's Champion
Inspiring Leader
Legion Loyalty
Lae'zel's Acrobatics
Noble Heritage
Pegasus Guardian // Rescue the Foal
Neera, Wild Mage
Nine-Fingers Keene
Minthara, Merciless Soul
Myrkul, Lord of Bones
Recruitment Drive
Mazzy, Truesword Paladin
Rasaad yn Bashir
Lozhan, Dragons' Legacy
Sculpted Sunburst
Clan Crafter
Folk Hero
Baeloth Barrityl, Entertainer
Haunted One
Zellix, Sanity Flayer
Archivist of Oghma
Dungeoneer's Pack
Fraying Line
Dusk Mangler Dusk Mangler
Call to the Void
Elder Brain
Caves of Chaos Adventurer
Intellect Devourer
Pact Weapon
Ravenloft Adventurer
Balor
Storm King's Thunder
Wand of Wonder
Captain N'ghathrod
Passageway Seer
Sarevok, Deathbringer
Safana, Calimport Cutthroat
Scion of Halaster
Sigil of Myrkul
Sivriss, Nightmare Speaker
Topaz Dragon // Entropic Cloud
Vicious Battlerager
Underdark Explorer
Amethyst Dragon // Explosive Crystal
Bloodboil Sorcerer
Carnelian Orb of Dragonkind
Dragon Cultist
Fang Dragon // Forktail Sweep
Gnoll War Band
Guild Artisan
Inspired Tinkering
Trailblazer's Torch
Green Slime
Spectacular Showdown
Vexing Puzzlebox
Venture Forth
Tlincalli Hunter // Retrieve Prey
Journey to the Lost City
Gond Gate
Sarevok's Tome
Multiclass Baldric
Criminal Past
Cloudkill
Cultist of the Absolute
Gray Slaad // Entropic Decay
Ghost Lantern // Bind Spirit
Hezrou // Demonic Stench
Guildsworn Prowler
Myrkul's Edict
Nothic
Nefarious Imp
Nautiloid Ship
Deep Gnome Terramancer
Harper Recruiter
Seasoned Dungeoneer
Lantern of Revealing
Iron Mastiff
Astral Dragon
Aboleth Spawn
Stick Together
Marut
Psionic Ritual
Mocking Doppelganger
Mighty Servant of Leuk-o
Grell Philosopher
Endless Evil
Mirror of Life Trapping
Brainstealer Dragon
Navigation Orb
Solemn Doomguide
From the Catacombs
Death Kiss
Bothersome Quasit
Rug of Smothering
Nalfeshnee
Loot Dispute
Delayed Blast Fireball
Tasha, the Witch Queen
Minsc & Boo, Timeless Heroes
Elminster
Faceless One
Battle Angels of Tyr
Undermountain Adventurer
Abdel Adrian, Gorion's Ward
Owlbear Cub
Majestic Genesis
Barroom Brawl
Earthquake Dragon
Wrathful Red Dragon
Wyll's Reversal
Ellyn Harbreeze, Busybody
Astral Confrontation
Banishment
Artificer Class
Livaan, Cultist of Tiamat
Popular Entertainer
Stirring Bard
Swashbuckler Extraordinaire
Street Urchin
Tavern Brawler
Thunderwave
Two-Handed Axe // Sweeping Cleave
Wild Magic Surge
Wyll, Blade of Frontiers
Young Red Dragon // Bathe in Gold
Ambitious Dragonborn
Acolyte of Bahamut
Avenging Hunter
Alaundo the Seer
Baba Lysaga, Night Witch
Bhaal, Lord of Murder
Bane, Lord of Darkness
Commander Liara Portyr
Mage's Attendant Mage's Attendant
Dynaheir, Invoker Adept
Gorion, Wise Mentor
Gluntch, the Bestower
Kagha, Shadow Archdruid
Jon Irenicus, Shattered One
Rumor Gatherer Rumor Gatherer
Cloakwood Hermit
Colossal Badger // Dig Deep
Dread Linnorm // Scale Deflection
Druid of the Emerald Grove
Druidic Ritual
Emerald Dragon // Dissonant Wave
Explore the Underdark
Ettercap // Web Shot
Jade Orb of Dragonkind
Hardy Outlander
Master Chef
Monster Manual // Zoological Study
Overwhelming Encounter
Raised by Giants
Scaled Nurturer
Skanos Dragonheart
Split the Spoils
Contraband Livestock
Blessed Hippogriff // Tyr's Blessing
Crystal Dragon // Rob the Hoard
Induced Amnesia Induced Amnesia
Naban, Dean of Iteration Naban, Dean of Iteration
Goblin Bangchuckers Goblin Bangchuckers
@@ -1169,7 +927,6 @@ Arbalest Engineers
Hulking Metamorph Hulking Metamorph
The Temporal Anchor The Temporal Anchor
Urza's Command Urza's Command
Rootwire Amalgam
Gix's Caress Gix's Caress
Legions to Ashes Legions to Ashes
Mishra, Tamer of Mak Fawa Mishra, Tamer of Mak Fawa
@@ -1197,7 +954,6 @@ Gwenna, Eyes of Gaea
Overwhelming Remorse Overwhelming Remorse
Urza's Sylex Urza's Sylex
Mishra's Research Desk Mishra's Research Desk
Steel Seraph
Hurkyl, Master Wizard Hurkyl, Master Wizard
Forging the Anchor Forging the Anchor
Involuntary Cooldown Involuntary Cooldown
@@ -1235,7 +991,6 @@ Tower Worker
Thran Power Suit Thran Power Suit
Thran Spider Thran Spider
Symmetry Matrix Symmetry Matrix
Titania, Voice of Gaea
Mishra, Claimed by Gix Mishra, Claimed by Gix
The Mightstone and Weakstone The Mightstone and Weakstone
Recommission Recommission
+10
View File
@@ -5,6 +5,16 @@ year=2022-06-10
total=849 total=849
[/meta] [/meta]
[card] [card]
primitive=Undercity
id=57018400
rarity=T
[/card]
[card]
primitive=The Initiative
id=57018401
rarity=T
[/card]
[card]
primitive=Faceless One primitive=Faceless One
id=570184 id=570184
rarity=S rarity=S
+7 -37
View File
@@ -2,7 +2,7 @@
author=Wagic Team author=Wagic Team
name=March of the Machine Commander name=March of the Machine Commander
year=2023-04-21 year=2023-04-21
total=457 total=451
[/meta] [/meta]
[card] [card]
primitive=Bright-Palm, Soul Awakener primitive=Bright-Palm, Soul Awakener
@@ -1245,16 +1245,11 @@ id=612496
rarity=C rarity=C
[/card] [/card]
[card] [card]
primitive=Foulmire Knight primitive=Foulmire Knight // Profane Insight
id=612497 id=612497
rarity=U rarity=U
[/card] [/card]
[card] [card]
primitive=Profane Insight
id=612497
rarity=T
[/card]
[card]
primitive=Go for the Throat primitive=Go for the Throat
id=612498 id=612498
rarity=U rarity=U
@@ -1295,16 +1290,11 @@ id=612505
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Murderous Rider primitive=Murderous Rider // Swift End
id=612506 id=612506
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Swift End
id=612506
rarity=T
[/card]
[card]
primitive=Night's Whisper primitive=Night's Whisper
id=612507 id=612507
rarity=C rarity=C
@@ -1355,16 +1345,11 @@ id=612515
rarity=C rarity=C
[/card] [/card]
[card] [card]
primitive=Smitten Swordmaster primitive=Smitten Swordmaster // Curry Favor
id=612516 id=612516
rarity=C rarity=C
[/card] [/card]
[card] [card]
primitive=Curry Favor
id=612516
rarity=T
[/card]
[card]
primitive=Syr Konrad, the Grim primitive=Syr Konrad, the Grim
id=612517 id=612517
rarity=U rarity=U
@@ -1660,16 +1645,11 @@ id=612575
rarity=U rarity=U
[/card] [/card]
[card] [card]
primitive=Heaven primitive=Heaven // Earth
id=612576 id=612576
rarity=R rarity=R
[/card] [/card]
[card] [card]
primitive=Earth
id=612576
rarity=T
[/card]
[card]
primitive=Improbable Alliance primitive=Improbable Alliance
id=612577 id=612577
rarity=U rarity=U
@@ -1720,16 +1700,11 @@ id=612586
rarity=U rarity=U
[/card] [/card]
[card] [card]
primitive=Struggle primitive=Struggle // Survive
id=612587 id=612587
rarity=U rarity=U
[/card] [/card]
[card] [card]
primitive=Survive
id=612587
rarity=T
[/card]
[card]
primitive=Time Wipe primitive=Time Wipe
id=612588 id=612588
rarity=R rarity=R
@@ -1745,16 +1720,11 @@ id=612590
rarity=M rarity=M
[/card] [/card]
[card] [card]
primitive=Wear primitive=Wear // Tear
id=612591 id=612591
rarity=U rarity=U
[/card] [/card]
[card] [card]
primitive=Tear
id=612591
rarity=T
[/card]
[card]
primitive=Whirlwind of Thought primitive=Whirlwind of Thought
id=612592 id=612592
rarity=R rarity=R
@@ -4,7 +4,7 @@
# it means that if you have a macro named MACRO and a macro named MACRO2, you'll run into trouble because MACRO2 will match MACRO # it means that if you have a macro named MACRO and a macro named MACRO2, you'll run into trouble because MACRO2 will match MACRO
# Because of that, you need to use a unique delimiter at the beginning and the end of a macro, I personally use "__" # Because of that, you need to use a unique delimiter at the beginning and the end of a macro, I personally use "__"
# #
# Limitations: parameter inside macro must not contain ")" # Limitations: parameter inside macro must not contain "()"
# Standard Cycling # Standard Cycling
#AUTO_DEFINE __CYCLING__($cost) $cost{cycle}:name(cycling) draw:1 #AUTO_DEFINE __CYCLING__($cost) $cost{cycle}:name(cycling) draw:1
@@ -59,6 +59,11 @@
# Scry, Evergreen # Scry, Evergreen
#AUTO_DEFINE _SCRY_($c) scry:$c scrycore delayed dontshow donothing scrycoreend scryend #AUTO_DEFINE _SCRY_($c) scry:$c scrycore delayed dontshow donothing scrycoreend scryend
#AUTO_DEFINE _SCRY1_ scry:1 scrycore delayed dontshow donothing scrycoreend scryend
#AUTO_DEFINE _SCRY2_ scry:2 scrycore delayed dontshow donothing scrycoreend scryend
#AUTO_DEFINE _SCRY3_ scry:3 scrycore delayed dontshow donothing scrycoreend scryend
#AUTO_DEFINE _SCRY4_ scry:4 scrycore delayed dontshow donothing scrycoreend scryend
#AUTO_DEFINE _SCRY5_ scry:5 scrycore delayed dontshow donothing scrycoreend scryend
# Fabricate # Fabricate
#AUTO_DEFINE _FABRICATE_($c) transforms((,newability[choice counter(1/1.$c)],newability[choice create(Servo:Artifact Creature Servo:1/1)*$c])) ueot #AUTO_DEFINE _FABRICATE_($c) transforms((,newability[choice counter(1/1.$c)],newability[choice create(Servo:Artifact Creature Servo:1/1)*$c])) ueot
@@ -97,13 +102,13 @@
#AUTO_DEFINE _RECOVER_($cost) @movedTo(creature|myGraveyard) from(Battlefield):may pay{$cost} name(Return to owner Hand) moveTo(ownerHand) all(this) donothing?moveTo(exile) all(this) #AUTO_DEFINE _RECOVER_($cost) @movedTo(creature|myGraveyard) from(Battlefield):may pay{$cost} name(Return to owner Hand) moveTo(ownerHand) all(this) donothing?moveTo(exile) all(this)
# Clash, not implemented # Clash, not implemented
$AUTO_DEFINE _CLASH_ Put here a code if compare the casting cost based on Erratic Explosion. Meaby it would work with a few fix #AUTO_DEFINE _CLASH_ Put here a code if compare the casting cost based on Erratic Explosion. Meaby it would work with a few fix
# Proliferate # Proliferate
#AUTO_DEFINE _PROLIFERATE_ name(Proliferate) notatarget(proliferation) proliferate #AUTO_DEFINE _PROLIFERATE_ name(Proliferate) notatarget(proliferation) proliferate
# Scavenge # Scavenge
#AUTO_DEFINE _SCAVENGE_($cost) {$cost}:name(scavenge) counter(1/1,storedpower) target(creature) asSorcery #AUTO_DEFINE _SCAVENGE_($power) name(scavenge) counter(1/1,$power) target(creature) asSorcery
# Monstrosity, not implemented # Monstrosity, not implemented
#AUTO_DEFINE _MONSTROSITY_($cost,$c) name(Monstrosity) this(cantargetcard(*[-monstrous]) {$cost}:becomes(monstrous) forever && counter(1/1.$c) #AUTO_DEFINE _MONSTROSITY_($cost,$c) name(Monstrosity) this(cantargetcard(*[-monstrous]) {$cost}:becomes(monstrous) forever && counter(1/1.$c)
@@ -124,6 +129,10 @@ $AUTO_DEFINE _CLASH_ Put here a code if compare the casting cost based on Errati
#AUTO_DEFINE _MONARCH_CONTROLLER_ if type(The Monarch|battlefield)~lessthan~1 then token(The Monarch) else all(The Monarch|battlefield) moveto(mybattlefield) and!( transforms((,newability[becomesmonarch controller])) forever )! #AUTO_DEFINE _MONARCH_CONTROLLER_ if type(The Monarch|battlefield)~lessthan~1 then token(The Monarch) else all(The Monarch|battlefield) moveto(mybattlefield) and!( transforms((,newability[becomesmonarch controller])) forever )!
#AUTO_DEFINE _MONARCH_OPPONENT_ if type(The Monarch|battlefield)~lessthan~1 then token(The Monarch) opponent else all(The Monarch|battlefield) moveto(opponentbattlefield) and!( transforms((,newability[becomesmonarch controller])) forever )! #AUTO_DEFINE _MONARCH_OPPONENT_ if type(The Monarch|battlefield)~lessthan~1 then token(The Monarch) opponent else all(The Monarch|battlefield) moveto(opponentbattlefield) and!( transforms((,newability[becomesmonarch controller])) forever )!
# Initiative
#AUTO_DEFINE _INITIATIVE_CONTROLLER_ if type(The Initiative|battlefield)~lessthan~1 then token(The Initiative) else all(The Initiative|battlefield) moveto(mybattlefield) and!( transforms((,newability[takesinitiative controller])) forever )!
#AUTO_DEFINE _INITIATIVE_OPPONENT_ if type(The Initiative|battlefield)~lessthan~1 then token(The Initiative) opponent else all(The Initiative|battlefield) moveto(opponentbattlefield) and!( transforms((,newability[takesinitiative controller])) forever )!
# Explore, not implemented # Explore, not implemented
#AUTO_DEFINE _EXPLORE_ reveal:1 optionone if type(land|reveal)~lessthan~1 then transforms((,newability[counter(1/1)])) optiononeend optiontwo if type(land|reveal)~morethan~0 then name(move to Hand) target(<1>*|reveal) moveto(myHand) else transforms((,newability[Choice name(back to library) target(<1>*|reveal) moveto(mylibrary)],newability[Choice name(put into Graveyard) target(<1>*|reveal) moveto(myGraveyard)])) optiontwoend revealend limit:1 #AUTO_DEFINE _EXPLORE_ reveal:1 optionone if type(land|reveal)~lessthan~1 then transforms((,newability[counter(1/1)])) optiononeend optiontwo if type(land|reveal)~morethan~0 then name(move to Hand) target(<1>*|reveal) moveto(myHand) else transforms((,newability[Choice name(back to library) target(<1>*|reveal) moveto(mylibrary)],newability[Choice name(put into Graveyard) target(<1>*|reveal) moveto(myGraveyard)])) optiontwoend revealend limit:1
@@ -142,11 +151,11 @@ $AUTO_DEFINE _CLASH_ Put here a code if compare the casting cost based on Errati
# Undergrowth, not implemented # Undergrowth, not implemented
#AUTO_DEFINE _UNDERGROWTH_ foreach(creature|myGraveyard) #AUTO_DEFINE _UNDERGROWTH_ foreach(creature|myGraveyard)
# Afterlife, not implemented # Afterlife
#AUTO_DEFINE _AFTERLIFE_($c) @movedTo(this|graveyard) from(battlefield):create(Spirit:Creature Spirit:1/1:white,black:flying)*$c #AUTO_DEFINE _AFTERLIFETOKEN_ create(Spirit:Creature Spirit:1/1:white:black:flying)
# Riot # Riot
#AUTO_DEFINE _RIOT_ movedTo(this|myBattlefield):transforms((,newability[ability$! name(Choose counter or ability) choice name(Put a +1/+1 counter) counter(1/1,1) target(creature) _ choice name(Gains Haste) haste target(creature) forever !$ controller])) #AUTO_DEFINE _RIOT_ movedTo(this|myBattlefield):transforms((,newability[ability$! name(Choose counter or ability) choice name(Put a +1/+1 counter) counter(1/1) target(creature) _ choice name(Gains Haste) haste target(creature) forever !$ controller]))
# Learn # Learn
#AUTO_DEFINE _LEARN_ name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot #AUTO_DEFINE _LEARN_ name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[if type(Retriever Phoenix|mygraveyard)~morethan~0 then choice name(Return a Retriever Phoenix) name(Return a Retriever Phoenix) target(Retriever Phoenix|mygraveyard) moveto(myBattlefield)],newability[choice name(Don't learn) donothing])) oneshot
@@ -176,11 +185,23 @@ $AUTO_DEFINE _CLASH_ Put here a code if compare the casting cost based on Errati
#AUTO_DEFINE _RENOWN_($c) this(cantargetcard(*[-renown]) transforms((,newability[@combatdamaged(player) from(this):counter(1/1.$c) && becomes(renown) forever])) #AUTO_DEFINE _RENOWN_($c) this(cantargetcard(*[-renown]) transforms((,newability[@combatdamaged(player) from(this):counter(1/1.$c) && becomes(renown) forever]))
# Exile card. Return it to the battlefield under its owner's control at the beginning of the next end step. # Exile card. Return it to the battlefield under its owner's control at the beginning of the next end step.
#AUTO_DEFINE _BLINK_UEOT_ name(Blink ueot) all(this) transforms((,newability[moveto(exile)],newability[phaseactionmulti[endofturn once] moveto(ownerbattlefield)])) #AUTO_DEFINE _BLINK_UEOT_ name(Blink ueot) all(this) transforms((,newability[moveto(exile)],newability[if cantargetcard(*[-token]|*) then phaseactionmulti[endofturn once] moveto(ownerbattlefield)]))
# Connives. (Draw a card, then discard a card. If you discarded a nonland card, put a +1/+1 counter on this creature.) # Connives. (Draw a card, then discard a card. If you discarded a nonland card, put a +1/+1 counter on this creature.)
#AUTO_DEFINE _CONNIVES_ draw:1 && transforms((,newability[if type(*[-land]|myhand)~morethan~0 then choice name(Discard a nonland) name(Discard a nonland) target(*[-land]|myhand) reject && counter(1/1) all(this)],newability[if type(land|myhand)~morethan~0 then choice name(Discard a land) name(Discard a land) target(land|myhand) reject])) oneshot #AUTO_DEFINE _CONNIVES_ draw:1 && transforms((,newability[if type(*[-land]|myhand)~morethan~0 then choice name(Discard a nonland) name(Discard a nonland) target(*[-land]|myhand) reject && counter(1/1) all(this)],newability[if type(land|myhand)~morethan~0 then choice name(Discard a land) name(Discard a land) target(land|myhand) reject])) oneshot
# Eternalize
#AUTO_DEFINE _ETERNALIZE_ name(Eternalize) clone and!( transforms((Zombie,removemc,setpower=4,settoughness=4,black)) forever )! assorcery
# Discard a card. If you do, draw a card
#AUTO_DEFINE _DISCARD&DRAW_ reject notatarget(*|myhand) and!(draw:1 controller)!
# Target creature deals damage equal to its power to target creature you don't control.
#AUTO_DEFINE _PUNCH_ transforms((,newability[dynamicability<!powerstrike!> target(creature|opponentbattlefield)])) oneshot
# Must be blocked this turn if able
#AUTO_DEFINE _MUST_BE_BLOCKD_ newability[@combat(attacking) source(this):ability$! notatarget(creature|myBattlefield) transforms((,newability[mustblock])) ueot!$ opponent]
# Angel Token # Angel Token
#AUTO_DEFINE _ANGELTOKEN_ create(Angel:Creature Angel:4/4:white:flying) #AUTO_DEFINE _ANGELTOKEN_ create(Angel:Creature Angel:4/4:white:flying)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -238,7 +238,7 @@ name=Arlinn, Embraced by the Moon
backside=Arlinn Kord backside=Arlinn Kord
auto={C(0/0,1,Loyalty)}:name(+1: Creatures gets +1/+1 & trample) all(creature|mybattlefield) 1/1 ueot && all(creature|mybattlefield) trample ueot auto={C(0/0,1,Loyalty)}:name(+1: Creatures gets +1/+1 & trample) all(creature|mybattlefield) 1/1 ueot && all(creature|mybattlefield) trample ueot
auto={C(0/0,-1,Loyalty)}:name(-1: Deals 3 damage and transform) ability$!name(Choose one) choice name(Damage player) damage:3 target(player) _ choice name(Damage creature) damage:3 target(creature) _ choice name(Damage planeswalker) damage:3 target(planeswalker)!$ controller && all(this) flip(Arlinn Kord) auto={C(0/0,-1,Loyalty)}:name(-1: Deals 3 damage and transform) ability$!name(Choose one) choice name(Damage player) damage:3 target(player) _ choice name(Damage creature) damage:3 target(creature) _ choice name(Damage planeswalker) damage:3 target(planeswalker)!$ controller && all(this) flip(Arlinn Kord)
auto={C(0/0,-6,Loyalty)}:name(-6: Emblem: Creatures get ability powerstrike) emblem transforms((,newability[lord(creature|mybattlefield) {T}:target(creature,player) dynamicability<!powerstrike!>],newability[lord(creature|mybattlefield) haste])) forever dontremove auto={C(0/0,-6,Loyalty)}:name(-6: Emblem: Creatures get ability powerstrike) emblem transforms((,newability[lord(creature|mybattlefield) transforms((,newability[{T}:target(creature) dynamicability<!powerstrike!>]))],newability[lord(creature|mybattlefield) haste])) forever dontremove
text=+1: Creatures you control get +1/+1 and gain trample until end of turn. -- -1: Arlinn, Embraced by the Moon deals 3 damage to target creature or player. Transform Arlinn, Embraced by the Moon. -- -6: You get an emblem with "Creatures you control have haste and '{T}: This creature deals damage equal to its power to target creature or player.'" text=+1: Creatures you control get +1/+1 and gain trample until end of turn. -- -1: Arlinn, Embraced by the Moon deals 3 damage to target creature or player. Transform Arlinn, Embraced by the Moon. -- -6: You get an emblem with "Creatures you control have haste and '{T}: This creature deals damage equal to its power to target creature or player.'"
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Arlinn subtype=Arlinn
@@ -288,7 +288,7 @@ name=Ashiok, Dream Render
auto=counter(0/0,5,loyalty) auto=counter(0/0,5,loyalty)
auto=lord(*|opponentlibrary) shroud auto=lord(*|opponentlibrary) shroud
auto={C(0/0,-1,Loyalty)}:name(-1: Target opponent mils four and exile his or her graveyard) target(player) deplete:4 && moveTo(exile) all(*|opponentgraveyard) auto={C(0/0,-1,Loyalty)}:name(-1: Target opponent mils four and exile his or her graveyard) target(player) deplete:4 && moveTo(exile) all(*|opponentgraveyard)
text=Spells and abilities your opponents control can't cause their controller to search their library. -- -1: Target player puts the top four cards of their library into their graveyard. Then exile each opponent's graveyard. text=Spells and abilities your opponents control can't cause their controller to search their library. -- -1: Target player mills four cards. Then exile each opponent's graveyard.
mana={1}{UB}{UB} mana={1}{UB}{UB}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Ashiok subtype=Ashiok
@@ -338,10 +338,10 @@ subtype=Ashiok
[card] [card]
name=Ashiok, Sculptor of Fears name=Ashiok, Sculptor of Fears
auto=counter(0/0,5,loyalty) auto=counter(0/0,5,loyalty)
auto={C(0/0,2,Loyalty)}:name(+2: Draw a card and put two cards...) draw:1 controller && deplete:2 opponent deplete:2 controller auto={C(0/0,2,Loyalty)}:name(+2: Draw a card and put two cards...) draw:1 controller && all(player) deplete:2
auto={C(0/0,-5,Loyalty)}:name(-5: Return target creature from graveyars) moveTo(myBattlefield) target(creature|Graveyard) auto={C(0/0,-5,Loyalty)}:name(-5: Return target creature from graveyars) moveTo(myBattlefield) target(creature|Graveyard)
auto={C(0/0,-11,Loyalty)}:name(-11: Gain control of all creatures..) moveTo(myBattlefield) all(creature|opponentBattlefield) auto={C(0/0,-11,Loyalty)}:name(-11: Gain control of all creatures..) moveTo(myBattlefield) all(creature|opponentBattlefield)
text=+2: Draw a card. Each player puts the top two cards of their library into their graveyard. -- -5: Put target creature card from a graveyard onto the battlefield under your control. -- -11: Gain control of all creatures target opponent controls. text=+2: Draw a card. Each player mills two cards. -- -5: Put target creature card from a graveyard onto the battlefield under your control. -- -11: Gain control of all creatures target opponent controls.
mana={4}{U}{B} mana={4}{U}{B}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Ashiok subtype=Ashiok
@@ -351,7 +351,7 @@ name=B.O.B. (Bevy of Beebles)
auto=counter(0/0,4,Loyalty) auto=counter(0/0,4,Loyalty)
auto=token(Beeble,Creature Beeble,1/1,blue)*4 auto=token(Beeble,Creature Beeble,1/1,blue)*4
auto=@counteradded(0/0,1,Loyalty) from(this):token(Beeble,Creature Beeble,1/1,blue) auto=@counteradded(0/0,1,Loyalty) from(this):token(Beeble,Creature Beeble,1/1,blue)
auto=@counterremoved(0/0,1,Loyalty) from(this):sacrifice target(beeble|myBattlefield) auto=@counterremoved(0/0,1,Loyalty) from(this):sacrifice notAtarget(beeble|myBattlefield)
auto={C(0/0,1,Loyalty)}:name(+1: X Beebles can't be blocked) target(<type:*:myHand>creature[Beeble]|myBattlefield) transforms((,newability[unblockable])) ueot auto={C(0/0,1,Loyalty)}:name(+1: X Beebles can't be blocked) target(<type:*:myHand>creature[Beeble]|myBattlefield) transforms((,newability[unblockable])) ueot
auto={C(0/0,-1,Loyalty)}:name(-1: Draw a card) draw:1 controller auto={C(0/0,-1,Loyalty)}:name(-1: Draw a card) draw:1 controller
text=As B.O.B. enters the battlefield, create four 1/1 blue Beeble creature tokens. -- The number of loyalty counters on B.O.B. is equal to the number of Beebles you control. (Create or sacrifice Beebles whenever B.O.B. gains or loses loyalty.) -- +1: Up to X target Beebles can't be blocked this turn, where X is the number of cards in your hand. -- -1: Draw a card. text=As B.O.B. enters the battlefield, create four 1/1 blue Beeble creature tokens. -- The number of loyalty counters on B.O.B. is equal to the number of Beebles you control. (Create or sacrifice Beebles whenever B.O.B. gains or loses loyalty.) -- +1: Up to X target Beebles can't be blocked this turn, where X is the number of cards in your hand. -- -1: Draw a card.
@@ -625,7 +625,7 @@ subtype=Chandra
[card] [card]
name=Chandra, Torch of Defiance name=Chandra, Torch of Defiance
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Exile Top Card) all(*[zpos=1|mylibrary) moveto(myexile) and!( transforms((,newability[choice name(Deals 2 damage) name(Deals 2 damage) damage:2 opponent],newability[if cantargetcard(*[-land]|*) then choice name(Cast card from exile) name(Cast card from exile) counter(0/0.1.ChandraEffect) notrg])) ueot )! auto={C(0/0,1,Loyalty)}:name(+1: Exile Top Card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[choice name(Deals 2 damage) name(Deals 2 damage) damage:2 opponent],newability[if cantargetcard(*[-land]|*) then choice name(Cast card from exile) name(Cast card from exile) counter(0/0.1.ChandraEffect) notrg])) ueot )!
auto=lord(*[counter{0/0.1.ChandraEffect}]|myexile) canplayfromexile auto=lord(*[counter{0/0.1.ChandraEffect}]|myexile) canplayfromexile
auto=@each endofturn:if type(*[counter{0/0.1.ChandraEffect}]|myexile)~morethan~0 then name(Effect ends) name(Effect ends) all(*[counter{0/0.1.ChandraEffect}]|myexile) removeallcounters(0/0.1.ChandraEffect) auto=@each endofturn:if type(*[counter{0/0.1.ChandraEffect}]|myexile)~morethan~0 then name(Effect ends) name(Effect ends) all(*[counter{0/0.1.ChandraEffect}]|myexile) removeallcounters(0/0.1.ChandraEffect)
auto=@each endofturn:if type(*[counter{0/0.1.ChandraEffect}]|myexile)~morethan~0 then name(Deals 2 damage) name(Deals 2 damage) damage:2 opponent auto=@each endofturn:if type(*[counter{0/0.1.ChandraEffect}]|myexile)~morethan~0 then name(Deals 2 damage) name(Deals 2 damage) damage:2 opponent
@@ -665,7 +665,7 @@ name=Daretti, Ingenious Iconoclast
auto=counter(0/0,3,loyalty) auto=counter(0/0,3,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Create a 1/1 colorless Construct) token(Construct,Artifact Creature Construct,1/1,defender) auto={C(0/0,1,Loyalty)}:name(+1: Create a 1/1 colorless Construct) token(Construct,Artifact Creature Construct,1/1,defender)
auto={C(0/0,-1,Loyalty)}{S(artifact|mybattlefield)}:name(-1: Sacrifice artifact to destroy) target(creature,artifact|battlefield) destroy auto={C(0/0,-1,Loyalty)}{S(artifact|mybattlefield)}:name(-1: Sacrifice artifact to destroy) target(creature,artifact|battlefield) destroy
auto={C(0/0,-6,Loyalty)}:name(-6: Create three copies of an artifact...) target(artifact|graveyard,battlefield) clone && clone && clone auto={C(0/0,-6,Loyalty)}:name(-6: Create three copies of an artifact) name(Create three tokens) target(artifact|graveyard,battlefield) transforms((,newability[clone controller] ,newability[clone controller],newability[clone controller]))
text=+1: Create a 1/1 colorless Construct artifact creature token with defender. -- -1: You may sacrifice an artifact. If you do, destroy target artifact or creature. -- -6: Choose target artifact card in a graveyard or artifact on the battlefield. Create three tokens that are copies of it. text=+1: Create a 1/1 colorless Construct artifact creature token with defender. -- -1: You may sacrifice an artifact. If you do, destroy target artifact or creature. -- -6: Choose target artifact card in a graveyard or artifact on the battlefield. Create three tokens that are copies of it.
mana={1}{B}{R} mana={1}{B}{R}
type=Legendary Planeswalker type=Legendary Planeswalker
@@ -724,9 +724,9 @@ name=Domri, Chaos Bringer
auto=counter(0/0,5,loyalty) auto=counter(0/0,5,loyalty)
aicode=activate moveto(myHand) target(creature[zpos=2]|myLibrary) aicode=activate moveto(myHand) target(creature[zpos=2]|myLibrary)
auto={C(0/0,1,Loyalty)}:name(+1: Add red if its a creature, Riot) add{R} && if type(creature|myStack)~morethan~0 then ability$!name(Choose one) choice name(Put a +1/1 counter) counter(1/1) target(creature[fresh]|myBattlefield) _ choice name(Gain Haste) haste target(creature[fresh]|myBattlefield)!$ controller auto={C(0/0,1,Loyalty)}:name(+1: Add red if its a creature, Riot) add{R} && if type(creature|myStack)~morethan~0 then ability$!name(Choose one) choice name(Put a +1/1 counter) counter(1/1) target(creature[fresh]|myBattlefield) _ choice name(Gain Haste) haste target(creature[fresh]|myBattlefield)!$ controller
auto={C(0/0,1,Loyalty)}:name(+1: Add green if its a creature, Riot) add{G} && if type(creature|myStack)~morethan~0 then ability$!name(Choose one) choice name(Put a +1/1 counter) counter(1/1) target(creature[fresh]|myBattlefield) _ choice name(Gain Haste) haste target(creature[fresh]|myBattlefield)!$ controller !$ controller auto={C(0/0,1,Loyalty)}:name(+1: Add green if its a creature, Riot) add{G} && if type(creature|myStack)~morethan~0 then ability$!name(Choose one) choice name(Put a +1/1 counter) counter(1/1) target(creature[fresh]|myBattlefield) _ choice name(Gain Haste) haste target(creature[fresh]|myBattlefield)!$ controller
auto={C(0/0,-3,Loyalty)}:name(-3: Reveal four and put up to two creature) name(Look your Library) reveal:4 optionone name(Get a card) target(<upto:2>*[creature]|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<4>*|reveal) bottomoflibrary optiontwoend revealend auto={C(0/0,-3,Loyalty)}:name(-3: Reveal four and put up to two creature) name(Look your Library) reveal:4 optionone name(Get a card) target(<upto:2>*[creature]|reveal) moveto(myhand) optiononeend optiontwo name(put on bottom) target(<4>*|reveal) bottomoflibrary optiontwoend revealend
auto={C(0/0,-8,Loyalty)}:name(-8: Emblem: "Each end of turn create a 4/4 Beast) emblem transforms((,newability[@each endofturn: token(Beast,Creature Beast,4/4,red,green,trample)])) forever dontrevome auto={C(0/0,-8,Loyalty)}:name(-8: Emblem: "Each end of turn create a 4/4 Beast) emblem transforms((,newability[@each endofturn: create(Beast:Creature Beast:4/4:red:green:trample)])) forever dontrevome
text=+1: Add {R} or {G}. If that mana is spent on a creature spell, it gains riot. (It enters the battlefield with your choice of a +1/+1 counter or haste.) -- 3: Look at the top four cards of your library. You may reveal up to two creature cards from among them and put them into your hand. Put the rest on the bottom of your library in a random order. -- 8: You get an emblem with "At the beginning of each end step, create a 4/4 red and green Beast creature token with trample." text=+1: Add {R} or {G}. If that mana is spent on a creature spell, it gains riot. (It enters the battlefield with your choice of a +1/+1 counter or haste.) -- 3: Look at the top four cards of your library. You may reveal up to two creature cards from among them and put them into your hand. Put the rest on the bottom of your library in a random order. -- 8: You get an emblem with "At the beginning of each end step, create a 4/4 red and green Beast creature token with trample."
mana={2}{R}{G} mana={2}{R}{G}
type=Legendary Planeswalker type=Legendary Planeswalker
@@ -813,6 +813,18 @@ type=Legendary Planeswalker
subtype=Ellywick subtype=Ellywick
[/card] [/card]
[card] [card]
name=Elminster
abilities=canbecommander
auto=counter(0/0,5,loyalty)
auto=@scryed(*|mybattlefield,mystack):name(Next spell cost less) target(*[instant;sorcery]|myhand) transforms((,newability[changecost(colorless:-scryedcards) forcedalive])) ueot
auto={C(0/0,+2,Loyalty)}:name(Draw and scry) draw:1 && _SCRY2_
auto={C(0/0,3,Loyalty)}:name(Exile top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[name(Create faeries) token(Faerie^Creature Faerie Dragon^1/1^blue)*manacost])) oneshot )!
text=Whenever you scry, the next instant or sorcery spell you cast this turn costs {X} less to cast, where X is the number of cards looked at while scrying this way. -- [+2]: Draw a card, then scry 2. -- [3]: Exile the top card of your library. Create a number of 1/1 blue Faerie Dragon creature tokens with flying equal to that card's mana value. -- Elminster can be your commander.
mana={3}{W}{U}
type=Legendary Planeswalker
subtype=Elminster
[/card]
[card]
name=Elspeth, Knight-Errant name=Elspeth, Knight-Errant
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Create a 1/1 soldier) _SOLDIERTOKEN_ auto={C(0/0,1,Loyalty)}:name(+1: Create a 1/1 soldier) _SOLDIERTOKEN_
@@ -1235,7 +1247,7 @@ name=Inzerva, Master of Insights
aicode=activate target(*[zpos<=2]|opponentLibrary) moveto(opponentreveal) and!( bottomoflibrary )! aicode=activate target(*[zpos<=2]|opponentLibrary) moveto(opponentreveal) and!( bottomoflibrary )!
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto={C(0/0,+2,Loyalty)}:name(+2: Draw 2 cards and discard) draw:2 && transforms((,newability[reject notatarget(*|myhand)])) oneshot auto={C(0/0,+2,Loyalty)}:name(+2: Draw 2 cards and discard) draw:2 && transforms((,newability[reject notatarget(*|myhand)])) oneshot
auto={C(0/0,-2,Loyalty)}:name(-2: Look at opponent library and scry 2) reveal:2 revealzone(opponentlibrary) optionone name(Put on top) target(<upto:2>*|reveal) moveto(ownerlibrary) optiononeend optiontwo name(Put on bottom) target(<2>*|reveal) bottomoflibrary optiontwoend afterrevealed name(Scry 2) _SCRY_(2) afterrevealedend revealend auto={C(0/0,-2,Loyalty)}:name(-2: Look at opponent library and scry 2) reveal:2 revealzone(opponentlibrary) optionone name(Put on top) target(<upto:2>*|reveal) moveto(ownerlibrary) optiononeend optiontwo name(Put on bottom) target(<2>*|reveal) bottomoflibrary optiontwoend afterrevealed name(Scry 2) _SCRY2_ afterrevealedend revealend
auto={C(0/0,-4,Loyalty)}:name(-4: Emblem: Draw to deal damage) emblem transforms((,newability[lord(*|opponentBattlefield) showcontrollerhand],newability[lord(*|myBattlefield) showopponenthand],newability[@drawfoeof(player):name(Damage opponent) damage:1 opponent] )) forever dontremove auto={C(0/0,-4,Loyalty)}:name(-4: Emblem: Draw to deal damage) emblem transforms((,newability[lord(*|opponentBattlefield) showcontrollerhand],newability[lord(*|myBattlefield) showopponenthand],newability[@drawfoeof(player):name(Damage opponent) damage:1 opponent] )) forever dontremove
text=+2: Draw two cards, then discard a card. -- 2: Look at the top two cards of each other player's library, then put any number of them on the bottom of that library and the rest on top in any order. Scry 2. -- 4: You get an emblem with "Your opponents play with their hands revealed" and "Whenever an opponent draws a card, this emblem deals 1 damage to them." text=+2: Draw two cards, then discard a card. -- 2: Look at the top two cards of each other player's library, then put any number of them on the bottom of that library and the rest on top in any order. Scry 2. -- 4: You get an emblem with "Your opponents play with their hands revealed" and "Whenever an opponent draws a card, this emblem deals 1 damage to them."
mana={1}{2U}{2R} mana={1}{2U}{2R}
@@ -1269,7 +1281,7 @@ subtype=Jace
[card] [card]
name=Jace Beleren name=Jace Beleren
auto=counter(0/0,3,loyalty) auto=counter(0/0,3,loyalty)
auto={C(0/0,2,Loyalty)}:name(+2: Each player draw) draw:1 controller && draw:1 opponent auto={C(0/0,2,Loyalty)}:name(+2: Each player draw) all(player) draw:1
auto={C(0/0,-1,Loyalty)}:name(-1: Target player draw a card) draw:1 target(player) auto={C(0/0,-1,Loyalty)}:name(-1: Target player draw a card) draw:1 target(player)
auto={C(0/0,-10,Loyalty)}:name(-10: Target player mils twenty) deplete:20 target(player) auto={C(0/0,-10,Loyalty)}:name(-10: Target player mils twenty) deplete:20 target(player)
text=+2: Each player draws a card. -- -1: Target player draws a card. -- -10: Target player puts the top twenty cards of his or her library into his or her graveyard. text=+2: Each player draws a card. -- -1: Target player draws a card. -- -10: Target player puts the top twenty cards of his or her library into his or her graveyard.
@@ -1307,7 +1319,7 @@ auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Target player mils and draw) deplete:1 target(player) && draw:1 controller auto={C(0/0,1,Loyalty)}:name(+1: Target player mils and draw) deplete:1 target(player) && draw:1 controller
auto={C(0/0,0,Loyalty)}:name(+0: Target player mils ten) deplete:10 target(player) auto={C(0/0,0,Loyalty)}:name(+0: Target player mils ten) deplete:10 target(player)
auto={C(0/0,-7,Loyalty)}:name(-7: Target players draw twenty cards) target(<anyamount>player) draw:20 auto={C(0/0,-7,Loyalty)}:name(-7: Target players draw twenty cards) target(<anyamount>player) draw:20
text=+1: Draw a card. Target player puts the top card of his or her library into his or her graveyard. -- 0: Target player puts the top ten cards of his or her library into his or her graveyard. -- -7: Any number of target players each draw twenty cards. text=+1: Draw a card. Target player mills a card. -- 0: Target player puts the top ten cards of his or her library into his or her graveyard. -- -7: Any number of target players each draw twenty cards.
mana={3}{U}{U} mana={3}{U}{U}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Jace subtype=Jace
@@ -1319,7 +1331,7 @@ auto=counter(0/0,1,loyalty)
auto=if paid(kicker) then clone options(nolegend) auto=if paid(kicker) then clone options(nolegend)
auto=if casted(this) then counter(0/0,3,loyalty) auto=if casted(this) then counter(0/0,3,loyalty)
aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot
auto={C(0/0,1,Loyalty)}:name(+1: Scry 2) _SCRY_(2) auto={C(0/0,1,Loyalty)}:name(+1: Scry 2) _SCRY2_
auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 restriction{type(*[manacost=0;zpos=1]|mylibrary)~morethan~0} auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 restriction{type(*[manacost=0;zpos=1]|mylibrary)~morethan~0}
auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-1,loyalty) restriction{type(*[manacost=1;zpos=1]|mylibrary)~morethan~0} auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-1,loyalty) restriction{type(*[manacost=1;zpos=1]|mylibrary)~morethan~0}
auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-2,loyalty) restriction{type(*[manacost=2;zpos=1]|mylibrary)~morethan~0} auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-2,loyalty) restriction{type(*[manacost=2;zpos=1]|mylibrary)~morethan~0}
@@ -1330,7 +1342,7 @@ auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && c
auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-7,loyalty) restriction{type(*[manacost=7;zpos=1]|mylibrary)~morethan~0} auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-7,loyalty) restriction{type(*[manacost=7;zpos=1]|mylibrary)~morethan~0}
auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-8,loyalty) restriction{type(*[manacost=8;zpos=1]|mylibrary)~morethan~0} auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-8,loyalty) restriction{type(*[manacost=8;zpos=1]|mylibrary)~morethan~0}
auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-9,loyalty) restriction{type(*[manacost=9;zpos=1]|mylibrary)~morethan~0} auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-9,loyalty) restriction{type(*[manacost=9;zpos=1]|mylibrary)~morethan~0}
auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-10,loyalty) restriction{type(*[manacost=10;zpos=1]|mylibrary)~morethan~0 auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-10,loyalty) restriction{type(*[manacost=10;zpos=1]|mylibrary)~morethan~0}
auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-11,loyalty) restriction{type(*[manacost=11;zpos=1]|mylibrary)~morethan~0} auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-11,loyalty) restriction{type(*[manacost=11;zpos=1]|mylibrary)~morethan~0}
auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-12,loyalty) restriction{type(*[manacost=12;zpos=1]|mylibrary)~morethan~0} auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-12,loyalty) restriction{type(*[manacost=12;zpos=1]|mylibrary)~morethan~0}
auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-13,loyalty) restriction{type(*[manacost=13;zpos=1]|mylibrary)~morethan~0} auto={C(0/0,0,Loyalty)}:name(+0: Draw 1 and remove Loyalty counters) draw:1 && counter(0/0,-13,loyalty) restriction{type(*[manacost=13;zpos=1]|mylibrary)~morethan~0}
@@ -1402,7 +1414,7 @@ auto=counter(0/0,4,loyalty)
auto=@drawof(player) restriction{type(*|mylibrary)~equalto~0}:wingame auto=@drawof(player) restriction{type(*|mylibrary)~equalto~0}:wingame
auto={C(0/0,1,Loyalty)}:name(+1: Target player milss two and draws a card) target(player) deplete:2 && draw:1 auto={C(0/0,1,Loyalty)}:name(+1: Target player milss two and draws a card) target(player) deplete:2 && draw:1
auto={C(0/0,-8,Loyalty)}:name(-8: Draw seven cards if no cards are in library win the game) if type(*|mylibrary)~lessthan~8 then wingame else draw:7 auto={C(0/0,-8,Loyalty)}:name(-8: Draw seven cards if no cards are in library win the game) if type(*|mylibrary)~lessthan~8 then wingame else draw:7
text=If you would draw a card while your library has no cards in it, you win the game instead. -- +1: Target player puts the top two cards of their library into their graveyard. Draw a card. -- -8: Draw seven cards. Then if your library has no cards in it, you win the game. text=If you would draw a card while your library has no cards in it, you win the game instead. -- +1: Target player mills two cards. Draw a card. -- -8: Draw seven cards. Then if your library has no cards in it, you win the game.
mana={1}{U}{U}{U} mana={1}{U}{U}{U}
type=Legendary Planeswalker type=Legendary Planeswalker
subtype=Jace subtype=Jace
@@ -1532,7 +1544,7 @@ subtype=Karn
name=Kasmina, Enigma Sage name=Kasmina, Enigma Sage
auto=counter(0/0,2,Loyalty) auto=counter(0/0,2,Loyalty)
aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot
auto={C(0/0.2.Loyalty)}:limit:1 name(+2: Scry 1) _SCRY_(1) auto={C(0/0.2.Loyalty)}:limit:1 name(+2: Scry 1) _SCRY1_
auto={C(0/0.-1.Loyalty)}:limit:1 name(-1: Create fractal with 1 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1) )! auto={C(0/0.-1.Loyalty)}:limit:1 name(-1: Create fractal with 1 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1) )!
auto={C(0/0.-2.Loyalty)}:limit:1 name(-2: Create fractal with 2 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.2) )! auto={C(0/0.-2.Loyalty)}:limit:1 name(-2: Create fractal with 2 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.2) )!
auto={C(0/0.-3.Loyalty)}:limit:1 name(-3: Create fractal with 3 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.3) )! auto={C(0/0.-3.Loyalty)}:limit:1 name(-3: Create fractal with 3 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.3) )!
@@ -1554,7 +1566,7 @@ auto={C(0/0.-18.Loyalty)}:limit:1 name(-18: Create fractal with 18 counter) toke
auto={C(0/0.-19.Loyalty)}:limit:1 name(-19: Create fractal with 19 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.19) )! auto={C(0/0.-19.Loyalty)}:limit:1 name(-19: Create fractal with 19 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.19) )!
auto={C(0/0.-20.Loyalty)}:limit:1 name(-20: Create fractal with 20 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.20) )! auto={C(0/0.-20.Loyalty)}:limit:1 name(-20: Create fractal with 20 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.20) )!
auto={C(0/0.-8.Loyalty)}:limit:1 name(-8: Search instant or sorcery) target(*[instant;sorcery;share!color!]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast],newability[@each untap:canplayfromexile],newability[@each untap:zerocast])) forever )! auto={C(0/0.-8.Loyalty)}:limit:1 name(-8: Search instant or sorcery) target(*[instant;sorcery;share!color!]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[zerocast],newability[@each untap:canplayfromexile],newability[@each untap:zerocast])) forever )!
auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.2.Loyalty)}:limit:1 name(+2: Scry 1) _SCRY_(1)])) auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.2.Loyalty)}:limit:1 name(+2: Scry 1) _SCRY1_]))
auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-1.Loyalty)}:limit:1 name(-1: Create fractal with 1 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1) )!])) auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-1.Loyalty)}:limit:1 name(-1: Create fractal with 1 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1) )!]))
auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-2.Loyalty)}:limit:1 name(-2: Create fractal with 2 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.2) )!])) auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-2.Loyalty)}:limit:1 name(-2: Create fractal with 2 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.2) )!]))
auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-3.Loyalty)}:limit:1 name(-3: Create fractal with 3 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.3) )!])) auto=lord(other planeswalker|mybattlefield) transforms((,newability[{C(0/0.-3.Loyalty)}:limit:1 name(-3: Create fractal with 3 counter) token(Fractal^Creature Fractal^0/0^green^blue) and!( counter(1/1.3) )!]))
@@ -1616,7 +1628,7 @@ subtype=Kaya
[card] [card]
name=Kaya, Ghost Assassin name=Kaya, Ghost Assassin
auto=counter(0/0,5,loyalty) auto=counter(0/0,5,loyalty)
auto={C(0/0,0,Loyalty)}:name(+0: Exile Kaya or creature) ability$!name(Choose creature or this) choice name(Kaya, Ghost Assassin) all(this) (blink)ueot && life:-2 controller _choice name(Creature) target(creature) (blink)ueot && life:-2 controller!$ controller auto={C(0/0,0,Loyalty)}:name(+0: Exile Kaya or creature) ability$!name(Choose creature or this) choice name(Kaya, Ghost Assassin) all(this) (blink)ueot && life:-2 controller _choice name(Creature) target(creature) (blink)ueot controller!$ controller && life:-2
auto={C(0/0,-1,Loyalty)}:name(-1: Each opponent loses life and you gain) life:-2 opponent && life:2 controller auto={C(0/0,-1,Loyalty)}:name(-1: Each opponent loses life and you gain) life:-2 opponent && life:2 controller
auto={C(0/0,-2,Loyalty)}:name(-2: Each opponent discard and draw) ability$!name(discard a card) notatarget(*|myHand) reject!$ opponent && draw:1 controller auto={C(0/0,-2,Loyalty)}:name(-2: Each opponent discard and draw) ability$!name(discard a card) notatarget(*|myHand) reject!$ opponent && draw:1 controller
text=0: Exile Kaya, Ghost Assassin or up to one target creature. Return that card to the battlefield under its owner's control at the beginning of your next upkeep. You lose 2 life. -- -1: Each opponent loses 2 life and you gain 2 life. -- -2: Each opponent discards a card and you draw a card. text=0: Exile Kaya, Ghost Assassin or up to one target creature. Return that card to the battlefield under its owner's control at the beginning of your next upkeep. You lose 2 life. -- -1: Each opponent loses 2 life and you gain 2 life. -- -2: Each opponent discards a card and you draw a card.
@@ -1742,7 +1754,7 @@ auto=counter(0/0,6,loyalty)
auto=@movedTo(creature|Graveyard) from(mybattlefield):name(Draw a card) draw:1 controller auto=@movedTo(creature|Graveyard) from(mybattlefield):name(Draw a card) draw:1 controller
auto={C(0/0,1,Loyalty)}:name(+1: Create a 2/2 Zombie) _ZOMBIETOKEN_ auto={C(0/0,1,Loyalty)}:name(+1: Create a 2/2 Zombie) _ZOMBIETOKEN_
auto={C(0/0,-4,Loyalty)}:name(-4: Each player sacrifices two creatures) transforms((,newability[name(Sacrifice 2 creatures) target(<2>creature|mybattlefield) sacrifice],newability[ability$!name(Sacrifice 2 creatures) name(Sacrifice 2 creatures) target(<2>creature|mybattlefield) sacrifice!$ opponent])) forever auto={C(0/0,-4,Loyalty)}:name(-4: Each player sacrifices two creatures) transforms((,newability[name(Sacrifice 2 creatures) target(<2>creature|mybattlefield) sacrifice],newability[ability$!name(Sacrifice 2 creatures) name(Sacrifice 2 creatures) target(<2>creature|mybattlefield) sacrifice!$ opponent])) forever
auto={C(0/0,-9,Loyalty)}:name(-9: Opponent sacrifices permanents) transforms((,newability[if type(land|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all lands except one) name(Sacrifice all lands except one) sacrifice target(<type:land:myBattlefieldminus1minusend>land|mybattlefield)!$ opponent],newability[if type(creature|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all creatures except one) name(Sacrifice all creatures except one) sacrifice notatarget(<type:creature:myBattlefieldminus1minusend>creature|mybattlefield)!$ opponent],newability[if type(enchantment|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all enchantments except one) name(Sacrifice all enchantments except one) sacrifice notatarget(<type:enchantment:myBattlefieldminus1minusend>enchantment|mybattlefield)!$ opponent],newability[if type(artifact|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all artifacts except one) name(Sacrifice all artifacts except one) sacrifice notatarget(<type:artifact:myBattlefieldminus1minusend>artifact|mybattlefield)!$ opponent],newability[if type(planeswalker|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all planeswalkers except one) name(Sacrifice all planeswalkers except one) sacrifice notatarget(<type:planeswalker:myBattlefieldminus1minusend>planeswalker|mybattlefield)!$ opponent])) forever auto={C(0/0,-9,Loyalty)}:name(-9: Opponent sacrifices permanents) transforms((,newability[if type(land|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all lands except one) name(Sacrifice all lands except one) sacrifice notAtarget(<type:land:myBattlefieldminus1minusend>land|mybattlefield)!$ opponent],newability[if type(creature|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all creatures except one) name(Sacrifice all creatures except one) sacrifice notatarget(<type:creature:myBattlefieldminus1minusend>creature|mybattlefield)!$ opponent],newability[if type(enchantment|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all enchantments except one) name(Sacrifice all enchantments except one) sacrifice notatarget(<type:enchantment:myBattlefieldminus1minusend>enchantment|mybattlefield)!$ opponent],newability[if type(artifact|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all artifacts except one) name(Sacrifice all artifacts except one) sacrifice notatarget(<type:artifact:myBattlefieldminus1minusend>artifact|mybattlefield)!$ opponent],newability[if type(planeswalker|opponentBattlefield)~morethan~1 then ability$!name(Sacrifice all planeswalkers except one) name(Sacrifice all planeswalkers except one) sacrifice notatarget(<type:planeswalker:myBattlefieldminus1minusend>planeswalker|mybattlefield)!$ opponent])) forever
text=Whenever a creature you control dies, draw a card. -- +1: Create a 2/2 black Zombie creature token. -- -4: Each player sacrifices two creatures. -- -9: Each opponent chooses a permanent they control of each permanent type and sacrifices the rest. text=Whenever a creature you control dies, draw a card. -- +1: Create a 2/2 black Zombie creature token. -- -4: Each player sacrifices two creatures. -- -9: Each opponent chooses a permanent they control of each permanent type and sacrifices the rest.
mana={4}{B}{B} mana={4}{B}{B}
type=Legendary Planeswalker type=Legendary Planeswalker
@@ -1844,7 +1856,7 @@ auto=counter(0/0,5,loyalty)
aicode=activate moveto(mylibrary) and!(moveto(mylibrary))! target(*|mylibrary) aicode=activate moveto(mylibrary) and!(moveto(mylibrary))! target(*|mylibrary)
auto={C(0/0,1,Loyalty)}:name(+1: Target player discards a card) target(player) ability$!name(discard) target(*|myhand) reject!$ targetedplayer auto={C(0/0,1,Loyalty)}:name(+1: Target player discards a card) target(player) ability$!name(discard) target(*|myhand) reject!$ targetedplayer
auto={C(0/0,-2,Loyalty)}:name(-2: Search a card from library and put on top) reveal:plibrarycount optionone name(choose card) target(*|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(mylibrary) and!(moveto(mylibrary))! afterrevealedend revealend auto={C(0/0,-2,Loyalty)}:name(-2: Search a card from library and put on top) reveal:plibrarycount optionone name(choose card) target(*|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(mylibrary) and!(moveto(mylibrary))! afterrevealedend revealend
auto={C(0/0,-8,Loyalty)}:name(-8: Reanimate all your creatures) moveTo(mybattlefield) all(creature|graveyard) auto={C(0/0,-8,Loyalty)}:name(-8: Reanimate all creatures) moveTo(mybattlefield) all(creature|graveyard)
text=+1: Target player discards a card. -- -2: Search your library for a card, then shuffle your library and put that card on top of it. -- -8: Put all creature cards in all graveyards onto the battlefield under your control. text=+1: Target player discards a card. -- -2: Search your library for a card, then shuffle your library and put that card on top of it. -- -8: Put all creature cards in all graveyards onto the battlefield under your control.
mana={3}{B}{B} mana={3}{B}{B}
type=Legendary Planeswalker type=Legendary Planeswalker
@@ -1853,7 +1865,7 @@ subtype=Liliana
[card] [card]
name=Liliana, Waker of the Dead name=Liliana, Waker of the Dead
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Each player discard card or loses 3 life) transforms((,newability[if type(*|opponenthand)~lessthan~1 then life:-3 opponent else ability$!name(Discard a card) target(*|myhand) reject!$ opponent],newability[if type(*|myhand)~lessthan~1 then life:-3 controller else ability$!name(Discard a card) target(*|myhand) reject!$ controller])) oneshot auto={C(0/0,1,Loyalty)}:name(+1: Each player discard card or loses 3 life) transforms((,newability[if type(*|opponenthand)~lessthan~1 then life:-3 opponent else ability$!name(Discard a card) target(*|myhand) reject!$ opponent],newability[name(Discard a card) target(*|myhand) reject])) oneshot
auto={C(0/0,-3,Loyalty)}:name(-3: Target creature gets -X/-X) target(creature) -type:*:myGraveyard/-type:*:myGraveyard ueot auto={C(0/0,-3,Loyalty)}:name(-3: Target creature gets -X/-X) target(creature) -type:*:myGraveyard/-type:*:myGraveyard ueot
auto={C(0/0,-7,Loyalty)}:name(-7: Emblem: "Return target creature from a graveyard") emblem transforms((,newability[@movedTo(creature|mybattlefield) from(graveyard) restriction{combatbeginsonly}:all(trigger) haste],newability[@each my combatbegins:target(creature|graveyard) moveTo(myBattlefield)])) forever dontremove auto={C(0/0,-7,Loyalty)}:name(-7: Emblem: "Return target creature from a graveyard") emblem transforms((,newability[@movedTo(creature|mybattlefield) from(graveyard) restriction{combatbeginsonly}:all(trigger) haste],newability[@each my combatbegins:target(creature|graveyard) moveTo(myBattlefield)])) forever dontremove
text=+1: Each player discards a card. Each opponent who can't loses 3 life. -- -3: Target creature gets -X/-X until end of turn, where X is the number of cards in your graveyard. -- -7: You get an emblem with "At the beginning of combat on your turn, put target creature card from a graveyard onto the battlefield under your control. It gains haste." text=+1: Each player discards a card. Each opponent who can't loses 3 life. -- -3: Target creature gets -X/-X until end of turn, where X is the number of cards in your graveyard. -- -7: You get an emblem with "At the beginning of combat on your turn, put target creature card from a graveyard onto the battlefield under your control. It gains haste."
@@ -1912,6 +1924,21 @@ type=Legendary Planeswalker
subtype=Lukka subtype=Lukka
[/card] [/card]
[card] [card]
name=Minsc & Boo, Timeless Heroes
abilities=canbecommander
auto=counter(0/0,3,loyalty)
auto=may name(Create Boo) token(Boo,Legendary Creature Hamster,1/1,red,trample,haste)
auto=@each my upkeep:may name(Create Boo) token(Boo,Legendary Creature Hamster,1/1,red,trample,haste)
auto={C(0/0,+1,Loyalty)}:name(Don't put counters) donothing
auto={C(0/0,+1,Loyalty)}:name(Put 1/1 counters) target(creature[trample;haste]) counter(1/1,3)
auto={C(0/0,2,Loyalty)}{S(creature[-hamster]|mybattlefield)}:name(Sacrifice a non hamster creature) target(player,creature,planeswalker) damage:storedpower
auto={C(0/0,2,Loyalty)}{S(creature[hamster]|mybattlefield)}:name(Sacrifice a hamster) target(player,creature,planeswalker) damage:storedpower && draw:storedpower controller
text=When Minsc & Boo, Timeless Heroes enters the battlefield and at the beginning of your upkeep, you may create Boo, a legendary 1/1 red Hamster creature token with trample and haste. -- [+1]: Put three +1/+1 counters on up to one target creature with trample or haste. -- [2]: Sacrifice a creature. When you do, Minsc & Boo, Timeless Heroes deals X damage to any target, where X is that creature's power. If the sacrificed creature was a Hamster, draw X cards. -- Minsc & Boo, Timeless Heroes can be your commander.
mana={2}{R}{G}
type=Legendary Planeswalker
subtype=Minsc
[/card]
[card]
name=Mordenkainen name=Mordenkainen
auto=counter(0/0,5,Loyalty) auto=counter(0/0,5,Loyalty)
auto={C(0/0,2,Loyalty)}:name(+2: Draw 2 cards) draw:2 && transforms((,newability[name(Put on bottom) target(*|myhand) bottomoflibrary])) forever auto={C(0/0,2,Loyalty)}:name(+2: Draw 2 cards) draw:2 && transforms((,newability[name(Put on bottom) target(*|myhand) bottomoflibrary])) forever
@@ -2087,7 +2114,7 @@ subtype=Bolas
[card] [card]
name=Nicol Bolas, the Deceiver name=Nicol Bolas, the Deceiver
auto=counter(0/0,5,loyalty) auto=counter(0/0,5,loyalty)
auto={C(0/0,3,Loyalty)}:name(+3: Loses 3 life unless discard or sacrifices permanent) ability$!choice life:-3 controller choice sacrifice notatarget(*[-land]|mybattlefield) choice target(*|myhand) reject$! opponent auto={C(0/0,3,Loyalty)}:name(+3: Loses 3 life unless discard or sacrifices permanent) ability$!choice life:-3 controller choice sacrifice notatarget(*[-land]|mybattlefield) choice target(*|myhand) reject!$ opponent
auto={C(0/0,-3,Loyalty)}:name(-3: Destroy target creature and draw a card) destroy target(creature) and!(draw:1 controller)! auto={C(0/0,-3,Loyalty)}:name(-3: Destroy target creature and draw a card) destroy target(creature) and!(draw:1 controller)!
auto={C(0/0,-11,Loyalty)}:name(-11: Deals 7 damage and draw 7) damage:7 opponent and!(draw:7 controller)! auto={C(0/0,-11,Loyalty)}:name(-11: Deals 7 damage and draw 7) damage:7 opponent and!(draw:7 controller)!
text=+3: Each opponent loses 3 life unless that player sacrifices a nonland permanent or discards a card. -- -3: Destroy target creature. Draw a card. -- -11: Nicol Bolas, the Deceiver deals 7 damage to each opponent. You draw seven cards. text=+3: Each opponent loses 3 life unless that player sacrifices a nonland permanent or discards a card. -- -3: Destroy target creature. Draw a card. -- -11: Nicol Bolas, the Deceiver deals 7 damage to each opponent. You draw seven cards.
@@ -2173,7 +2200,7 @@ subtype=Nissa
name=Nissa, Steward of Elements name=Nissa, Steward of Elements
auto=counter(0/0,X,loyalty) auto=counter(0/0,X,loyalty)
aicode=activate transforms((,newability[if type(creature[manacost<=hascntloyalty;zpos=1]|mylibrary)~morethan~0 then all(*[zpos<=1]|mylibrary) name(Put on battlefield) moveto(mybattlefield)],newability[if type(land[zpos=1]|mylibrary)~morethan~0 then all(*[zpos<=1]|mylibrary) name(Put on battlefield) moveto(mybattlefield)])) oneshot aicode=activate transforms((,newability[if type(creature[manacost<=hascntloyalty;zpos=1]|mylibrary)~morethan~0 then all(*[zpos<=1]|mylibrary) name(Put on battlefield) moveto(mybattlefield)],newability[if type(land[zpos=1]|mylibrary)~morethan~0 then all(*[zpos<=1]|mylibrary) name(Put on battlefield) moveto(mybattlefield)])) oneshot
auto={C(0/0,2,Loyalty)}:name(+2: Scry 2) _SCRY_(2) auto={C(0/0,2,Loyalty)}:name(+2: Scry 2) _SCRY2_
auto={C(0/0,0,Loyalty)}: restriction{type(land[zpos=1]|mylibrary)~morethan~0} name(+0: Look top card) reveal:1 optionone name(Put on battlefield) target(<upto:1>land|reveal) moveto(mybattlefield) optiononeend optiontwo name(Put back) target(*|reveal) moveto(mylibrary) optiontwoend revealend auto={C(0/0,0,Loyalty)}: restriction{type(land[zpos=1]|mylibrary)~morethan~0} name(+0: Look top card) reveal:1 optionone name(Put on battlefield) target(<upto:1>land|reveal) moveto(mybattlefield) optiononeend optiontwo name(Put back) target(*|reveal) moveto(mylibrary) optiontwoend revealend
auto={C(0/0,0,Loyalty)}: restriction{type(creature[zpos=1]|mylibrary)~morethan~0} name(+0: Look top card) reveal:1 optionone name(Put on battlefield) target(<upto:1>creature[manacost<=hascntloyalty]|reveal) moveto(mybattlefield) optiononeend optiontwo name(Put back) target(*|reveal) moveto(mylibrary) optiontwoend revealend auto={C(0/0,0,Loyalty)}: restriction{type(creature[zpos=1]|mylibrary)~morethan~0} name(+0: Look top card) reveal:1 optionone name(Put on battlefield) target(<upto:1>creature[manacost<=hascntloyalty]|reveal) moveto(mybattlefield) optiononeend optiontwo name(Put back) target(*|reveal) moveto(mylibrary) optiontwoend revealend
auto={C(0/0,0,Loyalty)}: restriction{type(*[-creature;-land;zpos=1]|mylibrary)~morethan~0} name(+0: Look top card)) reveal:1 optionone name(Put back) target(*|reveal) moveto(mylibrary) optiononeend optiontwo name(Put back) all(*|reveal) moveto(mylibrary) optiontwoend revealend auto={C(0/0,0,Loyalty)}: restriction{type(*[-creature;-land;zpos=1]|mylibrary)~morethan~0} name(+0: Look top card)) reveal:1 optionone name(Put back) target(*|reveal) moveto(mylibrary) optiononeend optiontwo name(Put back) all(*|reveal) moveto(mylibrary) optiontwoend revealend
@@ -2247,7 +2274,7 @@ abilities=canbecommander
auto=counter(0/0,3,loyalty) auto=counter(0/0,3,loyalty)
auto={C(0/0,2,Loyalty)}:name(+2: Each opponent loses 1 life...) life:-1 opponent && life:1 controller auto={C(0/0,2,Loyalty)}:name(+2: Each opponent loses 1 life...) life:-1 opponent && life:1 controller
auto={C(0/0,-2,Loyalty)}:name(-2: Create a 5/5 black Demon with flying...) token(Demon,Creature Demon,5/5,black,flying) && life:-2 controller auto={C(0/0,-2,Loyalty)}:name(-2: Create a 5/5 black Demon with flying...) token(Demon,Creature Demon,5/5,black,flying) && life:-2 controller
auto={C(0/0,-8,Loyalty)}:name(-8: Emblem: "{1}{B}, sacrifice a creature: Draw X and gain X life") emblem transforms((,newability[{1}{B}{S(creature|myBattlefield}:draw:storedpower && life:storedpower])) forever dontremove auto={C(0/0,-8,Loyalty)}:name(-8: Emblem: "{1}{B}, sacrifice a creature: Draw X and gain X life") emblem transforms((,newability[{1}{B}{S(creature|myBattlefield)}:draw:storedpower && life:storedpower])) forever dontremove
text=+2: Each opponent loses 1 life. You gain life equal to the life lost this way. -- -2: Create a 5/5 black Demon creature token with flying. You lose 2 life. -- -8: You get an emblem with "{1}{B}, Sacrifice a creature: You gain X life and draw X cards, where X is the sacrificed creature's power." -- Ob Nixilis of the Black Oath can be your commander. text=+2: Each opponent loses 1 life. You gain life equal to the life lost this way. -- -2: Create a 5/5 black Demon creature token with flying. You lose 2 life. -- -8: You get an emblem with "{1}{B}, Sacrifice a creature: You gain X life and draw X cards, where X is the sacrificed creature's power." -- Ob Nixilis of the Black Oath can be your commander.
mana={3}{B}{B} mana={3}{B}{B}
type=Legendary Planeswalker type=Legendary Planeswalker
@@ -2349,7 +2376,7 @@ name=Ral, Storm Conduit
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot
auto=@movedTo(*[instant;sorcery]|myStack):ability$!name(Choose one) choice name(Damage opponent) damage:1 target(opponent) _ choice name(Damage Planeswalker) damage:1 target(planeswalker)!$ controller auto=@movedTo(*[instant;sorcery]|myStack):ability$!name(Choose one) choice name(Damage opponent) damage:1 target(opponent) _ choice name(Damage Planeswalker) damage:1 target(planeswalker)!$ controller
auto={C(0/0,2,Loyalty)}:name(+2: Scry: 1) _SCRY_(1) auto={C(0/0,2,Loyalty)}:name(+2: Scry: 1) _SCRY1_
auto={C(0/0,-2,Loyalty)}:name(-2: Whenever cast instant or sorcery copy spell) emblem transforms((,newability[@movedto(*[instant;sorcery]|myStack) turnlimited:all(trigger[to]) activate castcard(copied noevent)])) ueot auto={C(0/0,-2,Loyalty)}:name(-2: Whenever cast instant or sorcery copy spell) emblem transforms((,newability[@movedto(*[instant;sorcery]|myStack) turnlimited:all(trigger[to]) activate castcard(copied noevent)])) ueot
text=Whenever you cast or copy an instant or sorcery spell, Ral, Storm Conduit deals 1 damage to target opponent or planeswalker. -- +2: Scry 1. -- 2: When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy. text=Whenever you cast or copy an instant or sorcery spell, Ral, Storm Conduit deals 1 damage to target opponent or planeswalker. -- +2: Scry 1. -- 2: When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy.
mana={3}{U}{R} mana={3}{U}{R}
@@ -2370,7 +2397,7 @@ subtype=Ral
[card] [card]
name=Rowan, Fearless Sparkmage name=Rowan, Fearless Sparkmage
auto=counter(0/0,5,loyalty) auto=counter(0/0,5,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: +3/+3 and First Strike) target(creature) 3/0 ueot && first strike ueot auto={C(0/0,1,Loyalty)}:name(+1: +3/0 and First Strike) target(creature) 3/0 ueot && first strike ueot
auto={C(0/0,-2,Loyalty)}:name(-2: Deals 1 damage and can't block) target(<upto:2>creature) damage:1 && cantblock ueot auto={C(0/0,-2,Loyalty)}:name(-2: Deals 1 damage and can't block) target(<upto:2>creature) damage:1 && cantblock ueot
auto={C(0/0,-9,Loyalty)}:name(-9: Gain control of creatures) all(creature|battlefield) moveTo(mybattlefield) && all(creature|battlefield) transforms((,newability[phaseaction[endofturn sourceinplay] moveTo(ownerbattlefield)],newability[untap],haste)) ueot oneshot auto={C(0/0,-9,Loyalty)}:name(-9: Gain control of creatures) all(creature|battlefield) moveTo(mybattlefield) && all(creature|battlefield) transforms((,newability[phaseaction[endofturn sourceinplay] moveTo(ownerbattlefield)],newability[untap],haste)) ueot oneshot
text=+1: Up to one target creature gets +3/+0 and gains first strike until end of turn. -- -2: Rowan, Fearless Sparkmage deals 1 damage to each of up to two target creatures. Those creatures can't block this turn. -- -9: Gain control of all creatures until end of turn. Untap them. They gain haste until end of turn. text=+1: Up to one target creature gets +3/+0 and gains first strike until end of turn. -- -2: Rowan, Fearless Sparkmage deals 1 damage to each of up to two target creatures. Those creatures can't block this turn. -- -9: Gain control of all creatures until end of turn. Untap them. They gain haste until end of turn.
@@ -2398,7 +2425,7 @@ subtype=Rowan
name=Saheeli Rai name=Saheeli Rai
auto=counter(0/0,3,loyalty) auto=counter(0/0,3,loyalty)
aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot
auto={C(0/0,1,Loyalty)}:name(+1: Scry and deals 1 damage) _SCRY_(1) && damage:1 opponent auto={C(0/0,1,Loyalty)}:name(+1: Scry and deals 1 damage) _SCRY1_ && damage:1 opponent
auto={C(0/0,-2,Loyalty)}:name(-2: Create a copy of artifact or creature) target(*[creature;artifact]|myBattlefield) clone with(treason,haste) addtype(artifact) auto={C(0/0,-2,Loyalty)}:name(-2: Create a copy of artifact or creature) target(*[creature;artifact]|myBattlefield) clone with(treason,haste) addtype(artifact)
auto={C(0/0,-7,Loyalty)}:name(-7: Search three different artifacts) reveal:plibrarycount optionone name(choose cards) target(<upto:3>artifact|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield))! afterrevealedend revealend auto={C(0/0,-7,Loyalty)}:name(-7: Search three different artifacts) reveal:plibrarycount optionone name(choose cards) target(<upto:3>artifact|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield))! afterrevealedend revealend
text=+1: Scry 1. Saheeli Rai deals 1 damage to each opponent. -- 2: Create a token that's a copy of target artifact or creature you control, except it's an artifact in addition to its other types. That token gains haste. Exile it at the beginning of the next end step. -- 7: Search your library for up to three artifact cards with different names, put them onto the battlefield, then shuffle your library. text=+1: Scry 1. Saheeli Rai deals 1 damage to each opponent. -- 2: Create a token that's a copy of target artifact or creature you control, except it's an artifact in addition to its other types. That token gains haste. Exile it at the beginning of the next end step. -- 7: Search your library for up to three artifact cards with different names, put them onto the battlefield, then shuffle your library.
@@ -2409,7 +2436,7 @@ subtype=Saheeli
[card] [card]
name=Saheeli, Sublime Artificer name=Saheeli, Sublime Artificer
auto=counter(0/0,5,loyalty) auto=counter(0/0,5,loyalty)
auto=@movedTo(*[-creature]|mystack):token(Servo,Artifact Creature Servo,1/1) auto=@movedTo(*[-creature]|mystack):_SERVOTOKEN_
auto={C(0/0,-2,Loyalty)}:name(-2: Create a copy of target artifact) target(artifact) transforms((,newability[copy target(*[artifact;creature]|mybattlefield)],newability[becomes(artifact)])) ueot auto={C(0/0,-2,Loyalty)}:name(-2: Create a copy of target artifact) target(artifact) transforms((,newability[copy target(*[artifact;creature]|mybattlefield)],newability[becomes(artifact)])) ueot
text=Whenever you cast a noncreature spell, create a 1/1 colorless Servo artifact creature token. -- -2: Target artifact you control becomes a copy of another target artifact or creature you control until end of turn, except it's an artifact in addition to its other types. text=Whenever you cast a noncreature spell, create a 1/1 colorless Servo artifact creature token. -- -2: Target artifact you control becomes a copy of another target artifact or creature you control until end of turn, except it's an artifact in addition to its other types.
mana={1}{UR}{UR} mana={1}{UR}{UR}
@@ -2420,7 +2447,7 @@ subtype=Saheeli
name=Saheeli, the Gifted name=Saheeli, the Gifted
abilities=canbecommander abilities=canbecommander
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Create a 1/1 colorless Servo) token(Servo,Artifact Creature Servo,1/1) auto={C(0/0,1,Loyalty)}:name(+1: Create a 1/1 colorless Servo) _SERVOTOKEN_
auto={C(0/0,-1,Loyalty)}:name(-1: The next spell has affinity for artifacts) lord(*|mycastingzone):affinityartifacts oneshot auto={C(0/0,-1,Loyalty)}:name(-1: The next spell has affinity for artifacts) lord(*|mycastingzone):affinityartifacts oneshot
auto={C(0/0,-7,Loyalty)}:name(-7: Create a token for each artifact) clone all(artifact|mybattlefield) with (unreath) auto={C(0/0,-7,Loyalty)}:name(-7: Create a token for each artifact) clone all(artifact|mybattlefield) with (unreath)
text=+1: Create a 1/1 colorless Servo artifact creature token. -- +1: The next spell you cast this turn costs {1} less to cast for each artifact you control as you cast it. -- -7: For each artifact you control, create a token that's a copy of it. Those tokens gain haste. Exile those tokens at the beginning of the next end step. -- Saheeli, the Gifted can be your commander. text=+1: Create a 1/1 colorless Servo artifact creature token. -- +1: The next spell you cast this turn costs {1} less to cast for each artifact you control as you cast it. -- -7: For each artifact you control, create a token that's a copy of it. Those tokens gain haste. Exile those tokens at the beginning of the next end step. -- Saheeli, the Gifted can be your commander.
@@ -2445,7 +2472,7 @@ name=Samut, Tyrant Smasher
auto=counter(0/0,5,loyalty) auto=counter(0/0,5,loyalty)
auto=lord(other creature|myBattlefield) haste auto=lord(other creature|myBattlefield) haste
aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot
auto={C(0/0,-1,Loyalty)}:name(-1: Creature gains +2/+1, haste and scry 1) target(creature) transforms((,newability[2/1],newability[haste])) ueot && _SCRY_(1) auto={C(0/0,-1,Loyalty)}:name(-1: Creature gains +2/+1, haste and scry 1) target(creature) transforms((,newability[2/1],newability[haste])) ueot && _SCRY1_
text=Creatures you control have haste. -- -1: Target creature gets +2/+1 and gains haste until end of turn. Scry 1. text=Creatures you control have haste. -- -1: Target creature gets +2/+1 and gains haste until end of turn. Scry 1.
mana={2}{RG}{RG} mana={2}{RG}{RG}
type=Legendary Planeswalker type=Legendary Planeswalker
@@ -2465,7 +2492,7 @@ subtype=Sarkhan
[card] [card]
name=Sarkhan, Fireblood name=Sarkhan, Fireblood
auto=counter(0/0,3,loyalty) auto=counter(0/0,3,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Discard and draw) ability$!may reject notatarget(*|myhand) and!(draw:1)! !$ controller auto={C(0/0,1,Loyalty)}:name(+1: Discard and draw) ability$!may _DISCARD&DRAW_ !$ controller
auto={C(0/0,1,Loyalty)}:name(+1: Add two mana in any combination of colors) if type(dragon|mycastingzone)~morethan~0 then thisforeach(variable{2}) ability$!name(add mana) choice add{G} _ choice add{R} _ choice add{U} _ choice add{B} _ choice add{W}!$ controller auto={C(0/0,1,Loyalty)}:name(+1: Add two mana in any combination of colors) if type(dragon|mycastingzone)~morethan~0 then thisforeach(variable{2}) ability$!name(add mana) choice add{G} _ choice add{R} _ choice add{U} _ choice add{B} _ choice add{W}!$ controller
auto={C(0/0,-7,Loyalty)}:name(-7: Create four 5/5 Dragons) _DRAGONTOKEN_*4 auto={C(0/0,-7,Loyalty)}:name(-7: Create four 5/5 Dragons) _DRAGONTOKEN_*4
text=+1: You may discard a card. If you do, draw a card. -- +1: Add two mana in any combination of colors. Spend this mana only to cast Dragon spells. -- 7: Create four 5/5 red Dragon creature tokens with flying. text=+1: You may discard a card. If you do, draw a card. -- +1: Add two mana in any combination of colors. Spend this mana only to cast Dragon spells. -- 7: Create four 5/5 red Dragon creature tokens with flying.
@@ -2582,7 +2609,7 @@ subtype=Sorin
[card] [card]
name=Sorin, Imperious Bloodlord name=Sorin, Imperious Bloodlord
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Deathtouch and Lifelink a Vampire) target(creature[vampire]|myBattlefield) deathtouch ueot && lifelink ueotcounter(1/1) restriction{type(creature[vampire]) auto={C(0/0,1,Loyalty)}:name(+1: Deathtouch and Lifelink a Vampire) target(creature[vampire]|myBattlefield) deathtouch ueot && lifelink ueotcounter(1/1) restriction{type(creature[vampire])}
auto={C(0/0,1,Loyalty)}:name(+1: Deathtouch and Lifelink) target(creature[-vampire]|myBattlefield) deathtouch ueot && lifelink ueot auto={C(0/0,1,Loyalty)}:name(+1: Deathtouch and Lifelink) target(creature[-vampire]|myBattlefield) deathtouch ueot && lifelink ueot
auto={C(0/0,1,Loyalty)}{S(vampire|myBattlefield)}:name(+1: Sacrifice and deals 3 damage) damage:3 target(player,creature,planeswalker) auto={C(0/0,1,Loyalty)}{S(vampire|myBattlefield)}:name(+1: Sacrifice and deals 3 damage) damage:3 target(player,creature,planeswalker)
auto={C(0/0,-3,Loyalty)}:name(-3: Put a Vampire from your hand onto the battlefield) moveto(myBattlefield) target(creature[vampire]|myHand) auto={C(0/0,-3,Loyalty)}:name(-3: Put a Vampire from your hand onto the battlefield) moveto(myBattlefield) target(creature[vampire]|myHand)
@@ -2716,6 +2743,18 @@ type=Legendary Planeswalker
subtype=Tamiyo subtype=Tamiyo
[/card] [/card]
[card] [card]
name=Tasha, the Witch Queen
abilities=canbecommander
auto=counter(0/0,4,loyalty)
auto=@movedTo(*|mystack) from(opponentzones):name(Create demon) token(Demon,Creature Demon,3/3,black)
auto={C(0/0,+1,Loyalty)}:name(Draw a card) all(*[zpos=1]|mylibrary) moveto(myhand) and!( transforms((,newability[may name(Exile spell) target(*[instant;sorcery]|opponentgraveyard) moveto(exile) and!( counter(0/0.1.Page) )!])) oneshot )!
auto={C(0/0,3,Loyalty)}:name(Cast an exiled spell) target(*[-land;counter{0/0.1.Page}]|exile) activate castcard(normal)
text=Whenever you cast a spell you don't own, create a 3/3 black Demon creature token. -- [+1]: Draw a card. For each opponent, exile up to one target instant or sorcery card from that player's graveyard and put a page counter on it. -- [3]: You may cast a spell from among cards in exile with page counters on them without paying its mana cost. -- Tasha, the Witch Queen can be your commander.
mana={3}{U}{B}
type=Legendary Planeswalker
subtype=Tasha
[/card]
[card]
name=Teferi, Hero of Dominaria name=Teferi, Hero of Dominaria
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Draw a card and untap two lands) draw:1 controller && phaseaction[endofturn once] untap target(<2>land) auto={C(0/0,1,Loyalty)}:name(+1: Draw a card and untap two lands) draw:1 controller && phaseaction[endofturn once] untap target(<2>land)
@@ -2729,7 +2768,7 @@ subtype=Teferi
[card] [card]
name=Teferi, Master of Time name=Teferi, Master of Time
auto=counter(0/0,3,loyalty) auto=counter(0/0,3,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Draw a card and discard one) draw:1 controller && transforms((,newability[target(*|myhand) reject])) oneshot auto={C(0/0,1,Loyalty)}:name(+1: Draw a card and discard one) _LOOT_
auto={C(0/0,-3,Loyalty)}:name(-3: Target creature you don't control phases out) target(creature|opponentBattlefield) phaseout auto={C(0/0,-3,Loyalty)}:name(-3: Target creature you don't control phases out) target(creature|opponentBattlefield) phaseout
auto={C(0/0,-10,Loyalty)}:name(-10: Take two extra turns) turns:+2 controller auto={C(0/0,-10,Loyalty)}:name(-10: Take two extra turns) turns:+2 controller
text=You may activate loyalty abilities of Teferi, Master of Time on any player's turn any time you could cast an instant. -- +1: Draw a card, then discard a card. -- 3: Target creature you don't control phases out. (Treat it and anything attached to it as though they don't exist until its controller's next turn.) -- 10: Take two extra turns after this one. text=You may activate loyalty abilities of Teferi, Master of Time on any player's turn any time you could cast an instant. -- +1: Draw a card, then discard a card. -- 3: Target creature you don't control phases out. (Treat it and anything attached to it as though they don't exist until its controller's next turn.) -- 10: Take two extra turns after this one.
@@ -2864,7 +2903,7 @@ name=Tezzeret, Cruel Machinist
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Draw a card) draw:1 controller auto={C(0/0,1,Loyalty)}:name(+1: Draw a card) draw:1 controller
auto={C(0/0,0,Loyalty)}:name(+0: Target artifact becomes 5/5) target(artifact) transforms((Artifact Creature,setpower=5,settoughness=5)) uynt auto={C(0/0,0,Loyalty)}:name(+0: Target artifact becomes 5/5) target(artifact) transforms((Artifact Creature,setpower=5,settoughness=5)) uynt
auto={C(0/0,-7,Loyalty)}:name(-7: Manifest any number of cards form your hand) manifest notatarget(<anyamount>*|myHand) and!( transforms((Artifact Creature,setpower=5,settoughness=5) forever )! auto={C(0/0,-7,Loyalty)}:name(-7: Manifest any number of cards form your hand) manifest notatarget(<anyamount>*|myHand) and!( transforms((Artifact Creature,setpower=5,settoughness=5)) forever )!
text=+1: Draw a card. -- 0: Until your next turn, target artifact you control becomes a 5/5 creature in addition to its other types. -- 7: Put any number of cards from your hand onto the battlefield face down. They're 5/5 artifact creatures. text=+1: Draw a card. -- 0: Until your next turn, target artifact you control becomes a 5/5 creature in addition to its other types. -- 7: Put any number of cards from your hand onto the battlefield face down. They're 5/5 artifact creatures.
mana={4}{U}{U} mana={4}{U}{U}
type=Legendary Planeswalker type=Legendary Planeswalker
@@ -3288,7 +3327,7 @@ subtype=Wrenn
[/card] [/card]
[card] [card]
name=Xenagos, the Reveler name=Xenagos, the Reveler
aicode=activate transforms((,newability[all(*[zpos<=7]|mylibrary) moveto(exile) and!( if cantargetcard(*[creature;land]|*) then moveto(ownerbattlefield)])) ueot aicode=activate transforms((,newability[all(*[zpos<=7]|mylibrary) moveto(exile) and!( if cantargetcard(*[creature;land]|*) then moveto(ownerbattlefield)])!)) ueot
auto=counter(0/0,3,loyalty) auto=counter(0/0,3,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Add X combination of red and green mana for each creature) foreach(creature|mybattlefield) ability$!name(Choose one) choice name(Add Red) add{R} _ choice name(Add Green) add{G}!$ controller auto={C(0/0,1,Loyalty)}:name(+1: Add X combination of red and green mana for each creature) foreach(creature|mybattlefield) ability$!name(Choose one) choice name(Add Red) add{R} _ choice name(Add Green) add{G}!$ controller
auto={C(0/0,0,Loyalty)}:name(+0: Create a 2/2 Satyr) token(Satyr,Creature Satyr,2/2,green,red,haste) auto={C(0/0,0,Loyalty)}:name(+0: Create a 2/2 Satyr) token(Satyr,Creature Satyr,2/2,green,red,haste)
@@ -58,6 +58,17 @@ mana={2}{W}
type=Instant type=Instant
[/card] [/card]
[card] [card]
name=Aboleth Spawn
abilities=flash
auto=_WARD_(2)
text=Flash -- Ward {2} -- Probing Telepathy - Whenever a creature entering the battlefield under an opponent's control causes a triggered ability of that creature to trigger, you may copy that ability. You may choose new targets for the copy.
mana={2}{U}
type=Creature
subtype=Fish Horror
power=2
toughness=3
[/card]
[card]
name=Abstract Iguanart name=Abstract Iguanart
text=Whenever you cast a spell, note the first letter of its artist's name. If that letter wasn't already noted, put a +1/+1 counter on Abstract Iguanart. text=Whenever you cast a spell, note the first letter of its artist's name. If that letter wasn't already noted, put a +1/+1 counter on Abstract Iguanart.
mana={1}{R} mana={1}{R}
@@ -350,6 +361,16 @@ power=5
toughness=4 toughness=4
[/card] [/card]
[card] [card]
name=Archivist of Oghma
abilities=flash
text=Flash -- Whenever an opponent searches their library, you gain 1 life and draw a card.
mana={1}{W}
type=Creature
subtype=Halfling Cleric
power=2
toughness=2
[/card]
[card]
name=Arcum's Whistle name=Arcum's Whistle
text={3}, {T}: Choose target non-Wall creature the active player has controlled continuously since the beginning of the turn. That player may pay {X}, where X is that creature's converted mana cost. If he or she doesn't, the creature attacks this turn if able, and at the beginning of the next end step, destroy it if it didn't attack. Activate this ability only before attackers are declared. text={3}, {T}: Choose target non-Wall creature the active player has controlled continuously since the beginning of the turn. That player may pay {X}, where X is that creature's converted mana cost. If he or she doesn't, the creature attacks this turn if able, and at the beginning of the next end step, destroy it if it didn't attack. Activate this ability only before attackers are declared.
mana={3} mana={3}
@@ -377,13 +398,6 @@ power=6
toughness=6 toughness=6
[/card] [/card]
[card] [card]
name=Armor of Thorns
text=You may cast Armor of Thorns as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant nonblack creature -- Enchanted creature gets +2/+2.
mana={1}{G}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Arms Depot name=Arms Depot
text=Whenever you crank Arms Depot, put two +1/+1 counters on target creature. text=Whenever you crank Arms Depot, put two +1/+1 counters on target creature.
type=Artifact type=Artifact
@@ -2640,6 +2654,16 @@ mana={1}{R}{R}
type=Enchantment type=Enchantment
[/card] [/card]
[card] [card]
name=Dynaheir, Invoker Adept
abilities=haste
text=Haste -- You may activate abilities of other creatures you control as though those creatures had haste. -- {T}: When you next activate an ability that isn't a mana ability this turn by spending four or more mana to activate it, copy that ability. You may choose new targets for the copy.
mana={1}{U}{R}{W}
type=Legendary Creature
subtype=Human Wizard
power=4
toughness=4
[/card]
[card]
name=Earl of Squirrel name=Earl of Squirrel
text=Squirrellink (Damage dealt by this creature also causes you to create that many 1/1 green Squirrel creature tokens.) -- Creature tokens you control are Squirrels in addition to their other creature types. -- Other Squirrels you control get +1/+1. text=Squirrellink (Damage dealt by this creature also causes you to create that many 1/1 green Squirrel creature tokens.) -- Creature tokens you control are Squirrels in addition to their other creature types. -- Other Squirrels you control get +1/+1.
mana={4}{G}{G} mana={4}{G}{G}
@@ -3374,6 +3398,12 @@ mana={U}{U}{U}{U}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Fraying Line
text=When Fraying Line enters the battlefield, put a rope counter on target creature you control. -- At the beginning of each player's upkeep, that player may pay {2}. If they do, they put a rope counter on a creature they control. Otherwise, exile Fraying Line and each creature without a rope counter on it, then remove all rope counters from all creatures.
mana={4}
type=Artifact
[/card]
[card]
name=Frazzled Editor name=Frazzled Editor
text=Protection from wordy (Something is wordy if it has four or more lines of text in its text box.) text=Protection from wordy (Something is wordy if it has four or more lines of text in its text box.)
mana={1}{R} mana={1}{R}
@@ -3960,13 +3990,6 @@ mana={2}{G}
type=Instant type=Instant
[/card] [/card]
[card] [card]
name=Grave Servitude
text=You may cast Grave Servitude as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant creature -- Enchanted creature gets +3/-1 and is black.
mana={1}{B}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Graveyard Busybody name=Graveyard Busybody
text=All graveyards are also your graveyards. -- Graveyard Busybody's power and toughness are each equal to the number of cards with flavor text in your graveyards. text=All graveyards are also your graveyards. -- Graveyard Busybody's power and toughness are each equal to the number of cards with flavor text in your graveyards.
mana={4}{U}{U} mana={4}{U}{U}
@@ -3991,6 +4014,25 @@ mana={1}{W}
type=Enchantment type=Enchantment
[/card] [/card]
[card] [card]
name=Green Slime
abilities=flash
text=Flash -- When Green Slime enters the battlefield, counter target activated or triggered ability from an artifact or enchantment source. If a permanent's ability is countered this way, destroy that permanent. -- Foretell {G} (During your turn, you may pay {2} and exile this card from your hand face down. Cast it on a later turn for its foretell cost.)
mana={2}{G}
type=Creature
subtype=Ooze
power=2
toughness=2
[/card]
[card]
name=Grell Philosopher
text=Aberrant Tinkering - When Grell Philosopher enters the battlefield and at the beginning of your upkeep, each Horror you control gains all activated abilities of target artifact an opponent controls until end of turn. You may spend blue mana as though it were mana of any color to activate those abilities.
mana={2}{U}
type=Creature
subtype=Horror Wizard
power=1
toughness=4
[/card]
[card]
name=Grim Reminder name=Grim Reminder
text=Search your library for a nonland card and reveal it. Each opponent who cast a card this turn with the same name as that card loses 6 life. Then shuffle your library. -- {B}{B}: Return Grim Reminder from your graveyard to your hand. Activate this ability only during your upkeep. text=Search your library for a nonland card and reveal it. Each opponent who cast a card this turn with the same name as that card loses 6 life. Then shuffle your library. -- {B}{B}: Return Grim Reminder from your graveyard to your hand. Activate this ability only during your upkeep.
mana={2}{B} mana={2}{B}
@@ -4995,6 +5037,15 @@ mana={1}
type=Artifact type=Artifact
[/card] [/card]
[card] [card]
name=Jon Irenicus, Shattered One
text=At the beginning of your end step, target opponent gains control of up to one target creature you control. Put two +1/+1 counters on it and tap it. It's goaded for the rest of the game and it gains "This creature can't be sacrificed." (It attacks each combat if able and attacks a player other than you if able.) -- Whenever a creature you own but don't control attacks, you draw a card.
mana={2}{U}{B}
type=Legendary Creature
subtype=Elf Wizard
power=3
toughness=3
[/card]
[card]
name=Jotun Grunt name=Jotun Grunt
text=Cumulative upkeep-Put two cards from a single graveyard on the bottom of their owner's library. (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.) text=Cumulative upkeep-Put two cards from a single graveyard on the bottom of their owner's library. (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.)
mana={1}{W} mana={1}{W}
@@ -5483,6 +5534,22 @@ mana={4}{R}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Lae'zel, Vlaakith's Champion
abilities=backgroundpartner
text=If you would put one or more counters on a creature or planeswalker you control or on yourself, put that many plus one of each of those kinds of counters on that permanent or player instead. -- Choose a Background (You can have a Background as a second commander.)
mana={2}{W}
type=Legendary Creature
subtype=Gith Warrior
power=3
toughness=3
[/card]
[card]
name=Lae'zel's Acrobatics
text=Exile all nontoken creatures you control, then roll a d20. -- 1-9 | Return those cards to the battlefield under their owner's control at the beginning of the next end step. -- 10-20 | Return those cards to the battlefield under their owner's control, then exile them again. Return those cards to the battlefield under their owner's control at the beginning of the next end step.
mana={3}{W}
type=Instant
[/card]
[card]
name=Lash Out name=Lash Out
text=Lash Out deals 3 damage to target creature. Clash with an opponent. If you win, Lash Out deals 3 damage to that creature's controller. (Each clashing player reveals the top card of his or her library, then puts that card on the top or bottom. A player wins if his or her card had a higher converted mana cost.) text=Lash Out deals 3 damage to target creature. Clash with an opponent. If you win, Lash Out deals 3 damage to that creature's controller. (Each clashing player reveals the top card of his or her library, then puts that card on the top or bottom. A player wins if his or her card had a higher converted mana cost.)
mana={1}{R} mana={1}{R}
@@ -5657,13 +5724,6 @@ mana={2}{W}{W}
type=Enchantment type=Enchantment
[/card] [/card]
[card] [card]
name=Lightning Reflexes
text=You may cast Lightning Reflexes as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant creature -- Enchanted creature gets +1/+0 and has first strike.
mana={1}{R}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Lightning Storm name=Lightning Storm
text=Lightning Storm deals X damage to target creature or player, where X is 3 plus the number of charge counters on it. -- Discard a land card: Put two charge counters on Lightning Storm. You may choose a new target for it. Any player may activate this ability but only if Lightning Storm is on the stack. text=Lightning Storm deals X damage to target creature or player, where X is 3 plus the number of charge counters on it. -- Discard a land card: Put two charge counters on Lightning Storm. You may choose a new target for it. Any player may activate this ability but only if Lightning Storm is on the stack.
mana={1}{R}{R} mana={1}{R}{R}
@@ -6173,6 +6233,16 @@ mana={5}{R}
type=Enchantment type=Enchantment
[/card] [/card]
[card] [card]
name=Mighty Servant of Leuk-o
abilities=trample
text=Trample -- Ward-Discard a card. -- Whenever Mighty Servant of Leuk-o becomes crewed for the first time each turn, if it was crewed by exactly two creatures, it gains "Whenever this creature deals combat damage to a player, draw two cards" until end of turn. -- Crew 4
mana={3}
type=Artifact
subtype=Vehicle
power=6
toughness=6
[/card]
[card]
name=Minamo's Meddling name=Minamo's Meddling
text=Counter target spell. That spell's controller reveals his or her hand, then discards each card with the same name as a card spliced onto that spell. text=Counter target spell. That spell's controller reveals his or her hand, then discards each card with the same name as a card spliced onto that spell.
mana={2}{U}{U} mana={2}{U}{U}
@@ -6623,13 +6693,6 @@ mana={4}{W}
type=Enchantment type=Enchantment
[/card] [/card]
[card] [card]
name=Mystic Veil
text=You may cast Mystic Veil as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant creature -- Enchanted creature has shroud. (It can't be the target of spells or abilities.)
mana={1}{U}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Mythos of Snapdax name=Mythos of Snapdax
text=Each player chooses an artifact, a creature, an enchantment, and a planeswalker from among the nonland permanents they control, then sacrifices the rest. If {B}{R} was spent to cast this spell, you choose the permanents for each player instead. text=Each player chooses an artifact, a creature, an enchantment, and a planeswalker from among the nonland permanents they control, then sacrifices the rest. If {B}{R} was spent to cast this spell, you choose the permanents for each player instead.
mana={2}{W}{W} mana={2}{W}{W}
@@ -6866,6 +6929,13 @@ power=2
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Noble Heritage
text=Commander creatures you own have "When this creature enters the battlefield and at the beginning of your upkeep, each player may put two +1/+1 counters on a creature they control. For each opponent who does, you gain protection from that player until your next turn." (You can't be targeted, dealt damage, or enchanted by anything controlled by that player.)
mana={1}{W}
type=Legendary Enchantment
subtype=Background
[/card]
[card]
name=Nomads en-Kor name=Nomads en-Kor
text={0}: The next 1 damage that would be dealt to Nomads en-Kor this turn is dealt to target creature you control instead. text={0}: The next 1 damage that would be dealt to Nomads en-Kor this turn is dealt to target creature you control instead.
mana={W} mana={W}
@@ -7357,12 +7427,6 @@ mana={U}{B}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Parapet
text=You may cast Parapet as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Creatures you control get +0/+1.
mana={1}{W}
type=Enchantment
[/card]
[card]
name=Pardic Dragon name=Pardic Dragon
abilities=flying abilities=flying
text=Flying -- {R}: Pardic Dragon gets +1/+0 until end of turn. -- Suspend 2-{R}{R} -- Whenever an opponent casts a spell, if Pardic Dragon is suspended, that player may put a time counter on Pardic Dragon. text=Flying -- {R}: Pardic Dragon gets +1/+0 until end of turn. -- Suspend 2-{R}{R} -- Whenever an opponent casts a spell, if Pardic Dragon is suspended, that player may put a time counter on Pardic Dragon.
@@ -7903,6 +7967,15 @@ mana={4}{PR}
type=Artifact type=Artifact
[/card] [/card]
[card] [card]
name=Raggadragga, Goreguts Boss
text=Each creature you control with a mana ability gets +2/+2. -- Whenever a creature you control with a mana ability attacks, untap it. -- Whenever you cast a spell, if at least seven mana was spent to cast it, untap target creature. It gets +7/+7 and gains trample until end of turn.
mana={2}{R}{G}
type=Legendary Creature
subtype=Human Boar
power=4
toughness=4
[/card]
[card]
name=Raging River name=Raging River
text=Whenever one or more creatures you control attack, each defending player divides all creatures without flying he or she controls into a "left" pile and a "right" pile. Then, for each attacking creature you control, choose "left" or "right." That creature can't be blocked this combat except by creatures with flying and creatures in a pile with the chosen label. text=Whenever one or more creatures you control attack, each defending player divides all creatures without flying he or she controls into a "left" pile and a "right" pile. Then, for each attacking creature you control, choose "left" or "right." That creature can't be blocked this combat except by creatures with flying and creatures in a pile with the chosen label.
mana={R}{R} mana={R}{R}
@@ -8100,13 +8173,6 @@ mana={1}{R}
type=Instant type=Instant
[/card] [/card]
[card] [card]
name=Relic Ward
text=You may cast Relic Ward as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant artifact -- Enchanted artifact has shroud. (It can't be the target of spells or abilities.)
mana={1}{W}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Remodel name=Remodel
text=If you control two or more green permanents that share an artist, you may play Remodel without paying its mana cost. -- Remove target artifact from the game. text=If you control two or more green permanents that share an artist, you may play Remodel without paying its mana cost. -- Remove target artifact from the game.
mana={2}{G} mana={2}{G}
@@ -9148,13 +9214,6 @@ mana={2}{U}
type=Enchantment type=Enchantment
[/card] [/card]
[card] [card]
name=Soar
text=You may cast Soar as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant creature -- Enchanted creature gets +0/+1 and has flying.
mana={1}{U}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Socketed Sprocketer name=Socketed Sprocketer
text={T}: Uninstall all results from Socketed Sprocketer, then roll a six-sided die. Install the result on Socketed Sprocketer. (Put the die on this card.) -- You may uninstall a result from Socketed Sprocketer to use it for a die you rolled. -- Uninstall a 6 from Socketed Sprocketer: Draw a card. text={T}: Uninstall all results from Socketed Sprocketer, then roll a six-sided die. Install the result on Socketed Sprocketer. (Put the die on this card.) -- You may uninstall a result from Socketed Sprocketer to use it for a die you rolled. -- Uninstall a 6 from Socketed Sprocketer: Draw a card.
mana={U} mana={U}
@@ -9406,13 +9465,6 @@ power=5
toughness=6 toughness=6
[/card] [/card]
[card] [card]
name=Spider Climb
text=You may cast Spider Climb as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step. -- Enchant creature -- Enchanted creature gets +0/+3 and has reach. (It can block creatures with flying.)
mana={G}
type=Enchantment
subtype=Aura
[/card]
[card]
name=Spire Phantasm name=Spire Phantasm
text=Reveal Spire Phantasm as you draft it. The next time a player drafts a card from this booster pack, guess that card's name. Then that player reveals the drafted card. -- Flying -- When Spire Phantasm enters the battlefield, if you guessed correctly for a card named Spire Phantasm, draw a card. text=Reveal Spire Phantasm as you draft it. The next time a player drafts a card from this booster pack, guess that card's name. Then that player reveals the drafted card. -- Flying -- When Spire Phantasm enters the battlefield, if you guessed correctly for a card named Spire Phantasm, draw a card.
mana={2}{U}{U} mana={2}{U}{U}
@@ -9668,6 +9720,12 @@ power=4
toughness=4 toughness=4
[/card] [/card]
[card] [card]
name=Stick Together
text=Each player chooses a party from among creatures they control, then sacrifices the rest. (To choose a party, choose up to one each of Cleric, Rogue, Warrior, and Wizard.)
mana={3}{W}{W}
type=Sorcery
[/card]
[card]
name=Stifle name=Stifle
text=Counter target activated or triggered ability. (Mana abilities can't be targeted.) text=Counter target activated or triggered ability. (Mana abilities can't be targeted.)
mana={U} mana={U}
@@ -10795,15 +10853,6 @@ power=2
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Umori, the Collector
text=Companion - Each nonland card in your starting deck shares a card type. (If this card is your chosen companion, you may cast it once from outside the game.) -- As Umori, the CollectorUmori, the Collector enters the battlefield, choose a card type. -- Spells you cast of the chosen type cost 1 less to cast.
mana={2}{BG}{BG}
type=Legendary Creature
subtype=Ooze
power=4
toughness=5
[/card]
[card]
name=Unbound Flourishing name=Unbound Flourishing
text=Whenever you cast a permanent spell with a mana cost that contains {X}, double the value of X. -- Whenever you cast an instant or sorcery spell or activate an ability, if that spell's mana cost or that ability's activation cost contains {X}, copy that spell or ability. You may choose new targets for the copy. text=Whenever you cast a permanent spell with a mana cost that contains {X}, double the value of X. -- Whenever you cast an instant or sorcery spell or activate an ability, if that spell's mana cost or that ability's activation cost contains {X}, copy that spell or ability. You may choose new targets for the copy.
mana={2}{G} mana={2}{G}
@@ -11089,6 +11138,16 @@ power=6
toughness=5 toughness=5
[/card] [/card]
[card] [card]
name=Volo, Itinerant Scholar
abilities=backgroundpartner
text=When Volo enters the battlefield, create Volo's Journal, a legendary colorless artifact token with hexproof and "Whenever you cast a creature spell, note one of its creature types that hasn't been noted for this artifact." -- {2}, {T}: Draw a card for each creature type noted for target permanent you control named Volo's Journal. -- Choose a Background
mana={2}{U}
type=Legendary Creature
subtype=Human Wizard
power=2
toughness=3
[/card]
[card]
name=Volrath's Curse name=Volrath's Curse
text=Enchant creature -- Enchanted creature can't attack or block, and its activated abilities can't be activated. That creature's controller may sacrifice a permanent for that player to ignore this effect until end of turn. -- {1}{U}: Return Volrath's Curse to its owner's hand. text=Enchant creature -- Enchanted creature can't attack or block, and its activated abilities can't be activated. That creature's controller may sacrifice a permanent for that player to ignore this effect until end of turn. -- {1}{U}: Return Volrath's Curse to its owner's hand.
mana={1}{U} mana={1}{U}
@@ -11579,6 +11638,13 @@ mana={2}{U}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Wyll's Reversal
target=*|stack
text=Choose target spell or ability with one or more targets. Roll a d20 and add the greatest power among creatures you control. -- 1-14 | You may choose new targets for that spell or ability. -- 15+ | You may choose new targets for that spell or ability. Then copy it. You may choose new targets for the copy.
mana={2}{R}
type=Instant
[/card]
[card]
name=X name=X
text=As long as X is in X's owner's opponent's hand, X's owner may cast X and activate X's abilities. That opponent can't cast X and plays with their hand revealed. -- {U}{B}, {T}: Put X into target opponent's hand. -- {3}{U}{B}: You may play a card in the same hand as X without paying its mana cost. text=As long as X is in X's owner's opponent's hand, X's owner may cast X and activate X's abilities. That opponent can't cast X and plays with their hand revealed. -- {U}{B}, {T}: Put X into target opponent's hand. -- {3}{U}{B}: You may play a card in the same hand as X without paying its mana cost.
mana={U}{B} mana={U}{B}
+41
View File
@@ -607,6 +607,35 @@ public:
} }
}; };
class TrplayerInitiative: public Trigger
{
public:
bool thiscontroller, thisopponent;
TrplayerInitiative(GameObserver* observer, int id, MTGCardInstance * source, TargetChooser * tc, bool once = false, bool thiscontroller = false, bool thisopponent = false) :
Trigger(observer, id, source, once, tc), thiscontroller(thiscontroller), thisopponent(thisopponent)
{
}
int triggerOnEventImpl(WEvent * event)
{
WEventplayerInitiative * e = dynamic_cast<WEventplayerInitiative *> (event);
if (!e) return 0;
if (!tc->canTarget(e->player)) return 0;
if(thiscontroller)
if(e->player != source->controller())
return 0;
if(thisopponent)
if(e->player == source->controller())
return 0;
return 1;
}
TrplayerInitiative * clone() const
{
return NEW TrplayerInitiative(*this);
}
};
class TrplayerShuffled: public Trigger class TrplayerShuffled: public Trigger
{ {
public: public:
@@ -4367,6 +4396,18 @@ public:
AAAlterMonarch * clone() const; AAAlterMonarch * clone() const;
~AAAlterMonarch(); ~AAAlterMonarch();
}; };
//Initiative
class AAAlterInitiative: public ActivatedAbilityTP
{
public:
AAAlterInitiative(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, ManaCost * _cost = NULL,
int who = TargetChooser::UNSET);
int resolve();
const string getMenuText();
AAAlterInitiative * clone() const;
~AAAlterInitiative();
};
//Surveil Offset //Surveil Offset
class AAAlterSurveilOffset: public ActivatedAbilityTP class AAAlterSurveilOffset: public ActivatedAbilityTP
{ {
+2 -1
View File
@@ -339,7 +339,8 @@ class Constants
COUNTERSHROUD = 211, COUNTERSHROUD = 211,
NONIGHT = 212, NONIGHT = 212,
NODAMAGEREMOVED = 213, NODAMAGEREMOVED = 213,
NB_BASIC_ABILITIES = 214, BACKGROUNDPARTNER = 214,
NB_BASIC_ABILITIES = 215,
RARITY_S = 'S', //Special Rarity RARITY_S = 'S', //Special Rarity
RARITY_M = 'M', //Mythics RARITY_M = 'M', //Mythics
+1
View File
@@ -48,6 +48,7 @@ public:
int dungeonCompleted; int dungeonCompleted;
int numOfCommandCast; int numOfCommandCast;
int monarch; int monarch;
int initiative;
int surveilOffset; int surveilOffset;
int devotionOffset; int devotionOffset;
int lastShuffleTurn; int lastShuffleTurn;
+2 -1
View File
@@ -33,7 +33,8 @@ public:
TYPE_DUNGEON = 18, TYPE_DUNGEON = 18,
TYPE_EMBLEM = 19, TYPE_EMBLEM = 19,
TYPE_CONSPIRACY = 20, TYPE_CONSPIRACY = 20,
LAST_TYPE = TYPE_CONSPIRACY, TYPE_BACKGROUND = 21,
LAST_TYPE = TYPE_BACKGROUND,
}; };
protected: protected:
+8
View File
@@ -385,6 +385,14 @@ struct WEventplayerMonarch : public WEvent {
virtual Targetable * getTarget(Player * player); virtual Targetable * getTarget(Player * player);
}; };
//initiative event
struct WEventplayerInitiative : public WEvent {
WEventplayerInitiative(Player * player);
Player * player;
using WEvent::getTarget;
virtual Targetable * getTarget(Player * player);
};
//shuffle event //shuffle event
struct WEventplayerShuffled : public WEvent { struct WEventplayerShuffled : public WEvent {
WEventplayerShuffled(Player * player); WEventplayerShuffled(Player * player);
+38
View File
@@ -1370,6 +1370,44 @@ AAAlterMonarch::~AAAlterMonarch()
{ {
} }
//AA Initiative
AAAlterInitiative::AAAlterInitiative(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, ManaCost * _cost,
int who) :
ActivatedAbilityTP(observer, _id, _source, _target, _cost, who)
{
}
int AAAlterInitiative::resolve()
{
Damageable * _target = (Damageable *) getTarget();
if (_target)
{
Player * pTarget = (Player*)_target;
if(pTarget)
{
pTarget->initiative = 1;
pTarget->opponent()->initiative = 0;
WEvent * e = NEW WEventplayerInitiative(pTarget);
game->receiveEvent(e);
}
}
return 0;
}
const string AAAlterInitiative::getMenuText()
{
return _("A player takes the Initiative").c_str();
}
AAAlterInitiative * AAAlterInitiative::clone() const
{
return NEW AAAlterInitiative(*this);
}
AAAlterInitiative::~AAAlterInitiative()
{
}
//AA Energy Counters //AA Energy Counters
AAAlterEnergy::AAAlterEnergy(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, int energy, ManaCost * _cost, AAAlterEnergy::AAAlterEnergy(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, int energy, ManaCost * _cost,
int who) : int who) :
+1 -1
View File
@@ -1069,7 +1069,7 @@ bool ShopBooster::unitTest()
TestSuite::Log(result); TestSuite::Log(result);
res = false; res = false;
} }
sprintf(result, "<span class=\"success\">==Test Succesful !==</span><br />"); sprintf(result, "<span class=\"success\">==Test Successful !==</span><br />");
TestSuite::Log(result); TestSuite::Log(result);
SAFE_DELETE(ddw); SAFE_DELETE(ddw);
SAFE_DELETE(d); SAFE_DELETE(d);
+63
View File
@@ -344,6 +344,51 @@ int AbilityFactory::parseCastRestrictions(MTGCardInstance * card, Player * playe
if(!count) if(!count)
return 0; return 0;
} }
check = restriction[i].find("exilecast");
if(check != string::npos)
{
int count = 0;
for(unsigned int k = 0; k < player->game->stack->cardsSeenThisTurn.size(); k++)
{
MTGCardInstance * stackCard = player->game->stack->cardsSeenThisTurn[k];
if(stackCard->next && stackCard->next == card && (card->previousZone == card->controller()->game->exile||card->previousZone == card->controller()->opponent()->game->exile))
count++;
if(stackCard == card && (card->previousZone == card->controller()->game->exile||card->previousZone == card->controller()->opponent()->game->exile))
count++;
}
if(!count)
return 0;
}
check = restriction[i].find("sidecast");
if(check != string::npos)
{
int count = 0;
for(unsigned int k = 0; k < player->game->stack->cardsSeenThisTurn.size(); k++)
{
MTGCardInstance * stackCard = player->game->stack->cardsSeenThisTurn[k];
if(stackCard->next && stackCard->next == card && (card->previousZone == card->controller()->game->sideboard||card->previousZone == card->controller()->opponent()->game->sideboard))
count++;
if(stackCard == card && (card->previousZone == card->controller()->game->sideboard||card->previousZone == card->controller()->opponent()->game->sideboard))
count++;
}
if(!count)
return 0;
}
check = restriction[i].find("commandzonecast");
if(check != string::npos)
{
int count = 0;
for(unsigned int k = 0; k < player->game->stack->cardsSeenThisTurn.size(); k++)
{
MTGCardInstance * stackCard = player->game->stack->cardsSeenThisTurn[k];
if(stackCard->next && stackCard->next == card && (card->previousZone == card->controller()->game->commandzone||card->previousZone == card->controller()->opponent()->game->commandzone))
count++;
if(stackCard == card && (card->previousZone == card->controller()->game->commandzone||card->previousZone == card->controller()->opponent()->game->commandzone))
count++;
}
if(!count)
return 0;
}
check = restriction[i].find("rebound"); check = restriction[i].find("rebound");
if(check != string::npos) if(check != string::npos)
{ {
@@ -1275,6 +1320,14 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell
if (TargetChooser * tc = parseSimpleTC(s, "becomesmonarchfoeof", card)) if (TargetChooser * tc = parseSimpleTC(s, "becomesmonarchfoeof", card))
return NEW TrplayerMonarch(observer, id, card, tc, once, false, true); return NEW TrplayerMonarch(observer, id, card, tc, once, false, true);
//takes the initiative - controller of card
if (TargetChooser * tc = parseSimpleTC(s, "takeninitiativeof", card))
return NEW TrplayerInitiative(observer, id, card, tc, once, true, false);
//takes the initiative - opponent of card controller
if (TargetChooser * tc = parseSimpleTC(s, "takeninitiativeof", card))
return NEW TrplayerInitiative(observer, id, card, tc, once, false, true);
//shuffled library - controller of card //shuffled library - controller of card
if (TargetChooser * tc = parseSimpleTC(s, "shuffledof", card)) if (TargetChooser * tc = parseSimpleTC(s, "shuffledof", card))
return NEW TrplayerShuffled(observer, id, card, tc, once, true, false); return NEW TrplayerShuffled(observer, id, card, tc, once, true, false);
@@ -3912,6 +3965,16 @@ MTGAbility * AbilityFactory::parseMagicLine(string s, int id, Spell * spell, MTG
return a; return a;
} }
//takes the initiative
vector<string> splitInitiative = parseBetween(s, "taketheinitiative", " ", false);
if (splitInitiative.size())
{
Targetable * t = spell ? spell->getNextTarget() : NULL;
MTGAbility * a = NEW AAAlterInitiative(observer, id, card, t, NULL, who);
a->oneShot = 1;
return a;
}
//alter mutation counter on target card with trigger activation //alter mutation counter on target card with trigger activation
vector<string> splitMutated = parseBetween(s, "altermutationcounter:", " ", false); vector<string> splitMutated = parseBetween(s, "altermutationcounter:", " ", false);
if (splitMutated.size()) if (splitMutated.size())
+6 -6
View File
@@ -995,10 +995,10 @@ MTGDeck::MTGDeck(const string& config_file, MTGAllCards * _allcards, int meta_on
MTGCard * newcard = database->getCardById(atoi(s.c_str())); MTGCard * newcard = database->getCardById(atoi(s.c_str()));
if(!CommandZone.size() && newcard->data->hasType("Legendary") && (newcard->data->hasType("Creature") || newcard->data->basicAbilities[Constants::CANBECOMMANDER])) // If no commander has been added you can add one. if(!CommandZone.size() && newcard->data->hasType("Legendary") && (newcard->data->hasType("Creature") || newcard->data->basicAbilities[Constants::CANBECOMMANDER])) // If no commander has been added you can add one.
CommandZone.push_back(s); CommandZone.push_back(s);
else if(CommandZone.size() == 1 && newcard->data->hasType("Legendary") && (newcard->data->hasType("Creature") || newcard->data->basicAbilities[Constants::CANBECOMMANDER])){ // If a commander has been added you can add a new one just if both have partner ability. else if(CommandZone.size() == 1 && newcard->data->hasType("Legendary") && (newcard->data->hasType("Creature") || newcard->data->basicAbilities[Constants::CANBECOMMANDER])){ // If a commander has been added you can add a new one just if both have partner ability of if one can choose a Background.
if(newcard && newcard->data->basicAbilities[Constants::PARTNER]){ if(newcard && (newcard->data->basicAbilities[Constants::PARTNER] || newcard->data->basicAbilities[Constants::BACKGROUNDPARTNER])){
MTGCard * oldcard = database->getCardById(atoi((CommandZone.at(0)).c_str())); MTGCard * oldcard = database->getCardById(atoi((CommandZone.at(0)).c_str()));
if(oldcard && oldcard->data->basicAbilities[Constants::PARTNER] && (oldcard->data->name != newcard->data->name) && ((oldcard->data->partner == "" && newcard->data->partner == "") || (oldcard->data->partner == newcard->data->name && newcard->data->partner == oldcard->data->name))) if((oldcard && oldcard->data->hasType(Subtypes::TYPE_BACKGROUND) && (oldcard->data->name != newcard->data->name)) || (oldcard && oldcard->data->basicAbilities[Constants::PARTNER] && (oldcard->data->name != newcard->data->name) && ((oldcard->data->partner == "" && newcard->data->partner == "") || (oldcard->data->partner == newcard->data->name && newcard->data->partner == oldcard->data->name))))
CommandZone.push_back(s); CommandZone.push_back(s);
} }
} }
@@ -1012,10 +1012,10 @@ MTGDeck::MTGDeck(const string& config_file, MTGAllCards * _allcards, int meta_on
str_id << newcard->getId(); str_id << newcard->getId();
if(!CommandZone.size() && newcard->data->hasType("Legendary") && (newcard->data->hasType("Creature") || newcard->data->basicAbilities[Constants::CANBECOMMANDER])) // If no commander has been added you can add one. if(!CommandZone.size() && newcard->data->hasType("Legendary") && (newcard->data->hasType("Creature") || newcard->data->basicAbilities[Constants::CANBECOMMANDER])) // If no commander has been added you can add one.
CommandZone.push_back(str_id.str()); CommandZone.push_back(str_id.str());
else if(CommandZone.size() == 1 && newcard->data->hasType("Legendary") && (newcard->data->hasType("Creature") || newcard->data->basicAbilities[Constants::CANBECOMMANDER])){ // If a commander has been added you can add a new one just if both have partner ability. else if(CommandZone.size() == 1 && newcard->data->hasType("Legendary") && (newcard->data->hasType("Creature") || newcard->data->basicAbilities[Constants::CANBECOMMANDER])){ // If a commander has been added you can add a new one just if both have partner ability of if one can choose a Background.
if(newcard->data->basicAbilities[Constants::PARTNER]){ if(newcard && (newcard->data->basicAbilities[Constants::PARTNER] || newcard->data->basicAbilities[Constants::BACKGROUNDPARTNER])){
MTGCard * oldcard = database->getCardById(atoi((CommandZone.at(0)).c_str())); MTGCard * oldcard = database->getCardById(atoi((CommandZone.at(0)).c_str()));
if(oldcard && oldcard->data->basicAbilities[Constants::PARTNER] && (oldcard->data->name != newcard->data->name) && ((oldcard->data->partner == "" && newcard->data->partner == "") || (oldcard->data->partner == newcard->data->name && newcard->data->partner == oldcard->data->name))) if((oldcard && oldcard->data->hasType(Subtypes::TYPE_BACKGROUND) && (oldcard->data->name != newcard->data->name)) || (oldcard && oldcard->data->basicAbilities[Constants::PARTNER] && (oldcard->data->name != newcard->data->name) && ((oldcard->data->partner == "" && newcard->data->partner == "") || (oldcard->data->partner == newcard->data->name && newcard->data->partner == oldcard->data->name))))
CommandZone.push_back(str_id.str()); CommandZone.push_back(str_id.str());
} }
} }
+2 -1
View File
@@ -244,7 +244,8 @@ const char* Constants::MTGBasicAbilities[] = {
"expshroud", //Player can't get experience counters (e.g. "Solemnity"). "expshroud", //Player can't get experience counters (e.g. "Solemnity").
"countershroud", //Card can't get any kind of counter (e.g. "Solemnity"). "countershroud", //Card can't get any kind of counter (e.g. "Solemnity").
"nonight", //It can't become night (e.g. "Angel of Eternal Dawn"). "nonight", //It can't become night (e.g. "Angel of Eternal Dawn").
"nodamageremoved" //Damage is not removed from card (e.g. "Patient Zero"). "nodamageremoved", //Damage is not removed from card (e.g. "Patient Zero").
"backgroundpartner" //Can choose a backgorund partner as commander (e.g. "Faceless One").
}; };
map<string,int> Constants::MTGBasicAbilitiesMap; map<string,int> Constants::MTGBasicAbilitiesMap;
+1
View File
@@ -40,6 +40,7 @@ Player::Player(GameObserver *observer, string file, string fileSmall, MTGDeck *
dungeonCompleted = 0; dungeonCompleted = 0;
numOfCommandCast = 0; numOfCommandCast = 0;
monarch = 0; monarch = 0;
initiative = 0;
surveilOffset = 0; surveilOffset = 0;
devotionOffset = 0; devotionOffset = 0;
lastShuffleTurn = -1; lastShuffleTurn = -1;
+29 -2
View File
@@ -418,20 +418,33 @@ Player * Rules::loadPlayerRandomFive(GameObserver* observer, int isAI)
Player * Rules::loadPlayerRandomCommander(GameObserver* observer, int isAI) Player * Rules::loadPlayerRandomCommander(GameObserver* observer, int isAI)
{ {
#if !defined (PSP)
std::unique_ptr<MTGDeck> cmdTempDeck(new MTGDeck(MTGCollection()));
std::unique_ptr<MTGDeck> tempDeck(new MTGDeck(MTGCollection()));
#else
MTGDeck * cmdTempDeck = NEW MTGDeck(MTGCollection()); MTGDeck * cmdTempDeck = NEW MTGDeck(MTGCollection());
MTGDeck * tempDeck = NEW MTGDeck(MTGCollection()); MTGDeck * tempDeck = NEW MTGDeck(MTGCollection());
#endif
tempDeck->meta_commander = true; tempDeck->meta_commander = true;
string lands[] = { "", "forest", "island", "mountain", "swamp", "plains", "basic", "basic" }; string lands[] = { "", "forest", "island", "mountain", "swamp", "plains", "basic", "basic" };
cmdTempDeck->addRandomCards(1, 0, 0, -1, "legendary"); cmdTempDeck->addRandomCards(1, 0, 0, -1, "legendary");
#if !defined (PSP)
std::unique_ptr<DeckDataWrapper> myCommandZone(new DeckDataWrapper(cmdTempDeck.get()));
#else
DeckDataWrapper * myCommandZone = NEW DeckDataWrapper(cmdTempDeck); DeckDataWrapper * myCommandZone = NEW DeckDataWrapper(cmdTempDeck);
#endif
MTGCard * commander = myCommandZone->getCard(0, true); MTGCard * commander = myCommandZone->getCard(0, true);
while(!commander->data->isCreature()) while(!commander->data->isCreature())
{ {
cmdTempDeck->addRandomCards(1, 0, 0, -1, "legendary"); cmdTempDeck->addRandomCards(1, 0, 0, -1, "legendary");
#if !defined (PSP)
myCommandZone.reset(new DeckDataWrapper(cmdTempDeck.get()));
#else
myCommandZone = NEW DeckDataWrapper(cmdTempDeck); myCommandZone = NEW DeckDataWrapper(cmdTempDeck);
#endif
commander = myCommandZone->getCard(0, true); commander = myCommandZone->getCard(0, true);
} }
@@ -451,20 +464,32 @@ Player * Rules::loadPlayerRandomCommander(GameObserver* observer, int isAI)
if(colors.data()[0] != 0) { colors.insert(colors.begin(),0); } if(colors.data()[0] != 0) { colors.insert(colors.begin(),0); }
// Add basic lands
int numLands = 40;
if(colors.size() > 1) if(colors.size() > 1)
{ {
numLands /= colors.size() - 1;
for (unsigned int i = 1; i < colors.size(); i++) for (unsigned int i = 1; i < colors.size(); i++)
{ {
tempDeck->addRandomCards(40/(colors.size()-1), 0, 0, 'L', lands[colors.data()[i]].c_str()); tempDeck->addRandomCards(numLands, 0, 0, 'L', lands[colors.data()[i]].c_str());
} }
} }
else { tempDeck->addRandomCards(40, 0, 0, -1, "basic"); } else { tempDeck->addRandomCards(numLands, 0, 0, 'L'); }
tempDeck->addRandomCards(59, 0, 0, -1, "", colors.data(), colors.size()); tempDeck->addRandomCards(59, 0, 0, -1, "", colors.data(), colors.size());
string deckFile = "random"; string deckFile = "random";
string deckFileSmall = "random"; string deckFileSmall = "random";
#if !defined (PSP)
std::unique_ptr<Player> player;
if (!isAI) // Human Player
player.reset(new HumanPlayer(observer, deckFile, deckFileSmall, false, tempDeck.release()));
else
player.reset(new AIPlayerBaka(observer, deckFile, deckFileSmall, "", tempDeck.release()));
return player.release();
#else
Player *player = NULL; Player *player = NULL;
if (!isAI) // Human Player if (!isAI) // Human Player
player = NEW HumanPlayer(observer, deckFile, deckFileSmall, false, tempDeck); player = NEW HumanPlayer(observer, deckFile, deckFileSmall, false, tempDeck);
@@ -472,6 +497,7 @@ Player * Rules::loadPlayerRandomCommander(GameObserver* observer, int isAI)
player = NEW AIPlayerBaka(observer, deckFile, deckFileSmall, "", tempDeck); player = NEW AIPlayerBaka(observer, deckFile, deckFileSmall, "", tempDeck);
return player; return player;
#endif
} }
Player * Rules::loadPlayerHorde(GameObserver* observer, int isAI) Player * Rules::loadPlayerHorde(GameObserver* observer, int isAI)
@@ -666,6 +692,7 @@ void Rules::initGame(GameObserver *g, bool currentPlayerSet)
p->dungeonCompleted = initState.playerData[i].player->dungeonCompleted; p->dungeonCompleted = initState.playerData[i].player->dungeonCompleted;
p->numOfCommandCast = initState.playerData[i].player->numOfCommandCast; p->numOfCommandCast = initState.playerData[i].player->numOfCommandCast;
p->monarch = initState.playerData[i].player->monarch; p->monarch = initState.playerData[i].player->monarch;
p->initiative = initState.playerData[i].player->initiative;
p->surveilOffset = initState.playerData[i].player->surveilOffset; p->surveilOffset = initState.playerData[i].player->surveilOffset;
p->devotionOffset = initState.playerData[i].player->devotionOffset; p->devotionOffset = initState.playerData[i].player->devotionOffset;
p->lastChosenName = initState.playerData[i].player->lastChosenName; p->lastChosenName = initState.playerData[i].player->lastChosenName;
+1 -1
View File
@@ -436,7 +436,7 @@ void TestSuiteGame::assertGame()
handleResults(wasAI, error); handleResults(wasAI, error);
if(!error) if(!error)
Log("<span class=\"success\">==Test Succesful !==</span>"); Log("<span class=\"success\">==Test Successful !==</span>");
else else
Log("<span class=\"error\">==Test Failed !==</span>"); Log("<span class=\"error\">==Test Failed !==</span>");
#ifdef CAPTURE_STDERR #ifdef CAPTURE_STDERR
+11
View File
@@ -307,6 +307,11 @@ WEventplayerMonarch::WEventplayerMonarch(Player * player) :
{ {
} }
WEventplayerInitiative::WEventplayerInitiative(Player * player) :
player(player)
{
}
WEventplayerShuffled::WEventplayerShuffled(Player * player) : WEventplayerShuffled::WEventplayerShuffled(Player * player) :
player(player) player(player)
{ {
@@ -663,6 +668,12 @@ Targetable * WEventplayerMonarch::getTarget(Player * player)
return NULL; return NULL;
} }
Targetable * WEventplayerInitiative::getTarget(Player * player)
{
if (player) return player;
return NULL;
}
Targetable * WEventplayerShuffled::getTarget(Player * player) Targetable * WEventplayerShuffled::getTarget(Player * player)
{ {
if (player) return player; if (player) return player;
+4
View File
@@ -1373,6 +1373,10 @@ void WParsedInt::extendedParse(string s, Spell * spell, MTGCardInstance * card)
{ {
intValue = (s == "pdungeoncompleted")?card->controller()->dungeonCompleted:card->controller()->opponent()->dungeonCompleted; intValue = (s == "pdungeoncompleted")?card->controller()->dungeonCompleted:card->controller()->opponent()->dungeonCompleted;
} }
else if (s == "pinitiative" || s == "oinitiative") // Which player has the initiative
{
intValue = (s == "pinitiative")?card->controller()->initiative:card->controller()->opponent()->initiative;
}
else if (s == "pwrtotatt" || s == "thstotatt")//count Total Power or toughness of attacking creatures (e.g. Battle Cry Goblin) else if (s == "pwrtotatt" || s == "thstotatt")//count Total Power or toughness of attacking creatures (e.g. Battle Cry Goblin)
{ {
intValue = 0; intValue = 0;