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 kWagicDataStorageOptionsKey = "dataStorageOptions";
public static final int kStorageDataOptionsMenuId = 2000;
public static final int kdownloadResOptionsMenuId = 4000;
public static final int kOtherOptionsMenuId = 3000;
static {
@@ -170,6 +171,7 @@ public class SDLActivity extends Activity implements OnKeyListener {
MenuItem downloader;
MenuItem about;
MenuItem storage;
MenuItem resource;
// Handler for the messages
Handler commandHandler = new Handler() {
@@ -951,6 +953,9 @@ public class SDLActivity extends Activity implements OnKeyListener {
about = menu.add(Menu.NONE, 4, 4, "About");
storage = settingsMenu.add(kStorageDataOptionsMenuId,
kStorageDataOptionsMenuId, Menu.NONE, "Storage Data Options");
resource = settingsMenu.add(kdownloadResOptionsMenuId,
kdownloadResOptionsMenuId, Menu.NONE, "Download Core & Quit");
}
@Override
@@ -966,6 +971,10 @@ public class SDLActivity extends Activity implements OnKeyListener {
if (itemId == kStorageDataOptionsMenuId) {
displayStorageOptions();
} else if (itemId == kdownloadResOptionsMenuId) {
File oldRes = new File(getSystemStorageLocation() + RES_FILENAME);
oldRes.delete();
startDownload();
} else if (itemId == 2) {
importDeckOptions();
} else if (itemId == 3) {
@@ -1000,7 +1009,7 @@ public class SDLActivity extends Activity implements OnKeyListener {
public void showSettingsSubMenu() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Settings Menu");
String[] choices = { "Storage Data Options" };
String[] choices = { "Storage Data Options", "Download Core & Quit" };
builder.setItems(choices,
new DialogInterface.OnClickListener() {
@Override
@@ -1009,6 +1018,9 @@ public class SDLActivity extends Activity implements OnKeyListener {
case 0:
onOptionsItemSelected(storage);
break;
case 1:
onOptionsItemSelected(resource);
break;
}
}
});
@@ -1122,13 +1134,41 @@ public class SDLActivity extends Activity implements OnKeyListener {
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() {
String coreFileLocation = getSystemStorageLocation() + RES_FILENAME;
File file = new File(coreFileLocation);
if (file.exists()) {
mainDisplay();
forceResDownload(file);
} else {
FrameLayout _videoLayout = new FrameLayout(this);
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/c/1/c13045ec-27e4-497a-bbc4-134cf46b7b89.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;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
@@ -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;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;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;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;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;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;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;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
@@ -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;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;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;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;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;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;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;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;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;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;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;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
#DESC:The first Commander Format Deck
#NAME:Belbe Commander 2023
#DESC:Deck by apparently (tappedout.net)
#DESC:Refined for Wagic by Bob
#HINT:castpriority(commander,*)
Mardu Shadowspear (*) *1
Night Market Lookout (*) *1
Pulse Tracker (*) *1
Thornbow Archer (*) *1
Vicious Conquistador (*) *1
Archers' Parapet (*) *1
Shepherd of Rot (*) *1
Loyal Subordinate (*) *1
Crypt Ghast (*) *1
Rankle, Master of Pranks (*) *1
Spawn of Mayhem (*) *1
Twilight Prophet (*) *1
Conduit of Ruin (*) *1
Duplicant (*) *1
Oblivion Sower (*) *1
Wurmcoil Engine (*) *1
World Breaker (*) *1
Platinum Emperion (*) *1
Apex Devastator (*) *1
Blightsteel Colossus (*) *1
Ugin, the Ineffable (*) *1
Malakir Rebirth (*) *1
Nature's Claim (*) *1
Veil of Summer (*) *1
Vicious Rumors (*) *1
Worldly Tutor (*) *1
Assassin's Trophy (*) *1
Damnable Pact (*) *1
Demonic Tutor (*) *1
Exsanguinate (*) *1
Farseek (*) *1
Heroic Intervention (*) *1
Rampant Growth (*) *1
Three Visits (*) *1
Torment of Hailfire (*) *1
Agadeem's Awakening (*) *1
Barrier Breach (*) *1
Beast Within (*) *1
Cultivate (*) *1
Grim Tutor (*) *1
Kodama's Reach (*) *1
Toxic Deluge (*) *1
Skyshroud Claim (*) *1
Return of the Wildspeaker (*) *1
Beseech the Queen (*) *1
Turntimber Symbiosis (*) *1
Decree of Pain (*) *1
In Garruk's Wake (*) *1
Sol Ring (*) *1
Arcane Signet (*) *1
Lightning Greaves (*) *1
Swiftfoot Boots (*) *1
Talisman of Resilience (*) *1
Thought Vessel (*) *1
God-Pharaoh's Statue (*) *1
Staff of Nin (*) *1
The Immortal Sun (*) *1
Ward of Bones (*) *1
Cryptolith Rite (*) *1
Sanctum of Stone Fangs (*) *1
Phyrexian Arena (*) *1
Retreat to Hagra (*) *1
Court of Ambition (*) *1
Eldrazi Conscription (*) *1
Sandwurm Convergence (*) *1
Ancient Tomb (*) *1
Blast Zone (*) *1
Bojuka Bog (*) *1
Cabal Coffers (*) *1
Castle Garenbrig (*) *1
Castle Locthwain (*) *1
Command Tower (*) *1
Crawling Barrens (*) *1
Forest (*) *7
Leechridden Swamp (*) *1
Llanowar Wastes (*) *1
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
Ancient Stone Idol
Apex Devastator
Archetype of Endurance
Artisan of Kozilek
Bane of Bala Ged
Beacon of Unrest
Bellowing Tanglewurm
Cabal Conditioning
Caller of the Pack
Colossus of Akros
Command Tower
Conduit of Ruin
Copper Myr
Court of Ambition
Cultivate
Dread Defiler
Eldrazi Conscription
Exsanguinate
Farseek
Fierce Empath
Forest (4ED) *4
Forest (NEO) *4
Forest (ONE) *4
Forest (SNC) *4
Garruk's Uprising
Gilanra, Caller of Wirewood
God-Pharaoh's Statue
Grave Betrayal
Helm of the Host
Hooded Blightfang
Horizon Stone
In Garruk's Wake
Josu Vess, Lich Knight
Kodama's Reach (CMD)
Leaden Myr
Leechridden Swamp
Lim-Dul's Hex
Loxodon Warhammer (10E)
Loyal Subordinate
Mardu Shadowspear
Mirror Shield
Night Market Lookout
Oblivion Sower
Pathrazer of Ulamog
Phyrexian Juggernaut
Phyrexian Triniform
Plague Spitter
Planar Bridge
Platinum Emperion
Polyraptor
Pulse Tracker
Rampant Growth
Return of the Wildspeaker
Sanctum of Stone Fangs
Sandstone Oracle
Sandwurm Convergence
Skull Storm
Skyclave Relic
Sol Ring
Staff of Nin
Swamp (ONE) *4
Swamp (NEO) *4
Swamp (SNC) *4
Swamp (4ED) *3
The Immortal Sun
Thornbow Archer
Thought Vessel
Three Visits
Thunderfoot Baloth
Torment of Hailfire
Ulamog's Crusher
Undergrowth Stadium
Urborg, Tomb of Yawgmoth
Vicious Conquistador
Yavimaya, Cradle of Growth
Zendikar Resurgent
#CMD:Belbe, Corrupted Observer (*) *1
@@ -1,4 +1,203 @@
[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
auto=teach(creature) 2/0
auto=teach(creature) mustattack
@@ -17,6 +216,32 @@ power=0
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=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
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
@@ -26,3 +251,31 @@ subtype=Shapeshifter
power=3
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=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
[/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
text=No more than two creatures can attack you each combat.
mana={3}
@@ -44,15 +44,6 @@ power=6
toughness=6
[/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
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}
@@ -68,13 +68,6 @@ mana={1}{U}
type=Instant
[/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
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}
@@ -111,13 +104,6 @@ mana={4}
type=Artifact
[/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
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}
@@ -139,13 +125,6 @@ power=1
toughness=2
[/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
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}
@@ -158,13 +137,6 @@ mana={1}{G}{G}
type=World Enchantment
[/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
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.)
@@ -70,12 +70,3 @@ subtype=Elemental Horror
power=3
toughness=5
[/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
[/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
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}
@@ -62,13 +55,6 @@ mana={2}{W}
type=Enchantment
[/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
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}
@@ -100,19 +86,6 @@ mana={3}{R}
type=World Enchantment
[/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
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}
@@ -1,11 +1,4 @@
[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
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.
@@ -1,7 +1,6 @@
Primal Command
Rowan Kenrith
Kitsune Ace
Professional Face-Breaker
Pyre-Sledge Arsonist
Sokenzan Smelter
Hotshot Mechanic
@@ -138,7 +137,6 @@ Venser, Corpse Puppet
Slobad, Iron Goblin
Solphim, Mayhem Dominus
Capricious Hellraiser
Tyrranax Rex
Phyrexian Vindicator
Skrelv, Defector Mite
Drivnod, Carnage Dominus
@@ -155,7 +153,6 @@ Tamiyo's Logbook
Maze's Mantle
Lattice-Blade Mantis
Noxious Assault
Paladin of Predation
Plague Nurse
Porcelain Zealot
Vanish into Eternity
@@ -202,7 +199,6 @@ Anoint with Affliction
Hall of the Bandit Lord
Boseiju, Who Shelters All
Chief Engineer
Oracle's Vault
Conqueror's Flail
Cryptic Spires
Thromok the Insatiable
@@ -223,57 +219,40 @@ Unite the Coalition
Verrak, Warped Sengir
Gerrard's Hourglass Pendant
The Mana Rig
Shalai and Hallar
Saint Traft and Rem Karolus
Rashmi and Ragavan
Moira and Teshar
Elenda and Azor
Firemane Commando
Elspeth's Talent
Infernal Sovereign
Teferi's Talent
Rowan's Talent
Liliana's Talent
Begin the Invasion
Vivien's Talent
Sidar Jabari of Zhalfir
Kasla, the Broken Halo
Gimbal, Gremlin Prodigy
Brimaz, Blight of Oreskos
Bright-Palm, Soul Awakener
Ichor Elixir
Bitterthorn, Nissa's Animus
Wildfire Awakener
Vodalian Wave-Knight
Mistmeadow Vanisher
Flockchaser Phantom
Cutthroat Negotiator
Sandsteppe War Riders
Path of the Animist
Emergent Woodwurm
Exsanguinator Cavalry
Conclave Sledge-Captain
Uncivil Unrest
Path of the Pyromancer
Pain Distributor
Mirror-Style Master
Hedron Detonator
Death-Greeter's Champion
Dance with Calamity
Path of the Schemer
Locthwain Lancer
Guardian Scalelord
Filigree Vector
Blight Titan
Schema Thief
Path of the Enigma
Herald of Hoofbeats
Deluxe Dragster
Foulmire Knight
Wand of the Worldsoul
Vulpine Harvester
Path of the Ghosthunter
Nesting Dovehawk
Stensia
Krosa
Sokenzan
@@ -296,13 +275,7 @@ Murderous Rider
The Caldaia
Enigma Ridges
Esper
Slimefoot and Squee
Katilda and Lier
Goro-Goro and Satoru
Excise the Imperfect
Darksteel Splicer
Conjurer's Mantle
Chivalric Alliance
Wear
Struggle
Heaven
@@ -355,9 +328,6 @@ Invasion of Dominaria
Borborygmos and Fblthp
Baral and Kari Zev
Invasion of Theros
Surrak and Goreclaw
Pile On
Orthion, Hero of Lavabrink
Zurgo and Ojutai
Sandstalker Moloch
Zimone and Dina
@@ -368,21 +338,15 @@ Hoarding Broodlord
Seed of Hope
Enduring Bondwarden
Invasion of Fiora
Axgard Artisan
Terror of Towashi
Invasion of Eldraine
Tangled Skyline
Seer of Stolen Sight
Elesh Norn
Ichor Shade
Injector Crocodile
Zephyr Winder
Referee Squad
Invasion of Innistrad
Interdisciplinary Mascot
Vengeant Earth
Seedpod Caretaker
Phyrexian Pegasus
Essence of Orthodoxy
Invasion of Ravnica
Overgrown Pest
@@ -393,7 +357,6 @@ Kogla and Yidaro
Ozolith, the Shattered Spire
Attentive Skywarden
Gift of Compleation
Angelic Intervention
Flitting Guerrilla
Urabrask
Invasion of Ikoria
@@ -406,7 +369,6 @@ Invasion of Shandalar
Rona, Herald of Invasion
Jin-Gitaxias
Invasion of Belenon
Fertilid's Favor
Wicked Slumber
Doomskar Warrior
Deeproot Wayfinder
@@ -421,7 +383,6 @@ Converter Beast
Realmbreaker, the Invasion Tree
Searing Barb
Voldaren Thrillseeker
Volcanic Spite
Nahiri's Warcrafting
Sculpted Perfection
Scrappy Bruiser
@@ -553,212 +514,9 @@ Tear Asunder
Rona's Vortex
The Weatherseed Treaty
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
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
Dynaheir, Invoker Adept
Gorion, Wise Mentor
Gluntch, the Bestower
Kagha, Shadow Archdruid
Jon Irenicus, Shattered One
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
Naban, Dean of Iteration
Goblin Bangchuckers
@@ -1169,7 +927,6 @@ Arbalest Engineers
Hulking Metamorph
The Temporal Anchor
Urza's Command
Rootwire Amalgam
Gix's Caress
Legions to Ashes
Mishra, Tamer of Mak Fawa
@@ -1197,7 +954,6 @@ Gwenna, Eyes of Gaea
Overwhelming Remorse
Urza's Sylex
Mishra's Research Desk
Steel Seraph
Hurkyl, Master Wizard
Forging the Anchor
Involuntary Cooldown
@@ -1235,7 +991,6 @@ Tower Worker
Thran Power Suit
Thran Spider
Symmetry Matrix
Titania, Voice of Gaea
Mishra, Claimed by Gix
The Mightstone and Weakstone
Recommission
+10
View File
@@ -5,6 +5,16 @@ year=2022-06-10
total=849
[/meta]
[card]
primitive=Undercity
id=57018400
rarity=T
[/card]
[card]
primitive=The Initiative
id=57018401
rarity=T
[/card]
[card]
primitive=Faceless One
id=570184
rarity=S
+7 -37
View File
@@ -2,7 +2,7 @@
author=Wagic Team
name=March of the Machine Commander
year=2023-04-21
total=457
total=451
[/meta]
[card]
primitive=Bright-Palm, Soul Awakener
@@ -1245,16 +1245,11 @@ id=612496
rarity=C
[/card]
[card]
primitive=Foulmire Knight
primitive=Foulmire Knight // Profane Insight
id=612497
rarity=U
[/card]
[card]
primitive=Profane Insight
id=612497
rarity=T
[/card]
[card]
primitive=Go for the Throat
id=612498
rarity=U
@@ -1295,16 +1290,11 @@ id=612505
rarity=R
[/card]
[card]
primitive=Murderous Rider
primitive=Murderous Rider // Swift End
id=612506
rarity=R
[/card]
[card]
primitive=Swift End
id=612506
rarity=T
[/card]
[card]
primitive=Night's Whisper
id=612507
rarity=C
@@ -1355,16 +1345,11 @@ id=612515
rarity=C
[/card]
[card]
primitive=Smitten Swordmaster
primitive=Smitten Swordmaster // Curry Favor
id=612516
rarity=C
[/card]
[card]
primitive=Curry Favor
id=612516
rarity=T
[/card]
[card]
primitive=Syr Konrad, the Grim
id=612517
rarity=U
@@ -1660,16 +1645,11 @@ id=612575
rarity=U
[/card]
[card]
primitive=Heaven
primitive=Heaven // Earth
id=612576
rarity=R
[/card]
[card]
primitive=Earth
id=612576
rarity=T
[/card]
[card]
primitive=Improbable Alliance
id=612577
rarity=U
@@ -1720,16 +1700,11 @@ id=612586
rarity=U
[/card]
[card]
primitive=Struggle
primitive=Struggle // Survive
id=612587
rarity=U
[/card]
[card]
primitive=Survive
id=612587
rarity=T
[/card]
[card]
primitive=Time Wipe
id=612588
rarity=R
@@ -1745,16 +1720,11 @@ id=612590
rarity=M
[/card]
[card]
primitive=Wear
primitive=Wear // Tear
id=612591
rarity=U
[/card]
[card]
primitive=Tear
id=612591
rarity=T
[/card]
[card]
primitive=Whirlwind of Thought
id=612592
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
# 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
#AUTO_DEFINE __CYCLING__($cost) $cost{cycle}:name(cycling) draw:1
@@ -59,6 +59,11 @@
# Scry, Evergreen
#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
#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)
# 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
#AUTO_DEFINE _PROLIFERATE_ name(Proliferate) notatarget(proliferation) proliferate
# 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
#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_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
#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
#AUTO_DEFINE _UNDERGROWTH_ foreach(creature|myGraveyard)
# Afterlife, not implemented
#AUTO_DEFINE _AFTERLIFE_($c) @movedTo(this|graveyard) from(battlefield):create(Spirit:Creature Spirit:1/1:white,black:flying)*$c
# Afterlife
#AUTO_DEFINE _AFTERLIFETOKEN_ create(Spirit:Creature Spirit:1/1:white:black:flying)
# 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
#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]))
# 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.)
#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
#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
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,-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.'"
type=Legendary Planeswalker
subtype=Arlinn
@@ -288,7 +288,7 @@ name=Ashiok, Dream Render
auto=counter(0/0,5,loyalty)
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)
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}
type=Legendary Planeswalker
subtype=Ashiok
@@ -338,10 +338,10 @@ subtype=Ashiok
[card]
name=Ashiok, Sculptor of Fears
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,-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}
type=Legendary Planeswalker
subtype=Ashiok
@@ -351,7 +351,7 @@ name=B.O.B. (Bevy of Beebles)
auto=counter(0/0,4,Loyalty)
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=@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: 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.
@@ -625,7 +625,7 @@ subtype=Chandra
[card]
name=Chandra, Torch of Defiance
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=@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
@@ -665,7 +665,7 @@ name=Daretti, Ingenious Iconoclast
auto=counter(0/0,3,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Create a 1/1 colorless Construct) token(Construct,Artifact Creature Construct,1/1,defender)
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.
mana={1}{B}{R}
type=Legendary Planeswalker
@@ -724,9 +724,9 @@ name=Domri, Chaos Bringer
auto=counter(0/0,5,loyalty)
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 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,-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."
mana={2}{R}{G}
type=Legendary Planeswalker
@@ -813,6 +813,18 @@ type=Legendary Planeswalker
subtype=Ellywick
[/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
auto=counter(0/0,4,loyalty)
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 )!
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: 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
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}
@@ -1269,7 +1281,7 @@ subtype=Jace
[card]
name=Jace Beleren
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,-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.
@@ -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,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
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}
type=Legendary Planeswalker
subtype=Jace
@@ -1319,7 +1331,7 @@ auto=counter(0/0,1,loyalty)
auto=if paid(kicker) then clone options(nolegend)
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
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 && 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}
@@ -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,-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,-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,-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}
@@ -1402,7 +1414,7 @@ auto=counter(0/0,4,loyalty)
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,-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}
type=Legendary Planeswalker
subtype=Jace
@@ -1532,7 +1544,7 @@ subtype=Karn
name=Kasmina, Enigma Sage
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
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.-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) )!
@@ -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.-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=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.-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) )!]))
@@ -1616,7 +1628,7 @@ subtype=Kaya
[card]
name=Kaya, Ghost Assassin
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,-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.
@@ -1742,7 +1754,7 @@ auto=counter(0/0,6,loyalty)
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,-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.
mana={4}{B}{B}
type=Legendary Planeswalker
@@ -1844,7 +1856,7 @@ auto=counter(0/0,5,loyalty)
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,-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.
mana={3}{B}{B}
type=Legendary Planeswalker
@@ -1853,7 +1865,7 @@ subtype=Liliana
[card]
name=Liliana, Waker of the Dead
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,-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."
@@ -1912,6 +1924,21 @@ type=Legendary Planeswalker
subtype=Lukka
[/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
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
@@ -2087,7 +2114,7 @@ subtype=Bolas
[card]
name=Nicol Bolas, the Deceiver
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,-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.
@@ -2173,7 +2200,7 @@ subtype=Nissa
name=Nissa, Steward of Elements
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
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(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
@@ -2247,7 +2274,7 @@ abilities=canbecommander
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: 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.
mana={3}{B}{B}
type=Legendary Planeswalker
@@ -2349,7 +2376,7 @@ name=Ral, Storm Conduit
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
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
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}
@@ -2370,7 +2397,7 @@ subtype=Ral
[card]
name=Rowan, Fearless Sparkmage
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,-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.
@@ -2398,7 +2425,7 @@ subtype=Rowan
name=Saheeli Rai
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
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,-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.
@@ -2409,7 +2436,7 @@ subtype=Saheeli
[card]
name=Saheeli, Sublime Artificer
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
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}
@@ -2420,7 +2447,7 @@ subtype=Saheeli
name=Saheeli, the Gifted
abilities=canbecommander
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,-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.
@@ -2445,7 +2472,7 @@ name=Samut, Tyrant Smasher
auto=counter(0/0,5,loyalty)
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
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.
mana={2}{RG}{RG}
type=Legendary Planeswalker
@@ -2465,7 +2492,7 @@ subtype=Sarkhan
[card]
name=Sarkhan, Fireblood
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,-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.
@@ -2582,7 +2609,7 @@ subtype=Sorin
[card]
name=Sorin, Imperious Bloodlord
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)}{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)
@@ -2716,6 +2743,18 @@ type=Legendary Planeswalker
subtype=Tamiyo
[/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
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)
@@ -2729,7 +2768,7 @@ subtype=Teferi
[card]
name=Teferi, Master of Time
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,-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.
@@ -2864,7 +2903,7 @@ name=Tezzeret, Cruel Machinist
auto=counter(0/0,4,loyalty)
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,-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.
mana={4}{U}{U}
type=Legendary Planeswalker
@@ -3288,7 +3327,7 @@ subtype=Wrenn
[/card]
[card]
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={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)
@@ -58,6 +58,17 @@ mana={2}{W}
type=Instant
[/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
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}
@@ -350,6 +361,16 @@ power=5
toughness=4
[/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
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}
@@ -377,13 +398,6 @@ power=6
toughness=6
[/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
text=Whenever you crank Arms Depot, put two +1/+1 counters on target creature.
type=Artifact
@@ -2640,6 +2654,16 @@ mana={1}{R}{R}
type=Enchantment
[/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
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}
@@ -3374,6 +3398,12 @@ mana={U}{U}{U}{U}
type=Sorcery
[/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
text=Protection from wordy (Something is wordy if it has four or more lines of text in its text box.)
mana={1}{R}
@@ -3960,13 +3990,6 @@ mana={2}{G}
type=Instant
[/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
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}
@@ -3991,6 +4014,25 @@ mana={1}{W}
type=Enchantment
[/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
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}
@@ -4995,6 +5037,15 @@ mana={1}
type=Artifact
[/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
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}
@@ -5483,6 +5534,22 @@ mana={4}{R}
type=Sorcery
[/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
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}
@@ -5657,13 +5724,6 @@ mana={2}{W}{W}
type=Enchantment
[/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
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}
@@ -6173,6 +6233,16 @@ mana={5}{R}
type=Enchantment
[/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
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}
@@ -6623,13 +6693,6 @@ mana={4}{W}
type=Enchantment
[/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
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}
@@ -6866,6 +6929,13 @@ power=2
toughness=2
[/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
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}
@@ -7357,12 +7427,6 @@ mana={U}{B}
type=Sorcery
[/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
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.
@@ -7903,6 +7967,15 @@ mana={4}{PR}
type=Artifact
[/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
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}
@@ -8100,13 +8173,6 @@ mana={1}{R}
type=Instant
[/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
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}
@@ -9148,13 +9214,6 @@ mana={2}{U}
type=Enchantment
[/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
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}
@@ -9406,13 +9465,6 @@ power=5
toughness=6
[/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
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}
@@ -9668,6 +9720,12 @@ power=4
toughness=4
[/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
text=Counter target activated or triggered ability. (Mana abilities can't be targeted.)
mana={U}
@@ -10795,15 +10853,6 @@ power=2
toughness=2
[/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
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}
@@ -11089,6 +11138,16 @@ power=6
toughness=5
[/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
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}
@@ -11579,6 +11638,13 @@ mana={2}{U}
type=Sorcery
[/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
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}
+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
{
public:
@@ -4367,6 +4396,18 @@ public:
AAAlterMonarch * clone() const;
~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
class AAAlterSurveilOffset: public ActivatedAbilityTP
{
+3 -2
View File
@@ -17,7 +17,7 @@ typedef enum
GAME_TYPE_RANDOM2,
GAME_TYPE_RANDOM3,
GAME_TYPE_RANDOM5,
GAME_TYPE_RANDOMCOMMANDER,
GAME_TYPE_RANDOMCOMMANDER,
GAME_TYPE_HORDE,
GAME_TYPE_SET_LIMITED,
GAME_TYPE_STORY,
@@ -339,7 +339,8 @@ class Constants
COUNTERSHROUD = 211,
NONIGHT = 212,
NODAMAGEREMOVED = 213,
NB_BASIC_ABILITIES = 214,
BACKGROUNDPARTNER = 214,
NB_BASIC_ABILITIES = 215,
RARITY_S = 'S', //Special Rarity
RARITY_M = 'M', //Mythics
+1
View File
@@ -48,6 +48,7 @@ public:
int dungeonCompleted;
int numOfCommandCast;
int monarch;
int initiative;
int surveilOffset;
int devotionOffset;
int lastShuffleTurn;
+1 -1
View File
@@ -44,7 +44,7 @@ protected:
Player * loadPlayerRandom(GameObserver* observer, int isAI, int mode);
Player * loadPlayerRandomThree(GameObserver* observer, int isAI);
Player * loadPlayerRandomFive(GameObserver* observer, int isAI);
Player * loadPlayerRandomCommander(GameObserver* observer, int isAI);
Player * loadPlayerRandomCommander(GameObserver* observer, int isAI);
Player * loadPlayerHorde(GameObserver* observer, int isAI);
Player * loadRandomSetLimited(GameObserver* observer, int isAI);
Player * initPlayer(GameObserver *observer, int playerId);
+2 -1
View File
@@ -33,7 +33,8 @@ public:
TYPE_DUNGEON = 18,
TYPE_EMBLEM = 19,
TYPE_CONSPIRACY = 20,
LAST_TYPE = TYPE_CONSPIRACY,
TYPE_BACKGROUND = 21,
LAST_TYPE = TYPE_BACKGROUND,
};
protected:
+8
View File
@@ -385,6 +385,14 @@ struct WEventplayerMonarch : public WEvent {
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
struct WEventplayerShuffled : public WEvent {
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
AAAlterEnergy::AAAlterEnergy(GameObserver* observer, int _id, MTGCardInstance * _source, Targetable * _target, int energy, ManaCost * _cost,
int who) :
+1 -1
View File
@@ -1069,7 +1069,7 @@ bool ShopBooster::unitTest()
TestSuite::Log(result);
res = false;
}
sprintf(result, "<span class=\"success\">==Test Succesful !==</span><br />");
sprintf(result, "<span class=\"success\">==Test Successful !==</span><br />");
TestSuite::Log(result);
SAFE_DELETE(ddw);
SAFE_DELETE(d);
+63
View File
@@ -344,6 +344,51 @@ int AbilityFactory::parseCastRestrictions(MTGCardInstance * card, Player * playe
if(!count)
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");
if(check != string::npos)
{
@@ -1275,6 +1320,14 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell
if (TargetChooser * tc = parseSimpleTC(s, "becomesmonarchfoeof", card))
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
if (TargetChooser * tc = parseSimpleTC(s, "shuffledof", card))
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;
}
//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
vector<string> splitMutated = parseBetween(s, "altermutationcounter:", " ", false);
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()));
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);
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.
if(newcard && newcard->data->basicAbilities[Constants::PARTNER]){
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] || newcard->data->basicAbilities[Constants::BACKGROUNDPARTNER])){
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);
}
}
@@ -1012,10 +1012,10 @@ MTGDeck::MTGDeck(const string& config_file, MTGAllCards * _allcards, int meta_on
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.
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.
if(newcard->data->basicAbilities[Constants::PARTNER]){
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] || newcard->data->basicAbilities[Constants::BACKGROUNDPARTNER])){
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());
}
}
+2 -1
View File
@@ -244,7 +244,8 @@ const char* Constants::MTGBasicAbilities[] = {
"expshroud", //Player can't get experience counters (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").
"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;
+1
View File
@@ -40,6 +40,7 @@ Player::Player(GameObserver *observer, string file, string fileSmall, MTGDeck *
dungeonCompleted = 0;
numOfCommandCast = 0;
monarch = 0;
initiative = 0;
surveilOffset = 0;
devotionOffset = 0;
lastShuffleTurn = -1;
+60 -33
View File
@@ -168,7 +168,7 @@ void Rules::addExtraRules(GameObserver* g)
difficultyRating = 0;
else if(g->mRules->gamemode == GAME_TYPE_RANDOM1 || g->mRules->gamemode == GAME_TYPE_RANDOM2)
difficultyRating = 0;
else if(g->mRules->gamemode == GAME_TYPE_RANDOM3 || g->mRules->gamemode == GAME_TYPE_RANDOM5 || g->mRules->gamemode == GAME_TYPE_RANDOMCOMMANDER)
else if(g->mRules->gamemode == GAME_TYPE_RANDOM3 || g->mRules->gamemode == GAME_TYPE_RANDOM5 || g->mRules->gamemode == GAME_TYPE_RANDOMCOMMANDER)
difficultyRating = 0;
else if(g->mRules->gamemode == GAME_TYPE_HORDE || g->mRules->gamemode == GAME_TYPE_SET_LIMITED)
difficultyRating = 0;
@@ -418,53 +418,78 @@ Player * Rules::loadPlayerRandomFive(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 * tempDeck = NEW MTGDeck(MTGCollection());
tempDeck->meta_commander = true;
#endif
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");
DeckDataWrapper * myCommandZone = NEW DeckDataWrapper(cmdTempDeck);
MTGCard * commander = myCommandZone->getCard(0, true);
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);
#endif
MTGCard * commander = myCommandZone->getCard(0, true);
while(!commander->data->isCreature())
{
cmdTempDeck->addRandomCards(1, 0, 0, -1, "legendary");
myCommandZone = NEW DeckDataWrapper(cmdTempDeck);
commander = myCommandZone->getCard(0, true);
}
while(!commander->data->isCreature())
{
cmdTempDeck->addRandomCards(1, 0, 0, -1, "legendary");
#if !defined (PSP)
myCommandZone.reset(new DeckDataWrapper(cmdTempDeck.get()));
#else
myCommandZone = NEW DeckDataWrapper(cmdTempDeck);
#endif
commander = myCommandZone->getCard(0, true);
}
stringstream cid;
stringstream cid;
cid << commander->getMTGId();
vector<string> newCMD;
newCMD.push_back(cid.str());
tempDeck->replaceCMD(newCMD);
newCMD.push_back(cid.str());
tempDeck->replaceCMD(newCMD);
std::vector< int > colors;
std::vector< int > colors;
for (int i = 0; i < Constants::NB_Colors; i++)
{
if (commander->data->getManaCost()->hasColor(i))
colors.push_back(i);
}
for (int i = 0; i < Constants::NB_Colors; i++)
{
if (commander->data->getManaCost()->hasColor(i))
colors.push_back(i);
}
if(colors.data()[0] != 0) { colors.insert(colors.begin(),0); }
if(colors.data()[0] != 0) { colors.insert(colors.begin(),0); }
if(colors.size() > 1)
{
for (unsigned int i = 1; i < colors.size(); i++)
{
tempDeck->addRandomCards(40/(colors.size()-1), 0, 0, 'L', lands[colors.data()[i]].c_str());
}
}
else { tempDeck->addRandomCards(40, 0, 0, -1, "basic"); }
// Add basic lands
int numLands = 40;
if(colors.size() > 1)
{
numLands /= colors.size() - 1;
for (unsigned int i = 1; i < colors.size(); i++)
{
tempDeck->addRandomCards(numLands, 0, 0, 'L', lands[colors.data()[i]].c_str());
}
}
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 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;
if (!isAI) // Human Player
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);
return player;
#endif
}
Player * Rules::loadPlayerHorde(GameObserver* observer, int isAI)
@@ -565,7 +591,7 @@ Player * Rules::initPlayer(GameObserver *g, int playerId)
return loadPlayerRandomThree(g, isAI);
case GAME_TYPE_RANDOM5:
return loadPlayerRandomFive(g, isAI);
case GAME_TYPE_RANDOMCOMMANDER:
case GAME_TYPE_RANDOMCOMMANDER:
return loadPlayerRandomCommander(g, isAI);
case GAME_TYPE_HORDE:
return loadPlayerHorde(g, isAI);
@@ -666,6 +692,7 @@ void Rules::initGame(GameObserver *g, bool currentPlayerSet)
p->dungeonCompleted = initState.playerData[i].player->dungeonCompleted;
p->numOfCommandCast = initState.playerData[i].player->numOfCommandCast;
p->monarch = initState.playerData[i].player->monarch;
p->initiative = initState.playerData[i].player->initiative;
p->surveilOffset = initState.playerData[i].player->surveilOffset;
p->devotionOffset = initState.playerData[i].player->devotionOffset;
p->lastChosenName = initState.playerData[i].player->lastChosenName;
@@ -888,7 +915,7 @@ GameType Rules::strToGameMode(string s)
if (s.compare("random2") == 0) return GAME_TYPE_RANDOM2;
if (s.compare("random3") == 0) return GAME_TYPE_RANDOM3;
if (s.compare("random5") == 0) return GAME_TYPE_RANDOM5;
if (s.compare("random_commander") == 0) return GAME_TYPE_RANDOMCOMMANDER;
if (s.compare("random_commander") == 0) return GAME_TYPE_RANDOMCOMMANDER;
if (s.compare("horde") == 0) return GAME_TYPE_HORDE;
if (s.compare("set_limited") == 0) return GAME_TYPE_SET_LIMITED;
if (s.compare("story") == 0) return GAME_TYPE_STORY;
+1 -1
View File
@@ -436,7 +436,7 @@ void TestSuiteGame::assertGame()
handleResults(wasAI, error);
if(!error)
Log("<span class=\"success\">==Test Succesful !==</span>");
Log("<span class=\"success\">==Test Successful !==</span>");
else
Log("<span class=\"error\">==Test Failed !==</span>");
#ifdef CAPTURE_STDERR
+11
View File
@@ -307,6 +307,11 @@ WEventplayerMonarch::WEventplayerMonarch(Player * player) :
{
}
WEventplayerInitiative::WEventplayerInitiative(Player * player) :
player(player)
{
}
WEventplayerShuffled::WEventplayerShuffled(Player * player) :
player(player)
{
@@ -663,6 +668,12 @@ Targetable * WEventplayerMonarch::getTarget(Player * player)
return NULL;
}
Targetable * WEventplayerInitiative::getTarget(Player * player)
{
if (player) return player;
return NULL;
}
Targetable * WEventplayerShuffled::getTarget(Player * 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;
}
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)
{
intValue = 0;