Updated changelog with last 3 years of modifications (issue #1067 by @remigiusz-suwalski), added tokens in ELD set, improved Android downloader for ELD set, fixed primitives with "asflash" ability, improved all cards with adventure: now they become instants or sorceries in stack to activate the correct trigger (e.g. with Magecraft combos), added "nomovetrigger" ability for all the "fake" cards (e.g. cards which are simple abilities) in order to don't trigger any event on their cast since they are not real cards.

This commit is contained in:
Vittorio Alfieri
2021-08-23 02:18:04 +02:00
parent cd9e5fb2e5
commit c978223b10
10 changed files with 1444 additions and 126 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1201,6 +1201,8 @@ public class ImgDownloader {
cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/b/3/b3c9a097-219b-4aaf-831f-cc0cddbcfaae.jpg?1561757870"; cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/b/3/b3c9a097-219b-4aaf-831f-cc0cddbcfaae.jpg?1561757870";
else if (id.equals("17493t")) //Bear 2/2 else if (id.equals("17493t")) //Bear 2/2
cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/c/8/c879d4a6-cef5-48f1-8c08-f5b59ec850de.jpg?1562857282"; cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/c/8/c879d4a6-cef5-48f1-8c08-f5b59ec850de.jpg?1562857282";
else if (id.equals("473117t")) //Bear 2/2 ELD
cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/b/0/b0f09f9e-e0f9-4ed8-bfc0-5f1a3046106e.jpg?1572489163";
else if (id.equals("17358t")) //Beast 3/3 else if (id.equals("17358t")) //Beast 3/3
cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/3/f/3fc3a29a-280d-4f2c-9a01-8cfead75f583.jpg?1561756988"; cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/3/f/3fc3a29a-280d-4f2c-9a01-8cfead75f583.jpg?1561756988";
else if(id.equals("17207t")) //Sliver 1/1 else if(id.equals("17207t")) //Sliver 1/1
@@ -1209,7 +1211,7 @@ public class ImgDownloader {
cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/2/9/29c4e4f2-0040-4490-b357-660d729ad9cc.jpg?1562636772"; cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/2/9/29c4e4f2-0040-4490-b357-660d729ad9cc.jpg?1562636772";
else if(id.equals("17069t")) //Voja 2/2 else if(id.equals("17069t")) //Voja 2/2
cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/2/8/2879010f-b752-4808-8531-d24e612de0d9.jpg?1541006575"; cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/2/8/2879010f-b752-4808-8531-d24e612de0d9.jpg?1541006575";
else if(id.equals("17060t")) //Rat 1/1 else if(id.equals("17060t") || id.equals("476037t") || id.equals("473092t") || id.equals("473062t")) //Rat 1/1
cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/1/a/1a85fe9d-ef18-46c4-88b0-cf2e222e30e4.jpg?1562279130"; cardurl = "https://c1.scryfall.com/file/scryfall-cards/large/front/1/a/1a85fe9d-ef18-46c4-88b0-cf2e222e30e4.jpg?1562279130";
else if(id.equals("17061t")) else if(id.equals("17061t"))
cardurl = "https://img.scryfall.com/cards/large/front/a/c/acd51eed-bd5a-417a-811d-fbd1c08a3715.jpg?1561757812"; cardurl = "https://img.scryfall.com/cards/large/front/a/c/acd51eed-bd5a-417a-811d-fbd1c08a3715.jpg?1561757812";

View File

@@ -3,11 +3,11 @@ author=Wagic Team
name=Throne of Eldraine name=Throne of Eldraine
orderindex=EXP-ZZD.ELD orderindex=EXP-ZZD.ELD
year=2019-10-04 year=2019-10-04
total=326 total=328
[/meta] [/meta]
[card] [card]
primitive=Warrior primitive=Rogue
id=-47316011 id=-47316013
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -16,8 +16,8 @@ id=-47316012
rarity=T rarity=T
[/card] [/card]
[card] [card]
primitive=Rogue primitive=Warrior
id=-47316013 id=-47316011
rarity=T rarity=T
[/card] [/card]
[card] [card]
@@ -101,6 +101,11 @@ id=-473121
rarity=T rarity=T
[/card] [/card]
[card] [card]
primitive=Bear
id=-473117
rarity=T
[/card]
[card]
primitive=Rat primitive=Rat
id=-473092 id=-473092
rarity=T rarity=T
@@ -111,6 +116,11 @@ id=-473062
rarity=T rarity=T
[/card] [/card]
[card] [card]
primitive=Goat
id=-473046
rarity=T
[/card]
[card]
primitive=Faerie primitive=Faerie
id=-473028 id=-473028
rarity=T rarity=T

View File

@@ -1958,8 +1958,8 @@ type=Land
name=Animating Faerie // Bring to Life name=Animating Faerie // Bring to Life
abilities=flying,adventure abilities=flying,adventure
other={2}{U} name(Adventure) other={2}{U} name(Adventure)
autostack=if paid(alternative) then name(Target artifact becomes creature) name(Target artifact becomes creature) target(artifact[-creature]|myBattlefield) transforms((Artifact Creature,newability[counter(1/1.4)])) forever auto=if paid(alternative) then name(Target artifact becomes creature) name(Target artifact becomes creature) target(artifact[-creature]|myBattlefield) transforms((Artifact Creature,newability[counter(1/1.4)])) forever
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Flying // Target noncreature artifact you control becomes a 0/0 artifact creature. Put four +1/+1 counters on it. text=Flying // Target noncreature artifact you control becomes a 0/0 artifact creature. Put four +1/+1 counters on it.
mana={2}{U} mana={2}{U}
type=Creature type=Creature
@@ -2002,7 +2002,7 @@ toughness=3
[/card] [/card]
[card] [card]
name=Annihilation Rooms name=Annihilation Rooms
abilities=doublefacedeath abilities=doublefacedeath,nomovetrigger
other={0} name(Sandfall Cell) other={0} name(Sandfall Cell)
kicker={0} name(Veils of Fear) kicker={0} name(Veils of Fear)
auto=count(type:*[twodngtrg]:myBattlefield) auto=count(type:*[twodngtrg]:myBattlefield)
@@ -2979,13 +2979,13 @@ toughness=5
[/card] [/card]
[card] [card]
name=Ardenvale Tactician // Dizzying Swoop name=Ardenvale Tactician // Dizzying Swoop
abilities=flying,flash,adventure abilities=flying,adventure,asflash
restriction=can play creature restriction=can play creature
other={1}{W} name(Adventure) other={1}{W} name(Adventure)
autostack=if paid(alternative) then if type(creature|battlefield)~morethan~1 then choice name(Tap 2 creatures) name(Tap 2 creatures) name(Tap 2 creatures) target(<2>creature|battlefield) tap(noevent) auto=if paid(alternative) then if type(creature|battlefield)~morethan~1 then choice name(Tap 2 creatures) name(Tap 2 creatures) name(Tap 2 creatures) target(<2>creature|battlefield) tap(noevent)
autostack=if paid(alternative) then if type(creature|battlefield)~morethan~0 then choice name(Tap 1 creature) name(Tap 1 creature) name(Tap 1 creature) target(creature|battlefield) tap(noevent) auto=if paid(alternative) then if type(creature|battlefield)~morethan~0 then choice name(Tap 1 creature) name(Tap 1 creature) name(Tap 1 creature) target(creature|battlefield) tap(noevent)
autostack=if paid(alternative) then choice name(Don't tap any creature) name(Don't tap any creature) donothing auto=if paid(alternative) then choice name(Don't tap any creature) name(Don't tap any creature) donothing
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Flying // Tap up to two target creatures. (Then exile this card. You may cast the creature later from exile.) text=Flying // Tap up to two target creatures. (Then exile this card. You may cast the creature later from exile.)
mana={1}{W}{W} mana={1}{W}{W}
type=Creature type=Creature
@@ -5040,8 +5040,8 @@ name=Beanstalk Giant // Fertile Footsteps
abilities=adventure abilities=adventure
other={2}{G} name(Adventure) other={2}{G} name(Adventure)
anyzone=type:land:myBattlefield/type:land:myBattlefield cdaactive anyzone=type:land:myBattlefield/type:land:myBattlefield cdaactive
autostack=if paid(alternative) then name(Search basic land) name(Search basic land) target(land[basic]|mylibrary) moveto(mybattlefield) auto=if paid(alternative) then name(Search basic land) name(Search basic land) target(land[basic]|mylibrary) moveto(mybattlefield)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Beanstalk Giant's power and toughness are each equal to the number of lands you control. // Search your library for a basic land card, put it onto the battlefield, then shuffle your library. (Then exile this card. You may cast the creature later from exile.) text=Beanstalk Giant's power and toughness are each equal to the number of lands you control. // Search your library for a basic land card, put it onto the battlefield, then shuffle your library. (Then exile this card. You may cast the creature later from exile.)
mana={6}{G} mana={6}{G}
type=Creature type=Creature
@@ -7096,12 +7096,12 @@ toughness=3
[/card] [/card]
[card] [card]
name=Bonecrusher Giant // Stomp name=Bonecrusher Giant // Stomp
abilities=flash,adventure abilities=adventure,asflash
restriction=can play creature restriction=can play creature
other={1}{R} name(Adventure) other={1}{R} name(Adventure)
#MISSING: damage can't be prevented #MISSING: damage can't be prevented
autostack=if paid(alternative) then name(Deals 2 damage) name(Deals 2 damage) damage:2 target(player,creature,planeswalker) auto=if paid(alternative) then name(Deals 2 damage) name(Deals 2 damage) damage:2 target(player,creature,planeswalker)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=@targeted(this) from(*|opponentzones):name(Deals 2 damage) damage:2 opponent auto=@targeted(this) from(*|opponentzones):name(Deals 2 damage) damage:2 opponent
auto=@targeted(this) from(*|myzones):name(Deals 2 damage) damage:2 controller auto=@targeted(this) from(*|myzones):name(Deals 2 damage) damage:2 controller
text=Whenever Bonecrusher Giant becomes the target of a spell, Bonecrusher Giant deals 2 damage to that spell's controller. // Damage can't be prevented this turn. Stomp deals 2 damage to any target. text=Whenever Bonecrusher Giant becomes the target of a spell, Bonecrusher Giant deals 2 damage to that spell's controller. // Damage can't be prevented this turn. Stomp deals 2 damage to any target.
@@ -7614,10 +7614,10 @@ toughness=3
[/card] [/card]
[card] [card]
name=Brazen Borrower // Petty Theft name=Brazen Borrower // Petty Theft
abilities=flash,flying,cloud,adventure abilities=flying,cloud,flash,adventure,asflash
other={1}{U} name(Adventure) other={1}{U} name(Adventure)
autostack=if paid(alternative) then name(Return to hand) name(Return to hand) target(*[-land]|opponentbattlefield) moveTo(ownerHand) auto=if paid(alternative) then name(Return to hand) name(Return to hand) target(*[-land]|opponentbattlefield) moveTo(ownerHand)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Flash -- Flying -- Brazen Borrower can block only creatures with flying. // Return target nonland permanent an opponent controls to its owner's hand. text=Flash -- Flying -- Brazen Borrower can block only creatures with flying. // Return target nonland permanent an opponent controls to its owner's hand.
mana={1}{U}{U} mana={1}{U}{U}
type=Creature type=Creature
@@ -9779,8 +9779,8 @@ toughness=1
name=Champions of Archery // Join the Group name=Champions of Archery // Join the Group
abilities=reach,adventure abilities=reach,adventure
other={2}{R} name(Adventure) other={2}{R} name(Adventure)
autostack=if paid(alternative) then name(Move to Command Zone) name(Move to Command Zone) target(creature[legendary]|myHand) moveTo(mycommandzone) and!( transforms((,newability[iscommander])) forever )! auto=if paid(alternative) then name(Move to Command Zone) name(Move to Command Zone) target(creature[legendary]|myHand) moveTo(mycommandzone) and!( transforms((,newability[iscommander])) forever )!
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=lord(*[iscommander]|myBattlefield) type:*[iscommander]:myBattlefield/0 auto=lord(*[iscommander]|myBattlefield) type:*[iscommander]:myBattlefield/0
text=Reach -- Commanders you control get +X/+0, where X is the number of Commanders you control. // You may put a legendary creature card from your hand into the command zone. Its also your commander. text=Reach -- Commanders you control get +X/+0, where X is the number of Commanders you control. // You may put a legendary creature card from your hand into the command zone. Its also your commander.
mana={3}{R} mana={3}{R}
@@ -10352,7 +10352,7 @@ type=Instant
[/card] [/card]
[card] [card]
name=Cherished Hatchling name=Cherished Hatchling
auto=_DIES_all(dinosaur|mycastingzone) transforms((,newability[flash])) ueot auto=_DIES_all(dinosaur|mycastingzone) transforms((,newability[asflash])) ueot
auto=_DIES_emblem transforms((,newability[@movedto(dinosaur[power=0]|mybattlefield):ability$!name(Choose one) choice name(Don't fight) donothing _ choice name(Fights with another creature with power 0) target(creature[power=0]) damage:0 _ choice name(Fights with another creature with power 1) target(creature[power=1]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:1 _ choice name(Fights with another creature with power 2) target(creature[power=2]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:2 _ choice name(Fights with another creature with power 3) target(creature[power=3]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:3 _ choice name(Fights with another creature with power 4) target(creature[power=4]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:4 _ choice name(Fights with another creature with power 5) target(creature[power=5]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:5 _ choice name(Fights with another creature with power 6) target(creature[power=6]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:6 _ choice name(Fights with another creature with power 7) target(creature[power=7]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:7 _ choice name(Fights with another creature with power 8) target(creature[power=8]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:8 _ choice name(Fights with another creature with power 9) target(creature[power=9]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:9 _ choice name(Fights with another creature with power 10 or more) target(creature[power>=10]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:10!$ controller])) ueot auto=_DIES_emblem transforms((,newability[@movedto(dinosaur[power=0]|mybattlefield):ability$!name(Choose one) choice name(Don't fight) donothing _ choice name(Fights with another creature with power 0) target(creature[power=0]) damage:0 _ choice name(Fights with another creature with power 1) target(creature[power=1]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:1 _ choice name(Fights with another creature with power 2) target(creature[power=2]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:2 _ choice name(Fights with another creature with power 3) target(creature[power=3]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:3 _ choice name(Fights with another creature with power 4) target(creature[power=4]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:4 _ choice name(Fights with another creature with power 5) target(creature[power=5]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:5 _ choice name(Fights with another creature with power 6) target(creature[power=6]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:6 _ choice name(Fights with another creature with power 7) target(creature[power=7]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:7 _ choice name(Fights with another creature with power 8) target(creature[power=8]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:8 _ choice name(Fights with another creature with power 9) target(creature[power=9]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:9 _ choice name(Fights with another creature with power 10 or more) target(creature[power>=10]) damage:0 && all(dinosaur[power=0;fresh]|mybattlefield) damage:10!$ controller])) ueot
auto=_DIES_emblem transforms((,newability[@movedto(dinosaur[power=1]|mybattlefield):ability$!name(Choose one) choice name(Don't fight) donothing _ choice name(Fights with another creature with power 0) target(creature[power=0]) damage:1 _ choice name(Fights with another creature with power 1) target(creature[power=1]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:1 _ choice name(Fights with another creature with power 2) target(creature[power=2]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:2 _ choice name(Fights with another creature with power 3) target(creature[power=3]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:3 _ choice name(Fights with another creature with power 4) target(creature[power=4]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:4 _ choice name(Fights with another creature with power 5) target(creature[power=5]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:5 _ choice name(Fights with another creature with power 6) target(creature[power=6]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:6 _ choice name(Fights with another creature with power 7) target(creature[power=7]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:7 _ choice name(Fights with another creature with power 8) target(creature[power=8]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:8 _ choice name(Fights with another creature with power 9) target(creature[power=9]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:9 _ choice name(Fights with another creature with power 10 or more) target(creature[power>=10]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:10!$ controller])) ueot auto=_DIES_emblem transforms((,newability[@movedto(dinosaur[power=1]|mybattlefield):ability$!name(Choose one) choice name(Don't fight) donothing _ choice name(Fights with another creature with power 0) target(creature[power=0]) damage:1 _ choice name(Fights with another creature with power 1) target(creature[power=1]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:1 _ choice name(Fights with another creature with power 2) target(creature[power=2]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:2 _ choice name(Fights with another creature with power 3) target(creature[power=3]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:3 _ choice name(Fights with another creature with power 4) target(creature[power=4]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:4 _ choice name(Fights with another creature with power 5) target(creature[power=5]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:5 _ choice name(Fights with another creature with power 6) target(creature[power=6]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:6 _ choice name(Fights with another creature with power 7) target(creature[power=7]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:7 _ choice name(Fights with another creature with power 8) target(creature[power=8]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:8 _ choice name(Fights with another creature with power 9) target(creature[power=9]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:9 _ choice name(Fights with another creature with power 10 or more) target(creature[power>=10]) damage:1 && all(dinosaur[power=1;fresh]|mybattlefield) damage:10!$ controller])) ueot
auto=_DIES_emblem transforms((,newability[@movedto(dinosaur[power=2]|mybattlefield):ability$!name(Choose one) choice name(Don't fight) donothing _ choice name(Fights with another creature with power 0) target(creature[power=0]) damage:2 _ choice name(Fights with another creature with power 1) target(creature[power=1]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:1 _ choice name(Fights with another creature with power 2) target(creature[power=2]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:2 _ choice name(Fights with another creature with power 3) target(creature[power=3]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:3 _ choice name(Fights with another creature with power 4) target(creature[power=4]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:4 _ choice name(Fights with another creature with power 5) target(creature[power=5]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:5 _ choice name(Fights with another creature with power 6) target(creature[power=6]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:6 _ choice name(Fights with another creature with power 7) target(creature[power=7]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:7 _ choice name(Fights with another creature with power 8) target(creature[power=8]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:8 _ choice name(Fights with another creature with power 9) target(creature[power=9]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:9 _ choice name(Fights with another creature with power 10 or more) target(creature[power>=10]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:10!$ controller])) ueot auto=_DIES_emblem transforms((,newability[@movedto(dinosaur[power=2]|mybattlefield):ability$!name(Choose one) choice name(Don't fight) donothing _ choice name(Fights with another creature with power 0) target(creature[power=0]) damage:2 _ choice name(Fights with another creature with power 1) target(creature[power=1]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:1 _ choice name(Fights with another creature with power 2) target(creature[power=2]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:2 _ choice name(Fights with another creature with power 3) target(creature[power=3]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:3 _ choice name(Fights with another creature with power 4) target(creature[power=4]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:4 _ choice name(Fights with another creature with power 5) target(creature[power=5]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:5 _ choice name(Fights with another creature with power 6) target(creature[power=6]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:6 _ choice name(Fights with another creature with power 7) target(creature[power=7]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:7 _ choice name(Fights with another creature with power 8) target(creature[power=8]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:8 _ choice name(Fights with another creature with power 9) target(creature[power=9]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:9 _ choice name(Fights with another creature with power 10 or more) target(creature[power>=10]) damage:2 && all(dinosaur[power=2;fresh]|mybattlefield) damage:10!$ controller])) ueot
@@ -11447,8 +11447,8 @@ type=Sorcery
name=Collectigull // Only the Best name=Collectigull // Only the Best
abilities=flying,adventure abilities=flying,adventure
other={1}{W} name(Adventure) other={1}{W} name(Adventure)
autostack=if paid(alternative) then name(Return to hand) name(Return to hand) target(*[-land]|myGraveyard) moveTo(ownerHand) auto=if paid(alternative) then name(Return to hand) name(Return to hand) target(*[-land]|myGraveyard) moveTo(ownerHand)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=protection from(*) auto=protection from(*)
auto=_ATTACKING_draw:1 controller auto=_ATTACKING_draw:1 controller
text=Flying, protection from common -- Whenever Collectigull attacks, reveal the top card of your library. If its a Booster Fun card, you may put it into your hand. // Return target Booster Fun card from your graveyard to your hand. text=Flying, protection from common -- Whenever Collectigull attacks, reveal the top card of your library. If its a Booster Fun card, you may put it into your hand. // Return target Booster Fun card from your graveyard to your hand.
@@ -13503,8 +13503,8 @@ subtype=Aura
name=Curious Pair // Treats to Share name=Curious Pair // Treats to Share
abilities=adventure abilities=adventure
other={G} name(Adventure) other={G} name(Adventure)
autostack=if paid(alternative) then name(Create Food) name(Create Food) token(Food) auto=if paid(alternative) then name(Create Food) name(Create Food) token(Food)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Create a Food token. (Then exile this card. You may cast the creature later from exile. A Food token is an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") text=Create a Food token. (Then exile this card. You may cast the creature later from exile. A Food token is an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.")
mana={1}{G} mana={1}{G}
type=Creature type=Creature
@@ -14125,7 +14125,7 @@ toughness=2
[/card] [/card]
[card] [card]
name=Davriel Conditions name=Davriel Conditions
abilities=doublefacedeath abilities=doublefacedeath,nomovetrigger
auto=choice name(You lose six life) life:-6 controller auto=choice name(You lose six life) life:-6 controller
auto=if type(*|myhand)~equalto~0 then choice name(Exile two cards from your hand) name(Exile two cards from your hand) draw:2 opponent auto=if type(*|myhand)~equalto~0 then choice name(Exile two cards from your hand) name(Exile two cards from your hand) draw:2 opponent
auto=if type(*|myhand)~equalto~1 then choice name(Exile two cards from your hand) name(Exile two cards from your hand) target(*|myHand) moveto(exile) and!( transforms((,newability[draw:2 opponent])) oneshot )! auto=if type(*|myhand)~equalto~1 then choice name(Exile two cards from your hand) name(Exile two cards from your hand) target(*|myHand) moveto(exile) and!( transforms((,newability[draw:2 opponent])) oneshot )!
@@ -14140,7 +14140,7 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Davriel Offers name=Davriel Offers
abilities=doublefacedeath abilities=doublefacedeath,nomovetrigger
auto=choice name(Draw three cards) draw:3 controller auto=choice name(Draw three cards) draw:3 controller
auto=choice name(Conjure a Manor Guardian) conjure cards(Manor Guardian) zone(myhand) auto=choice name(Conjure a Manor Guardian) conjure cards(Manor Guardian) zone(myhand)
auto=choice name(Return two creatures) moverandom(creature) from(mygraveyard) to(myhand) and!( counter(1/1.1.PerpetualPT) )! auto=choice name(Return two creatures) moverandom(creature) from(mygraveyard) to(myhand) and!( counter(1/1.1.PerpetualPT) )!
@@ -18268,7 +18268,7 @@ toughness=4
[/card] [/card]
[card] [card]
name=Edgewall Innkeeper name=Edgewall Innkeeper
auto=@movedTo(creature[adventure]|myStack):all(trigger[to]) transforms((,newability[ifnot paid(alternative) then draw:1 controller])) oneshot auto=@movedTo(creature[adventure]|myStack):name(Draw a card) draw:1 controller
text=Whenever you cast a creature spell that has an Adventure, draw a card. (It doesn't need to have gone on the adventure first.) text=Whenever you cast a creature spell that has an Adventure, draw a card. (It doesn't need to have gone on the adventure first.)
mana={G} mana={G}
type=Creature type=Creature
@@ -18875,8 +18875,8 @@ toughness=1
name=Embereth Shieldbreaker // Battle Display name=Embereth Shieldbreaker // Battle Display
abilities=adventure abilities=adventure
other={R} name(Adventure) other={R} name(Adventure)
autostack=if paid(alternative) then name(Destroy artifact) name(Destroy artifact) target(artifact|battlefield) destroy auto=if paid(alternative) then name(Destroy artifact) name(Destroy artifact) target(artifact|battlefield) destroy
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Destroy target artifact. (Then exile this card. You may cast the creature later from exile.) text=Destroy target artifact. (Then exile this card. You may cast the creature later from exile.)
mana={1}{R} mana={1}{R}
type=Creature type=Creature
@@ -18972,7 +18972,7 @@ toughness=4
[card] [card]
name=Emergence Zone name=Emergence Zone
auto={T}:Add{C} auto={T}:Add{C}
auto={1}{T}{S}:all(*|mycastingzone) asflash ueot auto={1}{T}{S}:all(*|mycastingzone) transforms((,newability[asflash])) ueot
text={T}: Add {C}. -- {1}, {T}, Sacrifice Emergence Zone: You may cast spells this turn as though they had flash. text={T}: Add {C}. -- {1}, {T}, Sacrifice Emergence Zone: You may cast spells this turn as though they had flash.
type=Land type=Land
[/card] [/card]
@@ -20689,8 +20689,8 @@ type=Enchantment
name=Fae of Wishes // Granted name=Fae of Wishes // Granted
abilities=flying,adventure abilities=flying,adventure
other={3}{U} name(Adventure) other={3}{U} name(Adventure)
autostack=if paid(alternative) then name(Pick non-creature from sideboard) name(Pick non-creature from sideboard) target(*[-creature]|mysideboard) moveTo(myhand) auto=if paid(alternative) then name(Pick non-creature from sideboard) name(Pick non-creature from sideboard) target(*[-creature]|mysideboard) moveTo(myhand)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto={1}{U}{D(*|myhand)}{D(*|myhand)}:name(Return to hand) moveTo(ownerhand) auto={1}{U}{D(*|myhand)}{D(*|myhand)}:name(Return to hand) moveTo(ownerhand)
text=Flying -- {1}{U}, Discard two cards: Return Fae of Wishes to its owner's hand. // You may choose a noncreature card you own from outside the game, reveal it, and put it into your hand. text=Flying -- {1}{U}, Discard two cards: Return Fae of Wishes to its owner's hand. // You may choose a noncreature card you own from outside the game, reveal it, and put it into your hand.
mana={1}{U} mana={1}{U}
@@ -20748,8 +20748,8 @@ toughness=4
name=Faerie Guidemother // Gift of the Fae name=Faerie Guidemother // Gift of the Fae
abilities=flying,adventure abilities=flying,adventure
other={1}{W} name(Adventure) other={1}{W} name(Adventure)
autostack=if paid(alternative) then name(Creature gets 2/1 and flying) name(Creature gets 2/1 and flying) target(creature) transforms((,newability[flying],newability[2/1])) ueot auto=if paid(alternative) then name(Creature gets 2/1 and flying) name(Creature gets 2/1 and flying) target(creature) transforms((,newability[flying],newability[2/1])) ueot
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Flying // Target creature gets +2/+1 and gains flying until end of turn. (Then exile this card. You may cast the creature later from exile.) text=Flying // Target creature gets +2/+1 and gains flying until end of turn. (Then exile this card. You may cast the creature later from exile.)
mana={W} mana={W}
type=Creature type=Creature
@@ -22677,8 +22677,8 @@ type=Instant
name=Flaxen Intruder // Welcome Home name=Flaxen Intruder // Welcome Home
abilities=adventure abilities=adventure
other={5}{G}{G} name(Adventure) other={5}{G}{G} name(Adventure)
autostack=if paid(alternative) then name(Create 3 Bears) name(Create 3 Bears) token(Bear,Creature Bear,2/2,green)*3 auto=if paid(alternative) then name(Create 3 Bears) name(Create 3 Bears) token(Bear,Creature Bear,2/2,green)*3
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=@combatdamaged(player) from(this):may sacrifice all(this) && destroy target(*[artifact;enchantment]|battlefield) auto=@combatdamaged(player) from(this):may sacrifice all(this) && destroy target(*[artifact;enchantment]|battlefield)
text=Whenever Flaxen Intruder deals combat damage to a player, you may sacrifice it. When you do, destroy target artifact or enchantment. // Create three 2/2 green Bear creature tokens. (Then exile this card. You may cast the creature later from exile.) text=Whenever Flaxen Intruder deals combat damage to a player, you may sacrifice it. When you do, destroy target artifact or enchantment. // Create three 2/2 green Bear creature tokens. (Then exile this card. You may cast the creature later from exile.)
mana={G} mana={G}
@@ -23260,11 +23260,11 @@ toughness=2
[/card] [/card]
[card] [card]
name=Foulmire Knight // Profane Insight name=Foulmire Knight // Profane Insight
abilities=deathtouch,flash,adventure abilities=deathtouch,adventure,asflash
restriction=can play creature restriction=can play creature
other={2}{B} name(Adventure) other={2}{B} name(Adventure)
autostack=if paid(alternative) then name(Draw 1 and opponent looses 1 life) name(Draw 1 and opponent looses 1 life) draw:1 controller && life:-1 controller auto=if paid(alternative) then name(Draw 1 and opponent looses 1 life) name(Draw 1 and opponent looses 1 life) draw:1 controller && life:-1 controller
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Deathtouch // You draw a card and you lose 1 life. (Then exile this card. You may cast the creature later from exile.) text=Deathtouch // You draw a card and you lose 1 life. (Then exile this card. You may cast the creature later from exile.)
mana={B} mana={B}
type=Creature type=Creature
@@ -24098,11 +24098,11 @@ toughness=3
[/card] [/card]
[card] [card]
name=Garenbrig Carver // Shield's Might name=Garenbrig Carver // Shield's Might
abilities=flash,adventure abilities=adventure,asflash
restriction=can play creature restriction=can play creature
other={1}{G} name(Adventure) other={1}{G} name(Adventure)
autostack=if paid(alternative) then name(Creature gets 2/2) name(Creature gets 2/2) target(creature|battlefield) 2/2 ueot auto=if paid(alternative) then name(Creature gets 2/2) name(Creature gets 2/2) target(creature|battlefield) 2/2 ueot
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Target creature gets +2/+2 until end of turn. (Then exile this card. You may cast the creature later from exile.) text=Target creature gets +2/+2 until end of turn. (Then exile this card. You may cast the creature later from exile.)
mana={3}{G} mana={3}{G}
type=Creature type=Creature
@@ -24123,7 +24123,7 @@ toughness=4
[/card] [/card]
[card] [card]
name=Garenbrig Squire name=Garenbrig Squire
auto=@movedTo(creature[adventure]|myStack):all(trigger[to]) transforms((,newability[ifnot paid(alternative) then all(Garenbrig Squire|myBattlefield) 1/1 ueot])) ueot auto=@movedTo(creature[adventure]|myStack):name(Gains 1/1) 1/1 ueot
text=Whenever you cast a creature spell that has an Adventure, Garenbrig Squire gets +1/+1 until end of turn. (It doesn't need to have gone on the adventure first.) text=Whenever you cast a creature spell that has an Adventure, Garenbrig Squire gets +1/+1 until end of turn. (It doesn't need to have gone on the adventure first.)
mana={1}{G} mana={1}{G}
type=Creature type=Creature
@@ -24826,11 +24826,11 @@ toughness=1
[/card] [/card]
[card] [card]
name=Giant Killer // Chop Down name=Giant Killer // Chop Down
abilities=flash,adventure abilities=adventure,asflash
restriction=can play creature restriction=can play creature
other={2}{W} name(Adventure) other={2}{W} name(Adventure)
autostack=if paid(alternative) then name(Destroy creature) name(Destroy creature) target(creature[power>=4]|battlefield) destroy auto=if paid(alternative) then name(Destroy creature) name(Destroy creature) target(creature[power>=4]|battlefield) destroy
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto={1}{W}{T}:target(creature) tap(noevent) auto={1}{W}{T}:target(creature) tap(noevent)
text={1}{W}, {T}: Tap target creature. // Destroy target creature with power 4 or greater. (Then exile this card. You may cast the creature later from exile.) text={1}{W}, {T}: Tap target creature. // Destroy target creature with power 4 or greater. (Then exile this card. You may cast the creature later from exile.)
mana={W} mana={W}
@@ -30593,11 +30593,11 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Hypnotic Sprite // Mesmeric Glare name=Hypnotic Sprite // Mesmeric Glare
abilities=flying,flash,adventure abilities=flying,adventure,asflash
restriction=can play creature restriction=can play creature
other={2}{U} name(Adventure) other={2}{U} name(Adventure)
autostack=if paid(alternative) then name(Counter spell) name(Counter spell) target(*[manacost<=3]|stack) fizzle auto=if paid(alternative) then name(Counter spell) name(Counter spell) target(*[manacost<=3]|stack) fizzle
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Flying // Counter target spell with converted mana cost 3 or less. (Then exile this card. You may cast the creature later from exile.) text=Flying // Counter target spell with converted mana cost 3 or less. (Then exile this card. You may cast the creature later from exile.)
mana={U}{U} mana={U}{U}
type=Creature type=Creature
@@ -34201,7 +34201,7 @@ toughness=4
[card] [card]
name=Keeper of the Secret Lair name=Keeper of the Secret Lair
abilities=flash abilities=flash
auto=lord(*[-land]|mycastingzone) flash auto=lord(*[-land]|mycastingzone) asflash
auto=lord(*|mycastingzone) altercost(colorless, -1) auto=lord(*|mycastingzone) altercost(colorless, -1)
text=Flash -- You may cast Secret Lair spells as though they had flash. -- Secret Lair spells you cast cost {1} less to cast. text=Flash -- You may cast Secret Lair spells as though they had flash. -- Secret Lair spells you cast cost {1} less to cast.
mana={1}{U} mana={1}{U}
@@ -37492,8 +37492,8 @@ type=Instant
name=Lonesome Unicorn // Rider in Need name=Lonesome Unicorn // Rider in Need
abilities=vigilance,adventure abilities=vigilance,adventure
other={2}{W} name(Adventure) other={2}{W} name(Adventure)
autostack=if paid(alternative) then name(Create knight) name(Create knight) token(Knight,creature Knight,2/2,white,vigilance) auto=if paid(alternative) then name(Create knight) name(Create knight) token(Knight,creature Knight,2/2,white,vigilance)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Vigilance // Create a 2/2 white Knight creature token with vigilance. (Then exile this card. You may cast the creature later from exile.) text=Vigilance // Create a 2/2 white Knight creature token with vigilance. (Then exile this card. You may cast the creature later from exile.)
mana={4}{W} mana={4}{W}
type=Creature type=Creature
@@ -37810,8 +37810,8 @@ type=Land
name=Lovestruck Beast // Heart's Desire name=Lovestruck Beast // Heart's Desire
abilities=adventure abilities=adventure
other={G} name(Adventure) other={G} name(Adventure)
autostack=if paid(alternative) then name(Create human) name(Create human) token(Human,Creature Human,1/1,white) auto=if paid(alternative) then name(Create human) name(Create human) token(Human,Creature Human,1/1,white)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=@each my combatbegins:if type(creature[power=1]|mybattlefield)~lessthan~1 then cantattack ueot auto=@each my combatbegins:if type(creature[power=1]|mybattlefield)~lessthan~1 then cantattack ueot
auto=@each my combatbegins:if type(creature[toughness=1]|mybattlefield)~lessthan~1 then cantattack ueot auto=@each my combatbegins:if type(creature[toughness=1]|mybattlefield)~lessthan~1 then cantattack ueot
text=Lovestruck Beast can't attack unless you control a 1/1 creature. // Create a 1/1 white Human creature token. (Then exile this card. You may cast the creature later from exile.) text=Lovestruck Beast can't attack unless you control a 1/1 creature. // Create a 1/1 white Human creature token. (Then exile this card. You may cast the creature later from exile.)
@@ -39663,12 +39663,12 @@ toughness=4
[/card] [/card]
[card] [card]
name=Merchant of the Vale // Haggle name=Merchant of the Vale // Haggle
abilities=flash,adventure abilities=adventure,asflash
restriction=can play creature restriction=can play creature
other={R} name(Adventure) other={R} name(Adventure)
autostack=if paid(alternative) then may name(Discard and draw) reject notatarget(*|myhand) and!( draw:1 controller ) auto=if paid(alternative) then may name(Discard and draw) reject notatarget(*|myhand) and!( draw:1 controller )
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto={2}{R}{D(*|myhand)}:draw:1 auto={2}{R}{D(*|myhand)}:name(Draw a card) draw:1
text={2}{R}, Discard a card: Draw a card. // You may discard a card. If you do, draw a card. (Then exile this card. You may cast the creature later from exile.) text={2}{R}, Discard a card: Draw a card. // You may discard a card. If you do, draw a card. (Then exile this card. You may cast the creature later from exile.)
mana={2}{R} mana={2}{R}
type=Creature type=Creature
@@ -39787,9 +39787,9 @@ toughness=2
name=Merfolk Secretkeeper // Venture Deeper name=Merfolk Secretkeeper // Venture Deeper
abilities=adventure abilities=adventure
other={U} name(Adventure) other={U} name(Adventure)
autostack=if paid(alternative) then choice name(Opponent mills 4 cards) name(Opponent mills 4 cards) deplete:4 opponent auto=if paid(alternative) then choice name(Opponent mills 4 cards) name(Opponent mills 4 cards) deplete:4 opponent
autostack=if paid(alternative) then choice name(You mill 4 cards) name(You mill 4 cards) deplete:4 controller auto=if paid(alternative) then choice name(You mill 4 cards) name(You mill 4 cards) deplete:4 controller
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Target player puts the top four cards of their library into their graveyard. (Then exile this card. You may cast the creature later from exile.) text=Target player puts the top four cards of their library into their graveyard. (Then exile this card. You may cast the creature later from exile.)
mana={U} mana={U}
type=Creature type=Creature
@@ -41278,12 +41278,12 @@ type=Enchantment
[/card] [/card]
[card] [card]
name=Murderous Rider // Swift End name=Murderous Rider // Swift End
abilities=flash,lifelink,adventure abilities=lifelink,adventure,asflash
restriction=can play creature restriction=can play creature
other={1}{B}{B} name(Adventure) other={1}{B}{B} name(Adventure)
autostack=if paid(alternative) then name(Destroy creature or planeswalker) name(Destroy creature or planeswalker) target(creature,planeswalker) destroy auto=if paid(alternative) then name(Destroy creature or planeswalker) name(Destroy creature or planeswalker) target(creature,planeswalker) destroy
autostack=if paid(alternative) then name(You loose 2 life) name(You loose 2 life) life:-2 controller auto=if paid(alternative) then name(You loose 2 life) name(You loose 2 life) life:-2 controller
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=_DIES_name(Put on the bottom of library) all(trigger[to]) bottomoflibrary auto=_DIES_name(Put on the bottom of library) all(trigger[to]) bottomoflibrary
text=Lifelink -- When Murderous Rider dies, put it on the bottom of its owner's library. // Destroy target creature or planeswalker. You lose 2 life. (Then exile this card. You may cast the creature later from exile.) text=Lifelink -- When Murderous Rider dies, put it on the bottom of its owner's library. // Destroy target creature or planeswalker. You lose 2 life. (Then exile this card. You may cast the creature later from exile.)
mana={1}{B}{B} mana={1}{B}{B}
@@ -41447,7 +41447,7 @@ toughness=2
[card] [card]
name=Mysterious Pathlighter name=Mysterious Pathlighter
abilities=flying abilities=flying
auto=@movedto(creature[adventure]|myBattlefield):all(trigger[to]) counter(1/1) auto=@movedto(creature[adventure]|myBattlefield):name(Put 1/1 counter) all(trigger[to]) counter(1/1)
text=Flying -- Each creature you control that has an Adventure enters the battlefield with an additional +1/+1 counter on it. (It doesn't need to have gone on the adventure first.) text=Flying -- Each creature you control that has an Adventure enters the battlefield with an additional +1/+1 counter on it. (It doesn't need to have gone on the adventure first.)
mana={2}{W} mana={2}{W}
type=Creature type=Creature
@@ -44448,8 +44448,8 @@ type=Instant
name=Order of Midnight // Alter Fate name=Order of Midnight // Alter Fate
abilities=flying,cantblock,adventure abilities=flying,cantblock,adventure
other={1}{B} name(Adventure) other={1}{B} name(Adventure)
autostack=if paid(alternative) then name(Return creature from graveyard) name(Return creature from graveyard) target(creature|mygraveyard) moveto(myhand) auto=if paid(alternative) then name(Return creature from graveyard) name(Return creature from graveyard) target(creature|mygraveyard) moveto(myhand)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Flying -- Order of Midnight can't block. // Return target creature card from your graveyard to your hand. (Then exile this card. You may cast the creature later from exile.) text=Flying -- Order of Midnight can't block. // Return target creature card from your graveyard to your hand. (Then exile this card. You may cast the creature later from exile.)
mana={1}{B} mana={1}{B}
type=Creature type=Creature
@@ -48273,8 +48273,8 @@ toughness=3
name=Queen of Ice // Rage of Winter name=Queen of Ice // Rage of Winter
abilities=adventure abilities=adventure
other={1}{U} name(Adventure) other={1}{U} name(Adventure)
autostack=if paid(alternative) then name(Freeze creature) name(Freeze creature) target(creature|battlefield) freeze auto=if paid(alternative) then name(Freeze creature) name(Freeze creature) target(creature|battlefield) freeze
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=@combatdamaged(creature) from(this):all(trigger[to]) freeze auto=@combatdamaged(creature) from(this):all(trigger[to]) freeze
text=Whenever Queen of Ice deals combat damage to a creature, tap that creature. It doesn't untap during its controller's next untap step. // Tap target creature. It doesn't untap during its controller's next untap step. (Then exile this card. You may cast the creature later from exile.) text=Whenever Queen of Ice deals combat damage to a creature, tap that creature. It doesn't untap during its controller's next untap step. // Tap target creature. It doesn't untap during its controller's next untap step. (Then exile this card. You may cast the creature later from exile.)
mana={2}{U} mana={2}{U}
@@ -48490,7 +48490,7 @@ type=Instant
[card] [card]
name=Raff Capashen, Ship's Mage name=Raff Capashen, Ship's Mage
abilities=flash, flying abilities=flash, flying
auto=lord(*[artifact;legendary;saga]|myhand) flash auto=lord(*[artifact;legendary;saga]|myhand) asflash
text=Flash -- Flying -- You may cast historic spells as though they had flash. (Artifacts, legendaries, and Sagas are historic.) text=Flash -- Flying -- You may cast historic spells as though they had flash. (Artifacts, legendaries, and Sagas are historic.)
mana={2}{W}{U} mana={2}{W}{U}
type=Legendary Creature type=Legendary Creature
@@ -49461,8 +49461,8 @@ toughness=5
name=Realm-Cloaked Giant // Cast Off name=Realm-Cloaked Giant // Cast Off
abilities=vigilance,adventure abilities=vigilance,adventure
other={3}{W}{W} name(Adventure) other={3}{W}{W} name(Adventure)
autostack=if paid(alternative) then name(Destroy all non-giants) name(Destroy all non-giants) destroy all(creature[-giant]|battlefield) auto=if paid(alternative) then name(Destroy all non-giants) name(Destroy all non-giants) destroy all(creature[-giant]|battlefield)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Vigilance // Destroy all non-Giant creatures. (Then exile this card. You may cast the creature later from exile.) text=Vigilance // Destroy all non-Giant creatures. (Then exile this card. You may cast the creature later from exile.)
mana={5}{W}{W} mana={5}{W}{W}
type=Creature type=Creature
@@ -49513,8 +49513,8 @@ type=Sorcery
name=Reaper of Night // Harvest Fear name=Reaper of Night // Harvest Fear
abilities=adventure abilities=adventure
other={3}{B} name(Adventure) other={3}{B} name(Adventure)
autostack=if paid(alternative) then ability$!name(discard 2 cards) name(discard 2 cards) target(<2>*|myhand) reject!$ opponent auto=if paid(alternative) then ability$!name(discard 2 cards) name(discard 2 cards) target(<2>*|myhand) reject!$ opponent
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=@combat(attacking) source(this) restriction{type(*|opponenthand)~lessthan~3}:name(Gains flying) all(this) transforms((,newability[flying])) ueot auto=@combat(attacking) source(this) restriction{type(*|opponenthand)~lessthan~3}:name(Gains flying) all(this) transforms((,newability[flying])) ueot
text=Whenever Reaper of Night attacks, if defending player has two or fewer cards in hand, it gains flying until end of turn. // Target opponent discards two cards. (Then exile this card. You may cast the creature later from exile.) text=Whenever Reaper of Night attacks, if defending player has two or fewer cards in hand, it gains flying until end of turn. // Target opponent discards two cards. (Then exile this card. You may cast the creature later from exile.)
mana={5}{B}{B} mana={5}{B}{B}
@@ -51041,11 +51041,11 @@ subtype=Forest Island
[/card] [/card]
[card] [card]
name=Rimrock Knight // Boulder Rush name=Rimrock Knight // Boulder Rush
abilities=cantblock,flash,adventure abilities=cantblock,adventure,asflash
restriction=can play creature restriction=can play creature
other={R} name(Adventure) other={R} name(Adventure)
autostack=if paid(alternative) then name(Creature gets 2/0) target(creature|battlefield) 2/0 ueot auto=if paid(alternative) then name(Creature gets 2/0) target(creature|battlefield) 2/0 ueot
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Rimrock Knight can't block. // Target creature gets +2/+0 until end of turn. (Then exile this card. You may cast the creature later from exile.) text=Rimrock Knight can't block. // Target creature gets +2/+0 until end of turn. (Then exile this card. You may cast the creature later from exile.)
mana={1}{R} mana={1}{R}
type=Creature type=Creature
@@ -51900,7 +51900,7 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Rootwater Shaman name=Rootwater Shaman
auto=lord(aura|mycastingzone) transforms((,newability[flash])) auto=lord(aura|mycastingzone) asflash
text=You may cast Aura cards with enchant creature as though they had flash. text=You may cast Aura cards with enchant creature as though they had flash.
mana={2}{U} mana={2}{U}
type=Creature type=Creature
@@ -51934,8 +51934,8 @@ toughness=4
name=Rosethorn Acolyte // Seasonal Ritual name=Rosethorn Acolyte // Seasonal Ritual
abilities=adventure abilities=adventure
other={G} name(Adventure) other={G} name(Adventure)
autostack=if paid(alternative) then name(Add 1 mana of any color) name(Add 1 mana of any color) transforms((,newability[activatechooseacolor add{chosencolor} activatechooseend])) forever auto=if paid(alternative) then name(Add 1 mana of any color) name(Add 1 mana of any color) transforms((,newability[activatechooseacolor add{chosencolor} activatechooseend])) forever
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto={T}:add{U} auto={T}:add{U}
auto={T}:add{B} auto={T}:add{B}
auto={T}:add{R} auto={T}:add{R}
@@ -55772,11 +55772,11 @@ toughness=3
[/card] [/card]
[card] [card]
name=Shepherd of the Flock // Usher to Safety name=Shepherd of the Flock // Usher to Safety
abilities=flash,adventure abilities=adventure,asflash
restriction=can play creature restriction=can play creature
other={W} name(Adventure) other={W} name(Adventure)
autostack=if paid(alternative) then name(Return permanent to hand) name(Return permanent to hand) target(*|myBattlefield) moveTo(ownerhand) auto=if paid(alternative) then name(Return permanent to hand) name(Return permanent to hand) target(*|myBattlefield) moveTo(ownerhand)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Return target permanent you control to its owner's hand. (Then exile this card. You may cast the creature later from exile.) text=Return target permanent you control to its owner's hand. (Then exile this card. You may cast the creature later from exile.)
mana={1}{W} mana={1}{W}
type=Creature type=Creature
@@ -56671,11 +56671,11 @@ type=Sorcery
[/card] [/card]
[card] [card]
name=Silverflame Squire // On Alert name=Silverflame Squire // On Alert
abilities=flash,adventure abilities=adventure,asflash
restriction=can play creature restriction=can play creature
other={2}{W} name(Adventure) other={2}{W} name(Adventure)
autostack=if paid(alternative) then name(Creature gets 2/2 and untap) name(Creature gets 2/2 and untap) target(creature|battlefield) transforms((,newability[2/2],newability[untap])) ueot auto=if paid(alternative) then name(Creature gets 2/2 and untap) name(Creature gets 2/2 and untap) target(creature|battlefield) transforms((,newability[2/2],newability[untap])) ueot
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Target creature gets +2/+2 until end of turn. Untap it. (Then exile this card. You may cast the creature later from exile.) text=Target creature gets +2/+2 until end of turn. Untap it. (Then exile this card. You may cast the creature later from exile.)
mana={1}{W} mana={1}{W}
type=Creature type=Creature
@@ -58014,9 +58014,9 @@ type=Sorcery
name=Smitten Swordmaster // Curry Favor name=Smitten Swordmaster // Curry Favor
abilities=lifelink,adventure abilities=lifelink,adventure
other={B} name(Adventure) other={B} name(Adventure)
autostack=if paid(alternative) then name(You gain life) name(You gain life) life:type:knight:mybattlefield controller auto=if paid(alternative) then name(You gain life) name(You gain life) life:type:knight:mybattlefield controller
autostack=if paid(alternative) then name(Opponent looses life) name(Opponent looses life) life:-type:knight:mybattlefield opponent auto=if paid(alternative) then name(Opponent looses life) name(Opponent looses life) life:-type:knight:mybattlefield opponent
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Lifelink // You gain X life and each opponent loses X life, where X is the number of Knights you control. text=Lifelink // You gain X life and each opponent loses X life, where X is the number of Knights you control.
mana={1}{B} mana={1}{B}
type=Creature type=Creature
@@ -67035,8 +67035,8 @@ toughness=3
name=Tuinvale Treefolk // Oaken Boon name=Tuinvale Treefolk // Oaken Boon
abilities=adventure abilities=adventure
other={3}{G} name(Adventure) other={3}{G} name(Adventure)
autostack=if paid(alternative) then name(Put two 1/1 counters) name(Put two 1/1 counters) target(creature|battlefield) counter(1/1,2) auto=if paid(alternative) then name(Put two 1/1 counters) name(Put two 1/1 counters) target(creature|battlefield) counter(1/1,2)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
text=Put two +1/+1 counters on target creature. (Then exile this card. You may cast the creature later from exile.) text=Put two +1/+1 counters on target creature. (Then exile this card. You may cast the creature later from exile.)
mana={5}{G} mana={5}{G}
type=Creature type=Creature
@@ -70605,7 +70605,7 @@ toughness=2
[/card] [/card]
[card] [card]
name=Wandermare name=Wandermare
auto=@movedTo(creature[adventure]|myStack):all(trigger[to]) transforms((,newability[ifnot paid(alternative) then all(Wandermare|myBattlefield) counter(1/1)])) ueot auto=@movedTo(creature[adventure]|myStack):name(Put 1/1 counter) counter(1/1)
text=Whenever you cast a creature spell that has an Adventure, put a +1/+1 counter on Wandermare. (It doesn't need to have gone on the adventure first.) text=Whenever you cast a creature spell that has an Adventure, put a +1/+1 counter on Wandermare. (It doesn't need to have gone on the adventure first.)
mana={1}{G}{W} mana={1}{G}{W}
type=Creature type=Creature

View File

@@ -2547,7 +2547,7 @@ type=Sorcery
[card] [card]
name=Alchemist's Refuge name=Alchemist's Refuge
auto={T}:Add{1} auto={T}:Add{1}
auto={G}{U}{T}:name(nonland cards have flash) all(*[-land]|myhand,mygraveyard,myexile) flash ueot auto={G}{U}{T}:name(nonland cards have flash) all(*[-land]|myhand,mygraveyard,myexile) transforms((,newability[asflash])) ueot
text={T}: Add {1} to your mana pool. -- {G}{U}, {T}: You may cast nonland cards this turn as though they had flash. text={T}: Add {1} to your mana pool. -- {G}{U}, {T}: You may cast nonland cards this turn as though they had flash.
type=Land type=Land
[/card] [/card]
@@ -56562,7 +56562,7 @@ toughness=2
[/card] [/card]
[card] [card]
name=Hypersonic Dragon name=Hypersonic Dragon
auto=lord(sorcery|myhand) flash auto=lord(sorcery|myhand) asflash
abilities=flying,haste abilities=flying,haste
text=Flying, haste -- You may cast sorcery spells as though they had flash. (You may cast them any time you could cast an instant.) text=Flying, haste -- You may cast sorcery spells as though they had flash. (You may cast them any time you could cast an instant.)
mana={3}{U}{R} mana={3}{U}{R}
@@ -66526,13 +66526,11 @@ type=Enchantment
[/card] [/card]
[card] [card]
name=Leyline of Anticipation name=Leyline of Anticipation
auto=@each beginofturn:all(*[-land]|myhand) flash abilities=leyline
auto=@movedto(*|myhand):all(*[-land]|myhand) flash auto=lord(*[-land]|myhand) asflash
auto=all(*[-land]|myhand) flash
text=If Leyline of Anticipation is in your opening hand, you may begin the game with it on the battlefield. -- You may cast nonland cards as though they had flash. (You may cast them any time you could cast an instant.) text=If Leyline of Anticipation is in your opening hand, you may begin the game with it on the battlefield. -- You may cast nonland cards as though they had flash. (You may cast them any time you could cast an instant.)
mana={u}{u}{2} mana={u}{u}{2}
type=Enchantment type=Enchantment
abilities=leyline
[/card] [/card]
[card] [card]
name=Leyline of Lightning name=Leyline of Lightning
@@ -89067,7 +89065,7 @@ toughness=2
[card] [card]
name=Prophet of Kruphix name=Prophet of Kruphix
auto=@each opponent untap:untap all(creature,land|mybattlefield) auto=@each opponent untap:untap all(creature,land|mybattlefield)
auto=lord(creature|myhand) flash auto=lord(creature|myhand) asflash
text=Untap all creatures and lands you control during each other player's untap step. -- You may cast creature cards as though they had flash. text=Untap all creatures and lands you control during each other player's untap step. -- You may cast creature cards as though they had flash.
mana={3}{G}{U} mana={3}{G}{U}
type=Creature type=Creature
@@ -105046,8 +105044,8 @@ toughness=5
[/card] [/card]
[card] [card]
name=Sigarda's Aid name=Sigarda's Aid
auto=lord(Aura|myhand) flash auto=lord(Aura|myhand) asflash
auto=lord(Equipment|myhand) flash auto=lord(Equipment|myhand) asflash
auto=@movedto(equipment|mybattlefield):may all(trigger[to]) retarget auto=@movedto(equipment|mybattlefield):may all(trigger[to]) retarget
text=You may cast Aura and Equipment spells as though they had flash. -- Whenever an Equipment enters the battlefield under your control, you may attach it to target creature you control. text=You may cast Aura and Equipment spells as though they had flash. -- Whenever an Equipment enters the battlefield under your control, you may attach it to target creature you control.
mana={W} mana={W}
@@ -134276,7 +134274,7 @@ type=Sorcery
[card] [card]
name=Winding Canyons name=Winding Canyons
auto={T}:Add{1} auto={T}:Add{1}
auto={2}{T}:all(creature|mycastingzone) asflash ueot auto={2}{T}:all(creature|mycastingzone) transforms((,newability[asflash])) ueot
text={T}: Add {1} to your mana pool. -- {2}, {T}: Until end of turn, you may play creature cards as though they had flash. text={T}: Add {1} to your mana pool. -- {2}, {T}: Until end of turn, you may play creature cards as though they had flash.
type=Land type=Land
[/card] [/card]

View File

@@ -2677,7 +2677,7 @@ subtype=Teferi
name=Teferi, Time Raveler name=Teferi, Time Raveler
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto=this(variable{controllerturn}>0) maxCast(*)0 opponent auto=this(variable{controllerturn}>0) maxCast(*)0 opponent
auto={C(0/0,1,Loyalty)}:name(+1: Cast sorceries as flash) emblem transforms((,newability[lord(sorcery|mycastingzone) flash])) uynt auto={C(0/0,1,Loyalty)}:name(+1: Cast sorceries as flash) emblem transforms((,newability[lord(sorcery|mycastingzone) asflash])) uynt
auto={C(0/0,-3,Loyalty)}:name(-3: Return artifact, creature or enchantment) target(*[artifact;creature;enchantment]) moveTo(ownerhand) && draw:1 controller auto={C(0/0,-3,Loyalty)}:name(-3: Return artifact, creature or enchantment) target(*[artifact;creature;enchantment]) moveTo(ownerhand) && draw:1 controller
text=Each opponent can cast spells only any time they could cast a sorcery. -- +1: Until your next turn, you may cast sorcery spells as though they had flash. -- -3: Return up to one target artifact, creature, or enchantment to its owner's hand. Draw a card. text=Each opponent can cast spells only any time they could cast a sorcery. -- +1: Until your next turn, you may cast sorcery spells as though they had flash. -- -3: Return up to one target artifact, creature, or enchantment to its owner's hand. Draw a card.
mana={1}{W}{U} mana={1}{W}{U}
@@ -2844,7 +2844,7 @@ type=Legendary Planeswalker
[card] [card]
name=Tibalt, Cosmic Impostor name=Tibalt, Cosmic Impostor
auto=counter(0/0,5,Loyalty) auto=counter(0/0,5,Loyalty)
auto=token(Tibalt Emblem,Emblem,0/0,shroud,indestructible,notrigger) and!( transforms((,newability[lord(*[counter{0/0.1.TibaltExiled}]|myexile) canplayfromexile],newability[lord(*[counter{0/0.1.TibaltExiled}]|myexile) anytypeofmana],newability[{0}:name(Cast from opponent exile) target(*[counter{0/0.1.TibaltExiled}]|opponentexile) moveto(myexile) and!( transforms((,newability[counter(0/0.1.TibaltExiled)],newability[canplayfromexile],newability[anytypeofmana],newability[phaseaction[endofturn once checkex] moveTo(ownerexile)],newability[phaseaction[untap once checkex] counter(0/0.1.TibaltExiled)])) ueot )!])) forever )! auto=token(Tibalt Emblem,Emblem,0/0,shroud,indestructible,notrigger,nomovetrigger) and!( transforms((,newability[lord(*[counter{0/0.1.TibaltExiled}]|myexile) canplayfromexile],newability[lord(*[counter{0/0.1.TibaltExiled}]|myexile) anytypeofmana],newability[{0}:name(Cast from opponent exile) target(*[counter{0/0.1.TibaltExiled}]|opponentexile) moveto(myexile) and!( transforms((,newability[counter(0/0.1.TibaltExiled)],newability[canplayfromexile],newability[anytypeofmana],newability[phaseaction[endofturn once checkex] moveTo(ownerexile)],newability[phaseaction[untap once checkex] counter(0/0.1.TibaltExiled)])) ueot )!])) forever )!
auto={C(0/0,2,Loyalty)}:name(+2: Exile the top card) all(*[zpos=1]|library) moveto(ownerexile) and!( counter(0/0,1,TibaltExiled) )! auto={C(0/0,2,Loyalty)}:name(+2: Exile the top card) all(*[zpos=1]|library) moveto(ownerexile) and!( counter(0/0,1,TibaltExiled) )!
auto={C(0/0,-3,Loyalty)}:name(-3: Exile target artifact or creature) target(*[artifact;creature]|battlefield) moveto(ownerexile) and!( counter(0/0,1,TibaltExiled) )! auto={C(0/0,-3,Loyalty)}:name(-3: Exile target artifact or creature) target(*[artifact;creature]|battlefield) moveto(ownerexile) and!( counter(0/0,1,TibaltExiled) )!
auto={C(0/0,-8,Loyalty)}:name(-8: Exile all cards from all graveyards) all(*|graveyard) moveto(ownerexile) and!( counter(0/0,1,TibaltExiled) )! auto={C(0/0,-8,Loyalty)}:name(-8: Exile all cards from all graveyards) all(*|graveyard) moveto(ownerexile) and!( counter(0/0,1,TibaltExiled) )!
@@ -2950,7 +2950,7 @@ subtype=Vivien
[card] [card]
name=Vivien, Champion of the Wilds name=Vivien, Champion of the Wilds
auto=counter(0/0,4,loyalty) auto=counter(0/0,4,loyalty)
auto=lord(creature|myHand) flash auto=lord(creature|myHand) asflash
auto={C(0/0,1,Loyalty)}:name(+1: Creature gains vigilance and reach) target(creature) vigilance uynt && reach uynt auto={C(0/0,1,Loyalty)}:name(+1: Creature gains vigilance and reach) target(creature) vigilance uynt && reach uynt
auto={C(0/0,-2,Loyalty)}:name(-2: Reveal three and may cast it) reveal:3 optionone name(Get a card) target(<1>creature|reveal) moveTo(exile) and!( transforms((,canplayfromexile)) forever )! optiononeend optiontwo name(put on bottom) target(<3>*|reveal) bottomoflibrary optiontwoend revealend auto={C(0/0,-2,Loyalty)}:name(-2: Reveal three and may cast it) reveal:3 optionone name(Get a card) target(<1>creature|reveal) moveTo(exile) and!( transforms((,canplayfromexile)) forever )! optiononeend optiontwo name(put on bottom) target(<3>*|reveal) bottomoflibrary optiontwoend revealend
text=You may cast creature spells as though they had flash. -- +1: Until your next turn, up to one target creature gains vigilance and reach. -- -2: Look at the top three cards of your library. Exile one face down and put the rest on the bottom of your library in any order. For as long as it remains exiled, you may look at that card and you may cast it if it's a creature card. text=You may cast creature spells as though they had flash. -- +1: Until your next turn, up to one target creature gains vigilance and reach. -- -2: Look at the top three cards of your library. Exile one face down and put the rest on the bottom of your library in any order. For as long as it remains exiled, you may look at that card and you may cast it if it's a creature card.

View File

@@ -317,7 +317,8 @@ class Constants
PERPETUALLIFELINK = 190, PERPETUALLIFELINK = 190,
PERPETUALDEATHTOUCH = 191, PERPETUALDEATHTOUCH = 191,
NONCOMBATVIGOR = 192, NONCOMBATVIGOR = 192,
NB_BASIC_ABILITIES = 193, NOMOVETRIGGER = 193,
NB_BASIC_ABILITIES = 194,
RARITY_S = 'S', //Special Rarity RARITY_S = 'S', //Special Rarity
RARITY_M = 'M', //Mythics RARITY_M = 'M', //Mythics

View File

@@ -3586,8 +3586,10 @@ int AIPlayerBaka::computeActions()
//am im not interupting my own spell, or the stack contains nothing. //am im not interupting my own spell, or the stack contains nothing.
{ {
bool ipotential = false; bool ipotential = false;
if(p->game->hand->hasType("instant") || p->game->hand->hasAbility(Constants::FLASH) || p->game->graveyard->hasType("instant") || p->game->graveyard->hasAbility(Constants::FLASH) || if(p->game->hand->hasType("instant") || p->game->hand->hasAbility(Constants::FLASH) || p->game->hand->hasAbility(Constants::ASFLASH) ||
p->game->exile->hasType("instant") || p->game->exile->hasAbility(Constants::FLASH) || p->game->commandzone->hasAbility(Constants::FLASH)) //Now AI will not search just for instant cards. p->game->graveyard->hasType("instant") || p->game->graveyard->hasAbility(Constants::FLASH) || p->game->graveyard->hasAbility(Constants::ASFLASH) ||
p->game->exile->hasType("instant") || p->game->exile->hasAbility(Constants::FLASH) || p->game->exile->hasAbility(Constants::ASFLASH) ||
p->game->commandzone->hasAbility(Constants::FLASH) || p->game->commandzone->hasAbility(Constants::ASFLASH)) //Now AI will not search just for instant cards.
{ {
#ifndef AI_CHANGE_TESTING #ifndef AI_CHANGE_TESTING
findingCard = true; findingCard = true;
@@ -3604,22 +3606,22 @@ int AIPlayerBaka::computeActions()
nextCardToPlay = FindCardToPlay(icurrentMana, ""); //Now AI will not search just for instant cards. nextCardToPlay = FindCardToPlay(icurrentMana, ""); //Now AI will not search just for instant cards.
bool canPlay = false; bool canPlay = false;
if(nextCardToPlay && p->game->hand->hasCard(nextCardToPlay)){ if(nextCardToPlay && p->game->hand->hasCard(nextCardToPlay)){
if(nextCardToPlay->hasType(Subtypes::TYPE_INSTANT) || nextCardToPlay->has(Constants::FLASH)) if(nextCardToPlay->hasType(Subtypes::TYPE_INSTANT) || nextCardToPlay->has(Constants::FLASH) || nextCardToPlay->has(Constants::ASFLASH))
canPlay = true; canPlay = true;
} else if(nextCardToPlay && p->game->graveyard->hasCard(nextCardToPlay)){ } else if(nextCardToPlay && p->game->graveyard->hasCard(nextCardToPlay)){
if((nextCardToPlay->hasType(Subtypes::TYPE_INSTANT) || nextCardToPlay->has(Constants::FLASH)) && nextCardToPlay->has(Constants::CANPLAYFROMGRAVEYARD)) if((nextCardToPlay->hasType(Subtypes::TYPE_INSTANT) || nextCardToPlay->has(Constants::FLASH) || nextCardToPlay->has(Constants::ASFLASH)) && nextCardToPlay->has(Constants::CANPLAYFROMGRAVEYARD))
canPlay = true; canPlay = true;
else if((nextCardToPlay->hasType(Subtypes::TYPE_INSTANT) || nextCardToPlay->has(Constants::FLASH)) && nextCardToPlay->has(Constants::TEMPFLASHBACK)) else if((nextCardToPlay->hasType(Subtypes::TYPE_INSTANT) || nextCardToPlay->has(Constants::FLASH) || nextCardToPlay->has(Constants::ASFLASH)) && nextCardToPlay->has(Constants::TEMPFLASHBACK))
canPlay = true; canPlay = true;
else if((nextCardToPlay->hasType(Subtypes::TYPE_INSTANT) || nextCardToPlay->has(Constants::FLASH)) && nextCardToPlay->getManaCost()->getFlashback()) else if((nextCardToPlay->hasType(Subtypes::TYPE_INSTANT) || nextCardToPlay->has(Constants::FLASH) || nextCardToPlay->has(Constants::ASFLASH)) && nextCardToPlay->getManaCost()->getFlashback())
canPlay = true; canPlay = true;
else if((nextCardToPlay->hasType(Subtypes::TYPE_INSTANT) || nextCardToPlay->has(Constants::FLASH)) && nextCardToPlay->getManaCost()->getRetrace()) else if((nextCardToPlay->hasType(Subtypes::TYPE_INSTANT) || nextCardToPlay->has(Constants::FLASH) || nextCardToPlay->has(Constants::ASFLASH)) && nextCardToPlay->getManaCost()->getRetrace())
canPlay = true; canPlay = true;
} else if(nextCardToPlay && p->game->exile->hasCard(nextCardToPlay)){ } else if(nextCardToPlay && p->game->exile->hasCard(nextCardToPlay)){
if((nextCardToPlay->hasType(Subtypes::TYPE_INSTANT) || nextCardToPlay->has(Constants::FLASH)) && nextCardToPlay->has(Constants::CANPLAYFROMEXILE)) if((nextCardToPlay->hasType(Subtypes::TYPE_INSTANT) || nextCardToPlay->has(Constants::FLASH) || nextCardToPlay->has(Constants::ASFLASH)) && nextCardToPlay->has(Constants::CANPLAYFROMEXILE))
canPlay = true; canPlay = true;
} else if(nextCardToPlay && p->game->commandzone->hasCard(nextCardToPlay)){ } else if(nextCardToPlay && p->game->commandzone->hasCard(nextCardToPlay)){
if(nextCardToPlay->has(Constants::FLASH)) if(nextCardToPlay->has(Constants::FLASH) || nextCardToPlay->has(Constants::ASFLASH))
canPlay = true; canPlay = true;
} }
if(!canPlay) if(!canPlay)

View File

@@ -216,14 +216,15 @@ const char* Constants::MTGBasicAbilities[] = {
"doublefacedeath", //It goes to temp zone after death (e.g. Double face card) "doublefacedeath", //It goes to temp zone after death (e.g. Double face card)
"gaineddoublefacedeath", //It goes to temp after death (use just to give add ability to instants and sorceries which originally have not, e.g. with transforms keyword) "gaineddoublefacedeath", //It goes to temp after death (use just to give add ability to instants and sorceries which originally have not, e.g. with transforms keyword)
"twodngtrg", //It makes rooms abilities trigger twice (e.g. Hama Pashar, Ruin Seeker) "twodngtrg", //It makes rooms abilities trigger twice (e.g. Hama Pashar, Ruin Seeker)
"nodngopp", //Opponent can't venture (e.g. "Keen-Eared Sentry") "nodngopp", //Opponent can't venture (e.g. Keen-Eared Sentry)
"nodngplr", //Controller can't venture "nodngplr", //Controller can't venture
"canplayauraequiplibrarytop", //auras and equipment "canplayauraequiplibrarytop", //auras and equipment
"counterdeath", //It gains a 1/1 counter when it returns from graveyard (to use with inplaydeath and inplaytapdeath)" "counterdeath", //It gains a 1/1 counter when it returns from graveyard (to use with inplaydeath and inplaytapdeath)
"dungeoncompleted", //This dungeon has been completed "dungeoncompleted", //This dungeon has been completed
"perpetuallifelink", //It gains lifelink perpetually "perpetuallifelink", //It gains lifelink perpetually
"perpetualdeathtouch", //It gains deathtouch perpetually "perpetualdeathtouch", //It gains deathtouch perpetually
"noncombatvigor" //instead of taking non-combat damage the source gains +1/+1 counters (e.g. "Stormwild Capridor") "noncombatvigor", //instead of taking non-combat damage the source gains +1/+1 counters (e.g. Stormwild Capridor)
"nomovetrigger" //no trigger when playing these cards (e.g. fake ability cards such as Davriel Conditions, Davriel Offers, Annihilation Rooms)
}; };
map<string,int> Constants::MTGBasicAbilitiesMap; map<string,int> Constants::MTGBasicAbilitiesMap;

View File

@@ -723,8 +723,19 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone
if(shufflelibrary) if(shufflelibrary)
copy->owner->game->library->shuffle();//shouldnt we only ever do this if you clicked close on your library gui?????? copy->owner->game->library->shuffle();//shouldnt we only ever do this if you clicked close on your library gui??????
WEvent * e = NEW WEventZoneChange(copy, from, to); if(copy->has(Constants::ADVENTURE) && copy->alternateCostPaid[ManaCost::MANA_PAID_WITH_ALTERNATIVE] == 1 && //Added to correctly set the adventure cards type.
g->receiveEvent(e); (to == g->players[0]->game->stack || to == g->players[1]->game->stack || to == g->players[0]->game->battlefield || to == g->players[1]->game->battlefield)){
copy->types.clear();
if(copy->has(Constants::ASFLASH))
copy->types.push_back(Subtypes::TYPE_INSTANT);
else
copy->types.push_back(Subtypes::TYPE_SORCERY);
}
if(!copy->has(Constants::NOMOVETRIGGER)){//no trigger when playing these cards (e.g. fake ability cards such as Davriel Conditions, Davriel Offers, Annihilation Rooms)
WEvent * e = NEW WEventZoneChange(copy, from, to);
g->receiveEvent(e);
}
// Erasing counters from copy after the event has been triggered (no counter can survive to a zone changing except the perpetual ones) // Erasing counters from copy after the event has been triggered (no counter can survive to a zone changing except the perpetual ones)
if(doCopy && copy->counters && copy->counters->mCount > 0){ if(doCopy && copy->counters && copy->counters->mCount > 0){