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";
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";
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
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
@@ -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";
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";
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";
else if(id.equals("17061t"))
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
orderindex=EXP-ZZD.ELD
year=2019-10-04
total=326
total=328
[/meta]
[card]
primitive=Warrior
id=-47316011
primitive=Rogue
id=-47316013
rarity=T
[/card]
[card]
@@ -16,8 +16,8 @@ id=-47316012
rarity=T
[/card]
[card]
primitive=Rogue
id=-47316013
primitive=Warrior
id=-47316011
rarity=T
[/card]
[card]
@@ -101,6 +101,11 @@ id=-473121
rarity=T
[/card]
[card]
primitive=Bear
id=-473117
rarity=T
[/card]
[card]
primitive=Rat
id=-473092
rarity=T
@@ -111,6 +116,11 @@ id=-473062
rarity=T
[/card]
[card]
primitive=Goat
id=-473046
rarity=T
[/card]
[card]
primitive=Faerie
id=-473028
rarity=T

View File

@@ -1958,8 +1958,8 @@ type=Land
name=Animating Faerie // Bring to Life
abilities=flying,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
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) 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
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.
mana={2}{U}
type=Creature
@@ -2002,7 +2002,7 @@ toughness=3
[/card]
[card]
name=Annihilation Rooms
abilities=doublefacedeath
abilities=doublefacedeath,nomovetrigger
other={0} name(Sandfall Cell)
kicker={0} name(Veils of Fear)
auto=count(type:*[twodngtrg]:myBattlefield)
@@ -2979,13 +2979,13 @@ toughness=5
[/card]
[card]
name=Ardenvale Tactician // Dizzying Swoop
abilities=flying,flash,adventure
abilities=flying,adventure,asflash
restriction=can play creature
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)
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)
autostack=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 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~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 choice name(Don't tap any creature) name(Don't tap any creature) donothing
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.)
mana={1}{W}{W}
type=Creature
@@ -5040,8 +5040,8 @@ name=Beanstalk Giant // Fertile Footsteps
abilities=adventure
other={2}{G} name(Adventure)
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)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=if paid(alternative) then name(Search basic land) name(Search basic land) target(land[basic]|mylibrary) moveto(mybattlefield)
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.)
mana={6}{G}
type=Creature
@@ -7096,12 +7096,12 @@ toughness=3
[/card]
[card]
name=Bonecrusher Giant // Stomp
abilities=flash,adventure
abilities=adventure,asflash
restriction=can play creature
other={1}{R} name(Adventure)
#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)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=if paid(alternative) then name(Deals 2 damage) name(Deals 2 damage) damage:2 target(player,creature,planeswalker)
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(*|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.
@@ -7614,10 +7614,10 @@ toughness=3
[/card]
[card]
name=Brazen Borrower // Petty Theft
abilities=flash,flying,cloud,adventure
abilities=flying,cloud,flash,adventure,asflash
other={1}{U} name(Adventure)
autostack=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 name(Return to hand) name(Return to hand) target(*[-land]|opponentbattlefield) moveTo(ownerHand)
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.
mana={1}{U}{U}
type=Creature
@@ -9779,8 +9779,8 @@ toughness=1
name=Champions of Archery // Join the Group
abilities=reach,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 )!
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) 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 )!
auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
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.
mana={3}{R}
@@ -10352,7 +10352,7 @@ type=Instant
[/card]
[card]
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=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
@@ -11447,8 +11447,8 @@ type=Sorcery
name=Collectigull // Only the Best
abilities=flying,adventure
other={1}{W} name(Adventure)
autostack=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 name(Return to hand) name(Return to hand) target(*[-land]|myGraveyard) moveTo(ownerHand)
auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=protection from(*)
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.
@@ -13503,8 +13503,8 @@ subtype=Aura
name=Curious Pair // Treats to Share
abilities=adventure
other={G} name(Adventure)
autostack=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 name(Create Food) name(Create Food) token(Food)
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.")
mana={1}{G}
type=Creature
@@ -14125,7 +14125,7 @@ toughness=2
[/card]
[card]
name=Davriel Conditions
abilities=doublefacedeath
abilities=doublefacedeath,nomovetrigger
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~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]
name=Davriel Offers
abilities=doublefacedeath
abilities=doublefacedeath,nomovetrigger
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(Return two creatures) moverandom(creature) from(mygraveyard) to(myhand) and!( counter(1/1.1.PerpetualPT) )!
@@ -18268,7 +18268,7 @@ toughness=4
[/card]
[card]
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.)
mana={G}
type=Creature
@@ -18875,8 +18875,8 @@ toughness=1
name=Embereth Shieldbreaker // Battle Display
abilities=adventure
other={R} name(Adventure)
autostack=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 name(Destroy artifact) name(Destroy artifact) target(artifact|battlefield) destroy
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.)
mana={1}{R}
type=Creature
@@ -18972,7 +18972,7 @@ toughness=4
[card]
name=Emergence Zone
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.
type=Land
[/card]
@@ -20689,8 +20689,8 @@ type=Enchantment
name=Fae of Wishes // Granted
abilities=flying,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)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=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 transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
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.
mana={1}{U}
@@ -20748,8 +20748,8 @@ toughness=4
name=Faerie Guidemother // Gift of the Fae
abilities=flying,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
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
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
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.)
mana={W}
type=Creature
@@ -22677,8 +22677,8 @@ type=Instant
name=Flaxen Intruder // Welcome Home
abilities=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
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=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 transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
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.)
mana={G}
@@ -23260,11 +23260,11 @@ toughness=2
[/card]
[card]
name=Foulmire Knight // Profane Insight
abilities=deathtouch,flash,adventure
abilities=deathtouch,adventure,asflash
restriction=can play creature
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
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
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
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.)
mana={B}
type=Creature
@@ -24098,11 +24098,11 @@ toughness=3
[/card]
[card]
name=Garenbrig Carver // Shield's Might
abilities=flash,adventure
abilities=adventure,asflash
restriction=can play creature
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
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=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 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.)
mana={3}{G}
type=Creature
@@ -24123,7 +24123,7 @@ toughness=4
[/card]
[card]
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.)
mana={1}{G}
type=Creature
@@ -24826,11 +24826,11 @@ toughness=1
[/card]
[card]
name=Giant Killer // Chop Down
abilities=flash,adventure
abilities=adventure,asflash
restriction=can play creature
other={2}{W} name(Adventure)
autostack=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 name(Destroy creature) name(Destroy creature) target(creature[power>=4]|battlefield) destroy
auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
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.)
mana={W}
@@ -30593,11 +30593,11 @@ type=Sorcery
[/card]
[card]
name=Hypnotic Sprite // Mesmeric Glare
abilities=flying,flash,adventure
abilities=flying,adventure,asflash
restriction=can play creature
other={2}{U} name(Adventure)
autostack=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 name(Counter spell) name(Counter spell) target(*[manacost<=3]|stack) fizzle
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.)
mana={U}{U}
type=Creature
@@ -34201,7 +34201,7 @@ toughness=4
[card]
name=Keeper of the Secret Lair
abilities=flash
auto=lord(*[-land]|mycastingzone) flash
auto=lord(*[-land]|mycastingzone) asflash
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.
mana={1}{U}
@@ -37492,8 +37492,8 @@ type=Instant
name=Lonesome Unicorn // Rider in Need
abilities=vigilance,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)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=if paid(alternative) then name(Create knight) name(Create knight) token(Knight,creature Knight,2/2,white,vigilance)
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.)
mana={4}{W}
type=Creature
@@ -37810,8 +37810,8 @@ type=Land
name=Lovestruck Beast // Heart's Desire
abilities=adventure
other={G} name(Adventure)
autostack=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 name(Create human) name(Create human) token(Human,Creature Human,1/1,white)
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[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.)
@@ -39663,12 +39663,12 @@ toughness=4
[/card]
[card]
name=Merchant of the Vale // Haggle
abilities=flash,adventure
abilities=adventure,asflash
restriction=can play creature
other={R} name(Adventure)
autostack=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={2}{R}{D(*|myhand)}:draw:1
auto=if paid(alternative) then may name(Discard and draw) reject notatarget(*|myhand) and!( draw:1 controller )
auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
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.)
mana={2}{R}
type=Creature
@@ -39787,9 +39787,9 @@ toughness=2
name=Merfolk Secretkeeper // Venture Deeper
abilities=adventure
other={U} name(Adventure)
autostack=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
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=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(You mill 4 cards) name(You mill 4 cards) deplete:4 controller
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.)
mana={U}
type=Creature
@@ -41278,12 +41278,12 @@ type=Enchantment
[/card]
[card]
name=Murderous Rider // Swift End
abilities=flash,lifelink,adventure
abilities=lifelink,adventure,asflash
restriction=can play creature
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
autostack=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 name(Destroy creature or planeswalker) name(Destroy creature or planeswalker) target(creature,planeswalker) destroy
auto=if paid(alternative) then name(You loose 2 life) name(You loose 2 life) life:-2 controller
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
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}
@@ -41447,7 +41447,7 @@ toughness=2
[card]
name=Mysterious Pathlighter
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.)
mana={2}{W}
type=Creature
@@ -44448,8 +44448,8 @@ type=Instant
name=Order of Midnight // Alter Fate
abilities=flying,cantblock,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)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=if paid(alternative) then name(Return creature from graveyard) name(Return creature from graveyard) target(creature|mygraveyard) moveto(myhand)
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.)
mana={1}{B}
type=Creature
@@ -48273,8 +48273,8 @@ toughness=3
name=Queen of Ice // Rage of Winter
abilities=adventure
other={1}{U} name(Adventure)
autostack=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 name(Freeze creature) name(Freeze creature) target(creature|battlefield) freeze
auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
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.)
mana={2}{U}
@@ -48490,7 +48490,7 @@ type=Instant
[card]
name=Raff Capashen, Ship's Mage
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.)
mana={2}{W}{U}
type=Legendary Creature
@@ -49461,8 +49461,8 @@ toughness=5
name=Realm-Cloaked Giant // Cast Off
abilities=vigilance,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)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=if paid(alternative) then name(Destroy all non-giants) name(Destroy all non-giants) destroy all(creature[-giant]|battlefield)
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.)
mana={5}{W}{W}
type=Creature
@@ -49513,8 +49513,8 @@ type=Sorcery
name=Reaper of Night // Harvest Fear
abilities=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
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=if paid(alternative) then ability$!name(discard 2 cards) name(discard 2 cards) target(<2>*|myhand) reject!$ opponent
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
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}
@@ -51041,11 +51041,11 @@ subtype=Forest Island
[/card]
[card]
name=Rimrock Knight // Boulder Rush
abilities=cantblock,flash,adventure
abilities=cantblock,adventure,asflash
restriction=can play creature
other={R} name(Adventure)
autostack=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 name(Creature gets 2/0) target(creature|battlefield) 2/0 ueot
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.)
mana={1}{R}
type=Creature
@@ -51900,7 +51900,7 @@ type=Sorcery
[/card]
[card]
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.
mana={2}{U}
type=Creature
@@ -51934,8 +51934,8 @@ toughness=4
name=Rosethorn Acolyte // Seasonal Ritual
abilities=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
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) 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
auto=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto={T}:add{U}
auto={T}:add{B}
auto={T}:add{R}
@@ -55772,11 +55772,11 @@ toughness=3
[/card]
[card]
name=Shepherd of the Flock // Usher to Safety
abilities=flash,adventure
abilities=adventure,asflash
restriction=can play creature
other={W} name(Adventure)
autostack=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 name(Return permanent to hand) name(Return permanent to hand) target(*|myBattlefield) moveTo(ownerhand)
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.)
mana={1}{W}
type=Creature
@@ -56671,11 +56671,11 @@ type=Sorcery
[/card]
[card]
name=Silverflame Squire // On Alert
abilities=flash,adventure
abilities=adventure,asflash
restriction=can play creature
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
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
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
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.)
mana={1}{W}
type=Creature
@@ -58014,9 +58014,9 @@ type=Sorcery
name=Smitten Swordmaster // Curry Favor
abilities=lifelink,adventure
other={B} name(Adventure)
autostack=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
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=if paid(alternative) then name(You gain life) name(You gain life) life:type:knight:mybattlefield controller
auto=if paid(alternative) then name(Opponent looses life) name(Opponent looses life) life:-type:knight:mybattlefield opponent
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.
mana={1}{B}
type=Creature
@@ -67035,8 +67035,8 @@ toughness=3
name=Tuinvale Treefolk // Oaken Boon
abilities=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)
autostack=if paid(alternative) then transforms((,newability[moveto(exile) and!( transforms((,newability[canplayfromexile])) forever )!])) forever
auto=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 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.)
mana={5}{G}
type=Creature
@@ -70605,7 +70605,7 @@ toughness=2
[/card]
[card]
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.)
mana={1}{G}{W}
type=Creature

View File

@@ -2547,7 +2547,7 @@ type=Sorcery
[card]
name=Alchemist's Refuge
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.
type=Land
[/card]
@@ -56562,7 +56562,7 @@ toughness=2
[/card]
[card]
name=Hypersonic Dragon
auto=lord(sorcery|myhand) flash
auto=lord(sorcery|myhand) asflash
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.)
mana={3}{U}{R}
@@ -66526,13 +66526,11 @@ type=Enchantment
[/card]
[card]
name=Leyline of Anticipation
auto=@each beginofturn:all(*[-land]|myhand) flash
auto=@movedto(*|myhand):all(*[-land]|myhand) flash
auto=all(*[-land]|myhand) flash
abilities=leyline
auto=lord(*[-land]|myhand) asflash
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}
type=Enchantment
abilities=leyline
[/card]
[card]
name=Leyline of Lightning
@@ -89067,7 +89065,7 @@ toughness=2
[card]
name=Prophet of Kruphix
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.
mana={3}{G}{U}
type=Creature
@@ -105046,8 +105044,8 @@ toughness=5
[/card]
[card]
name=Sigarda's Aid
auto=lord(Aura|myhand) flash
auto=lord(Equipment|myhand) flash
auto=lord(Aura|myhand) asflash
auto=lord(Equipment|myhand) asflash
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.
mana={W}
@@ -134276,7 +134274,7 @@ type=Sorcery
[card]
name=Winding Canyons
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.
type=Land
[/card]

View File

@@ -2677,7 +2677,7 @@ subtype=Teferi
name=Teferi, Time Raveler
auto=counter(0/0,4,loyalty)
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
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}
@@ -2844,7 +2844,7 @@ type=Legendary Planeswalker
[card]
name=Tibalt, Cosmic Impostor
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,-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) )!
@@ -2950,7 +2950,7 @@ subtype=Vivien
[card]
name=Vivien, Champion of the Wilds
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,-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.

View File

@@ -317,7 +317,8 @@ class Constants
PERPETUALLIFELINK = 190,
PERPETUALDEATHTOUCH = 191,
NONCOMBATVIGOR = 192,
NB_BASIC_ABILITIES = 193,
NOMOVETRIGGER = 193,
NB_BASIC_ABILITIES = 194,
RARITY_S = 'S', //Special Rarity
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.
{
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) ||
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.
if(p->game->hand->hasType("instant") || p->game->hand->hasAbility(Constants::FLASH) || p->game->hand->hasAbility(Constants::ASFLASH) ||
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
findingCard = true;
@@ -3604,22 +3606,22 @@ int AIPlayerBaka::computeActions()
nextCardToPlay = FindCardToPlay(icurrentMana, ""); //Now AI will not search just for instant cards.
bool canPlay = false;
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;
} 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;
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;
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;
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;
} 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;
} else if(nextCardToPlay && p->game->commandzone->hasCard(nextCardToPlay)){
if(nextCardToPlay->has(Constants::FLASH))
if(nextCardToPlay->has(Constants::FLASH) || nextCardToPlay->has(Constants::ASFLASH))
canPlay = true;
}
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)
"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)
"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
"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
"perpetuallifelink", //It gains lifelink 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;

View File

@@ -723,8 +723,19 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone
if(shufflelibrary)
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);
g->receiveEvent(e);
if(copy->has(Constants::ADVENTURE) && copy->alternateCostPaid[ManaCost::MANA_PAID_WITH_ALTERNATIVE] == 1 && //Added to correctly set the adventure cards type.
(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)
if(doCopy && copy->counters && copy->counters->mCount > 0){