Added/fixed primitives, added new keywords "fourtimes", "fivetimes", "thirdpaid", fixed Tavis-CI build.

This commit is contained in:
Vittorio Alfieri
2021-04-21 18:27:33 +02:00
parent abe8b580c8
commit 68a64238cb
3 changed files with 490 additions and 25 deletions

View File

@@ -12,7 +12,8 @@ before_install:
# Only building on Mac when not handling pull request # Only building on Mac when not handling pull request
# - if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then # - if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
# export BUILD_MAC=YES; # export BUILD_MAC=YES;
# - sudo apt-get update -qq # fi
- sudo apt-get update -qq
# Building for PSP here # Building for PSP here
- if [ "$BUILD_PSP" == "YES" ]; then - if [ "$BUILD_PSP" == "YES" ]; then
export PSPDEV="$TRAVIS_BUILD_DIR/opt/pspsdk" && export PSPDEV="$TRAVIS_BUILD_DIR/opt/pspsdk" &&
@@ -22,8 +23,8 @@ before_install:
fi fi
# Building for Qt here # Building for Qt here
- if [ "$BUILD_Qt" == "YES" ]; then - if [ "$BUILD_Qt" == "YES" ]; then
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty universe" && sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu xenial universe" &&
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty main" && sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu xenial main" &&
sudo apt-get -qq update && sudo apt-get -qq update &&
sudo apt-get -qq install qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev qtmultimedia5-dev libqt5opengl5 libqt5opengl5-dev pulseaudio libpulse-dev && sudo apt-get -qq install qt5-qmake qtbase5-dev qtdeclarative5-dev qttools5-dev qtmultimedia5-dev libqt5opengl5 libqt5opengl5-dev pulseaudio libpulse-dev &&
export QMAKE="qmake -qt=qt5"; export QMAKE="qmake -qt=qt5";
@@ -51,7 +52,6 @@ install:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64; export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64;
export PATH=$JAVA_HOME/bin:$PATH; export PATH=$JAVA_HOME/bin:$PATH;
fi fi
- sudo pip install --upgrade pip - sudo pip install --upgrade pip
- sudo pip install setuptools-rust - sudo pip install setuptools-rust
- sudo pip install pyOpenSSL - sudo pip install pyOpenSSL

View File

@@ -157,6 +157,25 @@ power=3
toughness=3 toughness=3
[/card] [/card]
[card] [card]
name=Accomplished Alchemist
auto={T}:name(Add one white) add{W}
auto={T}:name(Add one black) add{B}
auto={T}:name(Add one blue) add{U}
auto={T}:name(Add one green) add{G}
auto={T}:name(Add one red) add{R}
auto={T}:name(Add X white) thisforeach(variable{lifegain}>0) add{W}
auto={T}:name(Add X black) thisforeach(variable{lifegain}>0) add{B}
auto={T}:name(Add X blue) thisforeach(variable{lifegain}>0) add{U}
auto={T}:name(Add X green) thisforeach(variable{lifegain}>0) add{G}
auto={T}:name(Add X red) thisforeach(variable{lifegain}>0) add{R}
text={T}: Add one mana of any color. -- {T}: Add X mana of any one color, where X is the amount of life you gained this turn.
mana={3}{G}
type=Creature
subtype=Elf Druid
power=2
toughness=5
[/card]
[card]
name=Accursed Horde name=Accursed Horde
auto={1}{B}:target(creature[zombie;attacking]) indestructible auto={1}{B}:target(creature[zombie;attacking]) indestructible
text={1}{B}: Target attacking Zombie gains indestructible until end of turn. (Damage and effects that say "destroy" don't destroy it. If its toughness is 0 or less, it's still put into its owner's graveyard.) text={1}{B}: Target attacking Zombie gains indestructible until end of turn. (Damage and effects that say "destroy" don't destroy it. If its toughness is 0 or less, it's still put into its owner's graveyard.)
@@ -602,6 +621,14 @@ text=As Agadeem, the Undercrypt enters the battlefield, you may pay 3 life. If y
type=Land type=Land
[/card] [/card]
[card] [card]
name=Ageless Guardian
mana={1}{W}
type=Creature
subtype=Spirit Soldier
power=1
toughness=4
[/card]
[card]
name=Agent of Treachery name=Agent of Treachery
auto=moveTo(myBattlefield) target(*|opponentBattlefield) auto=moveTo(myBattlefield) target(*|opponentBattlefield)
auto=@each my endofturn:ability$!name(Choose one) choice name(You control 3 or more permanents you don't own) draw:3 controller _ choice name(You don't control 3 or more permanents you don't own) donothing!$ controller auto=@each my endofturn:ability$!name(Choose one) choice name(You control 3 or more permanents you don't own) draw:3 controller _ choice name(You don't control 3 or more permanents you don't own) donothing!$ controller
@@ -4263,6 +4290,17 @@ power=3
toughness=4 toughness=4
[/card] [/card]
[card] [card]
name=Bayou Groff
other={4}{G} name(Pay 3)
restriction=type(creature|mybattlefield)~morethan~0
text=As an additional cost to cast this spell, sacrifice a creature or pay 3 .
mana={1}{G}{S(creature|mybattlefield)}
type=Creature
subtype=Plant Dog
power=5
toughness=4
[/card]
[card]
name=Bazaar Trademage name=Bazaar Trademage
abilities=flying abilities=flying
auto=draw:2 && transforms((,newability[target(<3>*|myhand) reject])) forever auto=draw:2 && transforms((,newability[target(<3>*|myhand) reject])) forever
@@ -4284,6 +4322,14 @@ mana={1}{U}{R}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Beaming Defiance
target=creature|mybattlefield
auto=transforms((,newability[2/2],newability[opponentshroud])) ueot
text=Target creature you control gets +2/+2 and gains hexproof until end of turn. (It can't be the target of spells or abilities your opponents control.)
mana={1}{W}
type=Instant
[/card]
[card]
name=Beamsplitter Mage name=Beamsplitter Mage
auto=@targeted(this) from(*[instant;sorcery]|mycastingzone):all(trigger[from]) castcard(copied noevent) auto=@targeted(this) from(*[instant;sorcery]|mycastingzone):all(trigger[from]) castcard(copied noevent)
text=Whenever you cast an instant or sorcery spell that targets only Beamsplitter Mage, if you control one or more other creatures that spell could target, choose one of those creatures. Copy that spell. The copy targets the chosen creature. text=Whenever you cast an instant or sorcery spell that targets only Beamsplitter Mage, if you control one or more other creatures that spell could target, choose one of those creatures. Copy that spell. The copy targets the chosen creature.
@@ -4735,6 +4781,14 @@ power=1
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Big Play
target=creature
auto=transforms((,newability[2/2],newability[reach],newability[counter(1/1)])) ueot
text=Target creature gets +2/+2 and gains reach until end of turn. Put a +1/+1 counter on it.
mana={1}{G}
type=Instant
[/card]
[card]
name=Bind the Monster name=Bind the Monster
target=creature target=creature
auto=tap(noevent) auto=tap(noevent)
@@ -5393,6 +5447,16 @@ power=3
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Blood Age General
auto={T}:all(spirit[attacking]|battlefield) transforms((,newability[1/0])) ueot
text={T}: Attacking Spirits get +1/+0 until end of turn.
mana={1}{R}
type=Creature
subtype=Spirit Warrior
power=2
toughness=2
[/card]
[card]
name=Blood Aspirant name=Blood Aspirant
auto=@sacrificed(*|mybattlefield):counter(1/1,1) all(this) auto=@sacrificed(*|mybattlefield):counter(1/1,1) all(this)
auto={1}{R}{S(creature,enchantment|myBattlefield}:damage:1 && cantblock target(creature) oneshot ueot auto={1}{R}{S(creature,enchantment|myBattlefield}:damage:1 && cantblock target(creature) oneshot ueot
@@ -9443,6 +9507,16 @@ power=2
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Clever Lumimancer
auto=@movedto(*[instant;sorcery]|mystack):2/2 ueot
text=Magecraft — Whenever you cast or copy an instant or sorcery spell, Clever Lumimancer gets +2/+2 until end of turn.
mana={W}
type=Creature
subtype=Human Wizard
power=0
toughness=1
[/card]
[card]
name=Cliffhaven Kitesail name=Cliffhaven Kitesail
auto=rehook target(creature|myBattlefield) auto=rehook target(creature|myBattlefield)
auto=teach(creature) flying auto=teach(creature) flying
@@ -9902,6 +9976,17 @@ power=4
toughness=1 toughness=1
[/card] [/card]
[card] [card]
name=Combat Professor
abilities=flying
auto=@each my combatbegins:name(Creature gets 1/0 and vigilance) target(creature|mybattlefield) transforms((,newability[1/0],newability[vigilance])) ueot
text=Flying -- At the beginning of combat on your turn, target creature you control gets +1/+0 and gains vigilance until end of turn.
mana={3}{W}
type=Creature
subtype=Bird Cleric
power=2
toughness=3
[/card]
[card]
name=Combine Guildmage name=Combine Guildmage
auto={1}{G}{T}:name(1/1 counters) emblem transforms((,newability[@movedto(creature|myBattlefield):all(trigger[to]) counter(1/1)])) ueot auto={1}{G}{T}:name(1/1 counters) emblem transforms((,newability[@movedto(creature|myBattlefield):all(trigger[to]) counter(1/1)])) ueot
auto={1}{U}{T}{C(1/1,-1),*|mybattlefield}:name(move a 1/1 counter) counter(1/1) target(creature) auto={1}{U}{T}{C(1/1,-1),*|mybattlefield}:name(move a 1/1 counter) counter(1/1) target(creature)
@@ -10808,11 +10893,17 @@ mana={4}{B}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Crackle with Power
auto=target(<thirdpaid>player,creature,planeswalker) damage:fivetimesthirdpaid
text=Crackle with Power deals five times X damage to each of up to X targets.
mana={X}{X}{X}{R}{R}
type=Sorcery
[/card]
[card]
name=Crackling Drake name=Crackling Drake
abilities=flying abilities=flying
auto=draw:1 auto=draw:1
anyzone=pginstantsorcery/4 cdaactive anyzone=type:*[instant;sorcery]:mygraveyardplustype:*[instant;sorcery]:myexileplusend/4 cdaactive
#anyzone=peinstantsorcery/4 cdaactive
text=Flying -- Crackling Drake's power is equal to the total number of instant and sorcery cards you own in exile and in your graveyard. -- When Crackling Drake enters the battlefield, draw a card. text=Flying -- Crackling Drake's power is equal to the total number of instant and sorcery cards you own in exile and in your graveyard. -- When Crackling Drake enters the battlefield, draw a card.
mana={U}{U}{R}{R} mana={U}{U}{R}{R}
type=Creature type=Creature
@@ -11673,6 +11764,17 @@ power=3
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Daemogoth Woe-Eater
auto=@each my upkeep:ability$!name(Sacrifice a creature) name(Sacrifice a creature) target(creature|mybattlefield) sacrifice!$ controller
auto=@sacrificed(this):life:2 controller && draw:1 controller && ability$!name(Discard a card) name(Discard a card) notatarget(*|myhand) reject!$ opponent
text=At the beginning of your upkeep, sacrifice a creature. -- When you sacrifice Daemogoth Woe-Eater, each opponent discards a card, you draw a card, and you gain 2 life.
mana={1}{B}{BG}{G}
type=Creature
subtype=Demon
power=7
toughness=6
[/card]
[card]
name=Dagger Caster name=Dagger Caster
auto=damage:1 opponent auto=damage:1 opponent
auto=damage:1 all(creature|opponentBattlefield) auto=damage:1 all(creature|opponentBattlefield)
@@ -12249,6 +12351,14 @@ mana={B}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Deadly Brew
auto=ability$!name(Sacrifice creature or planeswalker) name(Sacrifice creature or planeswalker) target(*[creature;planeswalker]|mybattlefield) transforms((,newability[sacrifice],newability[may name(Return permanent) target(other *[-instant;-sorcery]|mygraveyard) moveto(myhand)])) oneshot!$ controller
auto=ability$!name(Sacrifice creature or planeswalker) name(Sacrifice creature or planeswalker) target(*[creature;planeswalker]|mybattlefield) transforms((,newability[sacrifice],newability[may name(Return permanent) target(other *[-instant;-sorcery]|mygraveyard) moveto(myhand)])) oneshot!$ opponent
text=Each player sacrifices a creature or planeswalker. If you sacrificed a permanent this way, you may return another permanent card from your graveyard to your hand.
mana={B}{G}
type=Sorcery
[/card]
[card]
name=Deadly Rollick name=Deadly Rollick
target=creature target=creature
auto=moveTo(exile) auto=moveTo(exile)
@@ -12560,6 +12670,14 @@ mana={R}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Defend the Campus
auto=choice name(Creatures get 1/1) all(creature|mybattlefield) transforms((,newability[1/1])) ueot
auto=if type(creature[power>=4]|battlefield)~morethan~0 then choice name(Destroy creature) name(Destroy creature) target(creature[power>=4]|battlefield) destroy
text=Choose one — -- • Creatures you control get +1/+1 until end of turn. -- • Destroy target creature with power 4 or greater.
mana={3}{W}
type=Instant
[/card]
[card]
name=Defense Grid name=Defense Grid
auto=restriction{during my turn}: lord(*|nonbattlezone) altercost(colorless,+3) opponent auto=restriction{during my turn}: lord(*|nonbattlezone) altercost(colorless,+3) opponent
auto=restriction{during opponent turn}: lord(*|nonbattlezone) altercost(colorless,+3) controller auto=restriction{during opponent turn}: lord(*|nonbattlezone) altercost(colorless,+3) controller
@@ -15189,6 +15307,17 @@ mana={W}{W}{B}{B}{B}{G}{G}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Efreet Flamepainter
abilities=double strike
auto=@combatdamaged(player) from(this):may name(Cast instant or sorcery) target(*[instant;sorcery]|myhand) transforms((,newability[gainedexiledeath],newability[activate castcard(normal)])) oneshot
text=Double strike -- Whenever Efreet Flamepainter deals combat damage to a player, you may cast target instant or sorcery card from your graveyard without paying its mana cost. If that spell would be put into your graveyard, exile it instead.
mana={3}{R}
type=Creature
subtype=Efreet Shaman
power=1
toughness=4
[/card]
[card]
name=Egon, God of Death name=Egon, God of Death
abilities=deathtouch abilities=deathtouch
other={B} name(Throne of Death) other={B} name(Throne of Death)
@@ -16214,6 +16343,15 @@ type=Enchantment
subtype=Aura subtype=Aura
[/card] [/card]
[card] [card]
name=Enthusiastic Study
target=creature
auto=transforms((,newability[3/1],newability[trample])) ueot
auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[choice name(Don't learn) donothing])) oneshot
text=Target creature gets +3/+1 and gains trample until end of turn. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.)
mana={2}{R}
type=Instant
[/card]
[card]
name=Entourage of Trest name=Entourage of Trest
auto=becomesmonarch controller auto=becomesmonarch controller
text=When Entourage of Trest enters the battlefield, you become the monarch. -- Entourage of Trest can block an additional creature each combat as long as you're the monarch. text=When Entourage of Trest enters the battlefield, you become the monarch. -- Entourage of Trest can block an additional creature each combat as long as you're the monarch.
@@ -16265,6 +16403,15 @@ mana={X}{X}{B}{B}{B}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Environmental Sciences
auto=life:2 controller
auto=name(Search land) target(land[basic]|mylibrary) moveto(myhand) and!( shuffle )!
text=Search your library for a basic land card, reveal it, put it into your hand, then shuffle. You gain 2 life.
mana={2}
type=Sorcery
subtype=Lesson
[/card]
[card]
name=Eon Frolicker name=Eon Frolicker
abilities=flying abilities=flying
auto=if casted(this) then turns:+1 opponent && protection from(*) uynt && all(planeswalker|myBattlefield) protection from(*) uynt auto=if casted(this) then turns:+1 opponent && protection from(*) uynt && all(planeswalker|myBattlefield) protection from(*) uynt
@@ -16940,6 +17087,15 @@ text={T}: Add one mana of any color that a land an opponent controls could produ
type=Land type=Land
[/card] [/card]
[card] [card]
name=Expanded Anatomy
target=creature
auto=transforms((,newability[vigilance],newability[counter(1/1.2)])) ueot
text=Put two +1/+1 counters on target creature. It gains vigilance until end of turn.
mana={3}
type=Sorcery
subtype=Lesson
[/card]
[card]
name=Expansion // Explosion name=Expansion // Explosion
other={X}{U}{U}{R}{R} name(Explosion) other={X}{U}{U}{R}{R} name(Explosion)
auto=if paid(alternative) then choice name(Damage any target and you draw) damage:X target(player,creature,planeswalker) && draw:X controller auto=if paid(alternative) then choice name(Damage any target and you draw) damage:X target(player,creature,planeswalker) && draw:X controller
@@ -17038,6 +17194,16 @@ mana={5}{R}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Explosive Welcome
target=player,creature,planeswalker
auto=damage:5
auto=target(player,creature,planeswalker) damage:3
auto=add{R}{R}{R}
text=Explosive Welcome deals 5 damage to any target and 3 damage to any other target. Add {R}{R}{R}.
mana={7}{R}
type=Instant
[/card]
[card]
name=Expose to Daylight name=Expose to Daylight
target=artifact,enchantment target=artifact,enchantment
auto=destroy auto=destroy
@@ -17141,6 +17307,17 @@ mana={2}{U}
type=Enchantment type=Enchantment
[/card] [/card]
[card] [card]
name=Eyetwitch
abilities=flying
auto=@movedto(this|graveyard) from(mybattlefield):name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[choice name(Don't learn) donothing])) oneshot
text=Flying -- When Eyetwitch dies, learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.)
mana={B}
type=Creature
subtype=Eye Bat
power=1
toughness=1
[/card]
[card]
name=Ezuri's Predation name=Ezuri's Predation
auto=foreach(creature|opponentBattlefield) token(Beast,Creature Beast,4/4,green) and!( transforms((,newability[moveTo(this|myBattlefield) damage:dynamicability<!powerstrike!> target(other creature|opponentBattlefield])) forever )! controller auto=foreach(creature|opponentBattlefield) token(Beast,Creature Beast,4/4,green) and!( transforms((,newability[moveTo(this|myBattlefield) damage:dynamicability<!powerstrike!> target(other creature|opponentBattlefield])) forever )! controller
text=For each creature your opponents control, create a 4/4 green Beast creature token. Each of those Beasts fights a different one of those creatures. text=For each creature your opponents control, create a 4/4 green Beast creature token. Each of those Beasts fights a different one of those creatures.
@@ -18006,6 +18183,16 @@ power=1
toughness=1 toughness=1
[/card] [/card]
[card] [card]
name=Fervent Mastery
other={2}{R}{R} name(Cast for 1 less)
aicode=activate transforms((,newability[target(<3>*|mylibrary) moveto(myhand) and!( discard:1 controller )!])) oneshot
auto=name(Search up to 3 cards) reveal:plibrarycount optionone name(Choose up to 3 cards) target(<upto:3>*|reveal) moveto(myhand) optiononeend optiontwo name(Put back) all(*|reveal) moveto(ownerlibrary) and!( shuffle )! optiontwoend afterrevealed thisforeach(variable{3}) discard:1 controller afterrevealedend revealend
auto=if paid(alternative) then ability$!name(Discard and draw) name(Discard and draw) target(<anyamount>*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot!$ opponent
text=You may pay {2}{R}{R} rather than pay this spell's mana cost. -- If the {2}{R}{R} cost was paid, an opponent discards any number of cards, then draws that many cards. -- Search your library for up to three cards, put them into your hand, shuffle, then discard three cards at random.
mana={3}{R}{R}
type=Sorcery
[/card]
[card]
name=Fervent Paincaster name=Fervent Paincaster
auto={T}:damage:1 target(player) auto={T}:damage:1 target(player)
auto=@exerted(this):damage:1 target(creature) auto=@exerted(this):damage:1 target(creature)
@@ -18828,10 +19015,10 @@ toughness=2
[card] [card]
name=Flame Spill name=Flame Spill
target=creature target=creature
auto=this(toughness=1) damage:1 && damage:3 targetController auto=transforms((,newability[this(toughness=1) damage:1 && damage:3 targetController])) oneshot
auto=this(toughness=2) damage:2 && damage:2 targetController auto=transforms((,newability[auto=this(toughness=2) damage:2 && damage:2 targetController])) oneshot
auto=this(toughness=3) damage:3 && damage:1 targetController auto=transforms((,newability[auto=this(toughness=3) damage:3 && damage:1 targetController])) oneshot
auto=this(toughness>=4) damage:4 auto=transforms((,newability[auto=this(toughness>=4) damage:4])) oneshot
text=Flame Spill deals 4 damage to target creature. Excess damage is dealt to that creature's controller instead. text=Flame Spill deals 4 damage to target creature. Excess damage is dealt to that creature's controller instead.
mana={2}{R} mana={2}{R}
type=Instant type=Instant
@@ -19867,6 +20054,16 @@ mana={2}{G}
type=Instant type=Instant
[/card] [/card]
[card] [card]
name=Fuming Effigy
auto=@movedto(*|mybattlefield,mystack,myhand,mylibrary,mysideboard,myexile,mycommandzone) from(mygraveyard):name(Deals 1 damage) damage:1 opponent
text=Whenever one or more cards leave your graveyard, Fuming Effigy deals 1 damage to each opponent.
mana={3}{R}
type=Creature
subtype=Spirit
power=4
toughness=3
[/card]
[card]
name=Funeral Longboat name=Funeral Longboat
abilities=vigilance abilities=vigilance
auto={crew(other creature[power>=1]|myBattlefield)}:name(crew 1 [1 creature]) becomes(Artifact Creature) ueot restriction{type(other creature[-tapped;power>=1]|mybattlefield)~morethan~0,compare(crewtotalpower)~morethan~0} auto={crew(other creature[power>=1]|myBattlefield)}:name(crew 1 [1 creature]) becomes(Artifact Creature) ueot restriction{type(other creature[-tapped;power>=1]|mybattlefield)~morethan~0,compare(crewtotalpower)~morethan~0}
@@ -23624,6 +23821,17 @@ power=2
toughness=3 toughness=3
[/card] [/card]
[card] [card]
name=Hall Monitor
abilities=haste
auto={1}{R}{T}:name(Creature can't block) target(creature) transforms((,newability[cantblock])) ueot
text=Haste -- {1}{R}, {T}: Target creature can't block this turn.
mana={R}
type=Creature
subtype=Lizard Shaman
power=1
toughness=1
[/card]
[card]
name=Hall of Heliod's Generosity name=Hall of Heliod's Generosity
auto={T}:add{C} auto={T}:add{C}
auto={1}{W}{T}:moveTo(mylibrary) target(enchantment|mygraveyard) auto={1}{W}{T}:moveTo(mylibrary) target(enchantment|mygraveyard)
@@ -24361,6 +24569,15 @@ mana={2}{R}
type=Enchantment type=Enchantment
[/card] [/card]
[card] [card]
name=Heated Debate
abilities=nofizzle
target=creature,planeswalker
auto=damage:4
text=This spell can't be countered. (This includes by the ward ability.) -- Heated Debate deals 4 damage to target creature or planeswalker.
mana={2}{R}
type=Instant
[/card]
[card]
name=Heaven // Earth name=Heaven // Earth
auto=damage:X all(creature[flying]) auto=damage:X all(creature[flying])
autograveyard={X}{R}{R}{E}:damage:X all(creature[-flying]) asSorcery autograveyard={X}{R}{R}{E}:damage:X all(creature[-flying]) asSorcery
@@ -25620,9 +25837,7 @@ type=Sorcery
[card] [card]
name=Hunt for Specimens name=Hunt for Specimens
auto=token(Pest,Creature Pest,1/1,green,blue) and!( transforms((,newability[@movedto(this|mygraveyard) from(battlefield):life:1 controller])) forever )! auto=token(Pest,Creature Pest,1/1,green,blue) and!( transforms((,newability[@movedto(this|mygraveyard) from(battlefield):life:1 controller])) forever )!
auto=if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand) auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[choice name(Don't learn) donothing])) oneshot
auto=if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!
auto=choice name(Don't learn) donothing
text=Create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life." -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.) text=Create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life." -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.)
mana={1}{B} mana={1}{B}
type=Sorcery type=Sorcery
@@ -25981,6 +26196,15 @@ power=4
toughness=3 toughness=3
[/card] [/card]
[card] [card]
name=Igneous Inspiration
target=player,creature,planeswalker
auto=damage:3
auto=name(Learn) transforms((,newability[if type(*[lesson]|mysideboard)~morethan~0 then choice name(Put lesson in hand) name(Put lesson in hand) target(*[lesson]|mysideboard) moveto(myhand)],newability[if type(*|myhand)~morethan~0 then choice name(Discard and draw) name(Discard and draw) target(*|myhand) reject and!(draw:1)!],newability[choice name(Don't learn) donothing])) oneshot
text=Igneous Inspiration deals 3 damage to any target. -- Learn. (You may reveal a Lesson card you own from outside the game and put it into your hand, or discard a card to draw a card.)
mana={2}{R}
type=Sorcery
[/card]
[card]
name=Ignite Disorder name=Ignite Disorder
auto=thisforeach(variable{3}) ability$!name(Deal 1 damage) name(Deal 1 damage) target(creature[white;blue]) damage:1!$ controller auto=thisforeach(variable{3}) ability$!name(Deal 1 damage) name(Deal 1 damage) target(creature[white;blue]) damage:1!$ controller
text=Ignite Disorder deals 3 damage divided as you choose among one, two, or three target white and/or blue creatures. text=Ignite Disorder deals 3 damage divided as you choose among one, two, or three target white and/or blue creatures.
@@ -26050,6 +26274,30 @@ mana={X}{R}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Illuminate History
auto=if type(*|mygraveyard)~morethan~5 then choice name(Discard 0 cards) name(Discard 0 cards) token(Spirit^Creature Spirit^3/2^red^white)
auto=if type(*|mygraveyard)~lessthan~6 then choice name(Discard 0 cards) name(Discard 0 cards) donothing
auto=if type(*|myhand)~morethan~0 then if type(*|mygraveyard)~morethan~4 then choice name(Discard 1 card) name(Discard 1 card) name(Discard 1 card) target(*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot && token(Spirit^Creature Spirit^3/2^red^white)
auto=if type(*|myhand)~morethan~0 then if type(*|mygraveyard)~lessthan~5 then choice name(Discard 1 card) name(Discard 1 card) name(Discard 1 card) target(*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot
auto=if type(*|myhand)~morethan~1 then if type(*|mygraveyard)~morethan~3 then choice name(Discard 2 cards) name(Discard 2 cards) name(Discard 2 cards) target(<2>*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot && token(Spirit^Creature Spirit^3/2^red^white)
auto=if type(*|myhand)~morethan~1 then if type(*|mygraveyard)~lessthan~4 then choice name(Discard 2 cards) name(Discard 2 cards) name(Discard 2 cards) target(<2>*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot
auto=if type(*|myhand)~morethan~2 then if type(*|mygraveyard)~morethan~2 then choice name(Discard 3 cards) name(Discard 3 cards) name(Discard 3 cards) target(<3>*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot && token(Spirit^Creature Spirit^3/2^red^white)
auto=if type(*|myhand)~morethan~2 then if type(*|mygraveyard)~lessthan~3 then choice name(Discard 3 cards) name(Discard 3 cards) name(Discard 3 cards) target(<3>*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot
auto=if type(*|myhand)~morethan~3 then if type(*|mygraveyard)~morethan~1 then choice name(Discard 4 cards) name(Discard 4 cards) name(Discard 4 cards) target(<4>*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot && token(Spirit^Creature Spirit^3/2^red^white)
auto=if type(*|myhand)~morethan~3 then if type(*|mygraveyard)~lessthan~2 then choice name(Discard 4 cards) name(Discard 4 cards) name(Discard 4 cards) target(<4>*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot
auto=if type(*|myhand)~morethan~4 then if type(*|mygraveyard)~morethan~0 then choice name(Discard 5 cards) name(Discard 5 cards) name(Discard 5 cards) target(<5>*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot && token(Spirit^Creature Spirit^3/2^red^white)
auto=if type(*|myhand)~morethan~4 then if type(*|mygraveyard)~lessthan~1 then choice name(Discard 5 cards) name(Discard 5 cards) name(Discard 5 cards) target(<5>*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot
auto=if type(*|myhand)~morethan~5 then choice name(Discard 6 cards) name(Discard 6 cards) target(<6>*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot && token(Spirit^Creature Spirit^3/2^red^white)
auto=if type(*|myhand)~morethan~6 then choice name(Discard 7 cards) name(Discard 7 cards) target(<7>*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot && token(Spirit^Creature Spirit^3/2^red^white)
auto=if type(*|myhand)~morethan~7 then choice name(Discard 8 cards) name(Discard 8 cards) target(<8>*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot && token(Spirit^Creature Spirit^3/2^red^white)
auto=if type(*|myhand)~morethan~8 then choice name(Discard 9 cards) name(Discard 9 cards) target(<9>*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot && token(Spirit^Creature Spirit^3/2^red^white)
auto=if type(*|myhand)~morethan~9 then choice name(Discard 10 cards) name(Discard 10 cards) target(<10>*|myhand) transforms((,newability[reject],newability[draw:1])) oneshot && token(Spirit^Creature Spirit^3/2^red^white)
text=Discard any number of cards, then draw that many cards. Then if there are seven or more cards in your graveyard, create a 3/2 red and white Spirit creature token.
mana={2}{R}{R}
type=Sorcery
subtype=Lesson
[/card]
[card]
name=Illuminated Folio name=Illuminated Folio
auto=this(variable{type:*[blue]:myhand}>1) {1}{T}:draw:1 controller auto=this(variable{type:*[blue]:myhand}>1) {1}{T}:draw:1 controller
auto=this(variable{type:*[red]:myhand}>1) {1}{T}:draw:1 controller auto=this(variable{type:*[red]:myhand}>1) {1}{T}:draw:1 controller
@@ -26120,6 +26368,16 @@ type=Enchantment
subtype=Aura subtype=Aura
[/card] [/card]
[card] [card]
name=Illustrious Historian
autograveyard={5}{E}:token(Spirit,Creature Spirit,3/2,red,white) and!( tap(noevent) )!
text={5}, Exile Illustrious Historian from your graveyard: Create a tapped 3/2 red and white Spirit creature token.
mana={1}{R}
type=Creature
subtype=Human Shaman
power=2
toughness=1
[/card]
[card]
name=Ilysian Caryatid name=Ilysian Caryatid
auto={T} restriction{type(creature[power>=4]|myhand)~morethan~0}:add{G}{G} auto={T} restriction{type(creature[power>=4]|myhand)~morethan~0}:add{G}{G}
auto={T} restriction{type(creature[power>=4]|myhand)~morethan~0}:add{W}{W} auto={T} restriction{type(creature[power>=4]|myhand)~morethan~0}:add{W}{W}
@@ -27330,6 +27588,24 @@ mana={3}{G}
type=Enchantment type=Enchantment
[/card] [/card]
[card] [card]
name=Introduction to Annihilation
target=*[-land]|battlefield
auto=moveto(exile) and!( transforms((,newability[draw:1 controller])) oneshot )!
text=Exile target nonland permanent. Its controller draws a card.
mana={5}
type=Sorcery
subtype=Lesson
[/card]
[card]
name=Introduction to Prophecy
aicode=activate transforms((,newability[draw:1 controller])) oneshot
auto=scry:2 scrycore delayed draw:1 controller scrycoreend scryend
text=Scry 2, then draw a card.
mana={3}
type=Sorcery
subtype=Lesson
[/card]
[card]
name=Intrusive Packbeast name=Intrusive Packbeast
abilities=vigilance abilities=vigilance
auto=tap <upto:2>target(creature|opponentBattlefield) auto=tap <upto:2>target(creature|opponentBattlefield)
@@ -31971,6 +32247,48 @@ power=2
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Lorehold Apprentice
auto=@movedto(*[instant;sorcery]|mystack):all(spirit|mybattlefield) transforms((,newability[{T}:name(Damage opponent) damage:1 opponent])) ueot
text=Magecraft — Whenever you cast or copy an instant or sorcery spell, until end of turn, Spirit creatures you control gain " {T}: This creature deals 1 damage to each opponent."
mana={R}{W}
type=Creature
subtype=Human Cleric
power=2
toughness=2
[/card]
[card]
name=Lorehold Command
auto=choice name(Create Spirit and give 1/0 to creatures) token(Spirit,Creature Spirit,3/2,white,red) && all(creature|mybattlefield) transforms((,newability[1/0],newability[haste],newability[indestructible])) ueot
auto=choice name(Create Spirit and deal 3 damage) token(Spirit,Creature Spirit,3/2,white,red) && target(player,creature,planeswalker) damage:3 && ability$!name(Target player gains 3 life) name(Target player gains 3 life) life:3 target(player)!$ controller
auto=choice name(Create Spirit and sacrifice permanent) token(Spirit,Creature Spirit,3/2,white,red) && ability$!name(Sacrifice a permanent) name(Sacrifice a permanent) target(*|mybattlefield) sacrifice and!( draw:2 controller )! !$ controller
auto=choice name(Give 1/0 to creatures and deal 3 damage) all(creature|mybattlefield) transforms((,newability[1/0],newability[haste],newability[indestructible])) ueot && target(player,creature,planeswalker) damage:3 && ability$!name(Target player gains 3 life) name(Target player gains 3 life) life:3 target(player)!$ controller
auto=choice name(Give 1/0 to creatures and sacrifice permanent) all(creature|mybattlefield) transforms((,newability[1/0],newability[haste],newability[indestructible])) ueot && ability$!name(Sacrifice a permanent) name(Sacrifice a permanent) target(*|mybattlefield) sacrifice and!( draw:2 controller )! !$ controller
auto=choice name(Deal 3 damage and sacrifice permanent) target(player,creature,planeswalker) damage:3 && ability$!name(Target player gains 3 life) name(Target player gains 3 life) life:3 target(player)!$ controller && ability$!name(Sacrifice a permanent) name(Sacrifice a permanent) name(Sacrifice a permanent) target(*|mybattlefield) transforms((,newability[sacrifice],newability[draw:2 controller])) oneshot !$ controller
text=Choose two — -- • Create a 3/2 red and white Spirit creature token. -- • Creatures you control get +1/+0 and gain indestructible and haste until end of turn. -- • Lorehold Command deals 3 damage to any target. Target player gains 3 life. -- • Sacrifice a permanent, then draw two cards.
mana={3}{R}{W}
type=Instant
[/card]
[card]
name=Lorehold Excavation
auto=@each my end restriction{type(land[zpos=1]|mylibrary)~morethan~0}:deplete:1 controller && life:1 controller
auto=@each my end restriction{type(land[zpos=1]|mylibrary)~equalto~0}:deplete:1 controller && damage:1 opponent
auto={5}{E(creature|mygraveyard)}:token(Spirit,Creature Spirit,3/2,red,white) and!( tap(noevent) )!
text=At the beginning of your end step, mill a card. If a land card was milled this way, you gain 1 life. Otherwise, Lorehold Excavation deals 1 damage to each opponent. (To mill a card, put the top card of your library into your graveyard.) -- {5}, Exile a creature card from your graveyard: Create a tapped 3/2 red and white Spirit creature token.
mana={R}{W}
type=Enchantment
[/card]
[card]
name=Lorehold Pledgemage
abilities=first strike
auto=@movedto(*[instant;sorcery]|mystack):1/0 ueot
text=First strike -- Magecraft — Whenever you cast or copy an instant or sorcery spell, Lorehold Pledgemage gets +1/+0 until end of turn.
mana={1}{RW}{RW}
type=Creature
subtype=Kor Shaman
power=2
toughness=2
[/card]
[card]
name=Losheel, Clockwork Scholar name=Losheel, Clockwork Scholar
auto=preventAllCombatDamage to(artifact[attacking]|myBattlefield) auto=preventAllCombatDamage to(artifact[attacking]|myBattlefield)
auto=@movedto(artifact[creature]|myBattlefield) restriction{type(artifact[fresh;creature]|mybattlefield)~equalto~1}:draw:1 controller auto=@movedto(artifact[creature]|myBattlefield) restriction{type(artifact[fresh;creature]|mybattlefield)~equalto~1}:draw:1 controller
@@ -32623,6 +32941,14 @@ power=*
toughness=* toughness=*
[/card] [/card]
[card] [card]
name=Make Your Mark
target=creature
auto=transforms((,newability[1/0],newability[@movedto(this|graveyard) from(mybattlefield):name(Create spirit) token(Spirit^Creature Spirit^3/2^red^white)])) ueot
text=Target creature gets +1/+0 until end of turn. When that creature dies this turn, create a 3/2 red and white Spirit creature token.
mana={RW}
type=Instant
[/card]
[card]
name=Makeshift Battalion name=Makeshift Battalion
auto=@combat(attacking) source(this) restriction{type(other creature[attacking]|myBattlefield)~morethan~1}:counter(1/1) auto=@combat(attacking) source(this) restriction{type(other creature[attacking]|myBattlefield)~morethan~1}:counter(1/1)
text=Whenever Makeshift Battalion and at least two other creatures attack, put a +1/+1 counter on Makeshift Battalion. text=Whenever Makeshift Battalion and at least two other creatures attack, put a +1/+1 counter on Makeshift Battalion.
@@ -32864,6 +33190,16 @@ power=2
toughness=2 toughness=2
[/card] [/card]
[card] [card]
name=Manifestation Sage
auto=token(Fractal,Creature Fractal,0/0,green,blue) and!( counter(1/1.phandcount) )!
text=When Manifestation Sage enters the battlefield, create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it, where X is the number of cards in your hand.
mana={GU}{GU}{GU}{GU}
type=Creature
subtype=Human Wizard
power=2
toughness=2
[/card]
[card]
name=Manifold Key name=Manifold Key
auto={1}{T}:untap target(other artifact) auto={1}{T}:untap target(other artifact)
auto={3}{T}:unblockable target(creature) ueot auto={3}{T}:unblockable target(creature) ueot
@@ -33222,6 +33558,27 @@ power=1
toughness=1 toughness=1
[/card] [/card]
[card] [card]
name=Mascot Exhibition
auto=token(Inkling,Creature Inkling,2/1,white,black,flying)
auto=token(Spirit,Creature Spirit,3/2,red,white)
auto=token(Elemental,Creature Elemental,4/4,blue,red)
text=Create a 2/1 white and black Inkling creature token with flying, a 3/2 red and white Spirit creature token, and a 4/4 blue and red Elemental creature token.
mana={7}
type=Sorcery
subtype=Lesson
[/card]
[card]
name=Mascot Interception
other={R} name(Target token creature)
otherrestriction=type(creature[token]|battlefield)~morethan~0
restriction=type(creature[-token]|battlefield)~morethan~0
auto=if paid(alternative) then name(Gain control of creature) name(Gain control of creature) target(creature[token]|battlefield) moveto(mybattlefield) and!( transforms((,newability[untap],newability[2/0],newability[haste],newability[phaseaction[endofturn sourceinplay] moveTo(ownerbattlefield)])) ueot )!
auto=ifnot paid(alternative) then name(Gain control of creature) name(Gain control of creature) target(creature[-token]|battlefield) moveto(mybattlefield) and!( transforms((,newability[untap],newability[2/0],newability[haste],newability[phaseaction[endofturn sourceinplay] moveTo(ownerbattlefield)])) ueot )!
text=This spell costs {3} less to cast if it targets a creature token. -- Gain control of target creature until end of turn. Untap that creature. It gets +2/+0 and gains haste until end of turn.
mana={3}{R}
type=Sorcery
[/card]
[card]
name=Mask Est name=Mask Est
abilities=totemarmor abilities=totemarmor
target=* target=*
@@ -34489,6 +34846,16 @@ power=6
toughness=6 toughness=6
[/card] [/card]
[card] [card]
name=Moldering Karok
abilities=trample,lifelink
text=Trample, lifelink
mana={2}{B}{G}
type=Creature
subtype=Zombie Crocodile
power=3
toughness=3
[/card]
[card]
name=Moldervine Reclamation name=Moldervine Reclamation
auto=@movedTo(creature|mygraveyard) from(battlefield):life:1 && draw:1 auto=@movedTo(creature|mygraveyard) from(battlefield):life:1 && draw:1
text=Whenever a creature you control dies, you gain 1 life and draw a card. text=Whenever a creature you control dies, you gain 1 life and draw a card.
@@ -34699,6 +35066,17 @@ text=Morphic Pool enters the battlefield tapped unless you have two or more oppo
type=Land type=Land
[/card] [/card]
[card] [card]
name=Mortality Spear
target=*[-land]|battlefield
other={B}{G} name(Life gained)
otherrestriction=compare(lifegain)~morethan~0
restriction=compare(lifegain)~equalto~0
auto=destroy
text=This spell costs {2} less to cast if you gained life this turn. -- Destroy target nonland permanent.
mana={2}{B}{G}
type=Instant
[/card]
[card]
name=Moss Viper name=Moss Viper
abilities=deathtouch abilities=deathtouch
text=Deathtouch text=Deathtouch
@@ -39254,6 +39632,18 @@ mana={1}{G}
type=Instant type=Instant
[/card] [/card]
[card] [card]
name=Pigment Storm
target=creature
auto=transforms((,newability[this(toughness=1) damage:1 && damage:4 targetController])) oneshot
auto=transforms((,newability[auto=this(toughness=2) damage:2 && damage:3 targetController])) oneshot
auto=transforms((,newability[auto=this(toughness=3) damage:3 && damage:2 targetController])) oneshot
auto=transforms((,newability[auto=this(toughness=4) damage:4 && damage:1 targetController])) oneshot
auto=transforms((,newability[auto=this(toughness>=5) damage:5])) oneshot
text=Pigment Storm deals 5 damage to target creature. Excess damage is dealt to that creature's controller instead.
mana={3}{R}{R}
type=Sorcery
[/card]
[card]
name=Pilfering Hawk name=Pilfering Hawk
abilities=flying abilities=flying
auto={i}{T}:draw:1 && transforms((,newability[target(*|myhand) reject])) forever auto={i}{T}:draw:1 && transforms((,newability[target(*|myhand) reject])) forever
@@ -39293,6 +39683,17 @@ text={T}: Add one mana of any color to your mana pool. Spend this mana only to c
type=Land type=Land
[/card] [/card]
[card] [card]
name=Pillardrop Warden
abilities=reach
auto={2}{T}{S}:name(Return instant or sorcery) target(*[instant;sorcery]|mygraveyard) moveto(myhand) asSorcery
text=Reach -- {2}, {T}, Sacrifice Pillardrop Warden: Return target instant or sorcery card from your graveyard to your hand. Activate only as a sorcery.
mana={3}{R}
type=Creature
subtype=Spirit Dwarf
power=1
toughness=5
[/card]
[card]
name=Pillarverge Pathway name=Pillarverge Pathway
auto={T}:add{W} auto={T}:add{W}
text={T}: Add {W}. text={T}: Add {W}.
@@ -52472,6 +52873,15 @@ mana={1}{B}
type=Instant type=Instant
[/card] [/card]
[card] [card]
name=Sudden Breakthrough
target=creature
auto=transforms((,newability[2/0],newability[first strike])) ueot
auto=token(Treasure Sur)
text=Target creature gets +2/+0 and gains first strike until end of turn. -- Create a Treasure token. (It's an artifact with " {T}, Sacrifice this artifact: Add one mana of any color.")
mana={1}{R}
type=Instant
[/card]
[card]
name=Sudden Demise name=Sudden Demise
auto=chooseacolor damage:X all (creature[chosencolor]|battlefield) chooseend auto=chooseacolor damage:X all (creature[chosencolor]|battlefield) chooseend
text=Choose a color. Sudden Demise deals X damage to each creature of the chosen color. text=Choose a color. Sudden Demise deals X damage to each creature of the chosen color.
@@ -56128,17 +56538,6 @@ power=3
toughness=3 toughness=3
[/card] [/card]
[card] [card]
name=Tome Raider
abilities=flying
auto=draw:1
text=Flying -- When Tome Raider enters the battlefield, draw a card.
mana={2}{U}
type=Creature
subtype=Faerie
power=1
toughness=1
[/card]
[card]
name=Tome of Legends name=Tome of Legends
auto=counter(0/0,1,Page) all(this) auto=counter(0/0,1,Page) all(this)
auto=@movedto(*[iscommander]|myBattlefield):conunter(0/0,1,Page) all(this) auto=@movedto(*[iscommander]|myBattlefield):conunter(0/0,1,Page) all(this)
@@ -56161,6 +56560,28 @@ mana={5}
type=Artifact type=Artifact
[/card] [/card]
[card] [card]
name=Tome Raider
abilities=flying
auto=draw:1
text=Flying -- When Tome Raider enters the battlefield, draw a card.
mana={2}{U}
type=Creature
subtype=Faerie
power=1
toughness=1
[/card]
[card]
name=Tome Shredder
abilities=haste
auto={T}{E(*[instant;sorcery]|mygraveyard)}:counter(1/1)
text=Haste -- {T}, Exile an instant or sorcery card from your graveyard: Put a +1/+1 counter on Tome Shredder.
mana={2}{R}
type=Creature
subtype=Wolf
power=2
toughness=2
[/card]
[card]
name=Tomebound Lich name=Tomebound Lich
abilities=deathtouch,lifelink abilities=deathtouch,lifelink
auto=draw:1 && transforms((,newability[target(*|myhand) reject])) auto=draw:1 && transforms((,newability[target(*|myhand) reject]))
@@ -57321,6 +57742,16 @@ mana={3}
type=Artifact type=Artifact
[/card] [/card]
[card] [card]
name=Twinscroll Shaman
abilities=double strike
text=Double strike
mana={2}{R}
type=Creature
subtype=Dwarf Shaman
power=1
toughness=2
[/card]
[card]
name=Twisted Reflection name=Twisted Reflection
other={B} name(Entwine) other={B} name(Entwine)
auto=if paid(alternative) then target(creature) -6/0 ueot && target(creature) swap ueot auto=if paid(alternative) then target(creature) -6/0 ueot && target(creature) swap ueot
@@ -60142,6 +60573,18 @@ mana={4}{W}
type=Sorcery type=Sorcery
[/card] [/card]
[card] [card]
name=Wandering Archaic
auto=@movedto(*[instant;sorcery]|opponentstack):all(trigger[to]) transforms((,newability[[pay[[{2}]] name(pay 2 mana) donothing?counter(0/0.1.WanderingEffect)])) oneshot
auto=@counteradded(0/0,1,WanderingEffect) from(instant|opponentstack):may name(Copy spell) all(instant[counter{0/0.1.WanderingEffect}]|opponentstack) activate castcard(copied)
auto=@counteradded(0/0,1,WanderingEffect) from(sorcery|opponentstack):may name(Copy spell) all(sorcery[counter{0/0.1.WanderingEffect}]|opponentstack) activate castcard(copied)
text=Whenever an opponent casts an instant or sorcery spell, they may pay {2}. If they don't, you may copy that spell. You may choose new targets for the copy.
mana={5}
type=Creature
subtype=Avatar
power=4
toughness=4
[/card]
[card]
name=Wandering Eye name=Wandering Eye
abilities=flying abilities=flying
auto={0}:Reveal:type:*:opponenthand revealzone(opponenthand) revealtype(*|opponenthand) optionone target(*|reveal) moveto(opponenthand) optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(ownerhand)])) ueot optiontwoend revealend auto={0}:Reveal:type:*:opponenthand revealzone(opponenthand) revealtype(*|opponenthand) optionone target(*|reveal) moveto(opponenthand) optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(ownerhand)])) ueot optiontwoend revealend

View File

@@ -29,6 +29,8 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card)
bool thirddown = false; bool thirddown = false;
bool twice = false; bool twice = false;
bool thrice = false; bool thrice = false;
bool fourtimes = false;
bool fivetimes = false;
bool other = false;//othertype:[subtype] bool other = false;//othertype:[subtype]
if (!target) target = card; if (!target) target = card;
@@ -91,7 +93,18 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card)
size_t tXXX = s.find("thrice"); size_t tXXX = s.find("thrice");
s.erase(tXXX,tXXX + 6); s.erase(tXXX,tXXX + 6);
} }
if(s.find("fourtimes") != string::npos)
{
fourtimes = true;
size_t tXXX = s.find("fourtimes");
s.erase(tXXX,tXXX + 9);
}
if(s.find("fivetimes") != string::npos)
{
fivetimes = true;
size_t tXXX = s.find("fivetimes");
s.erase(tXXX,tXXX + 9);
}
if(s.find("othertype") != string::npos) if(s.find("othertype") != string::npos)
{ {
other = true; other = true;
@@ -179,6 +192,11 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card)
intValue = computeX(spell, card) / 2; intValue = computeX(spell, card) / 2;
if(intValue < 0) intValue = 0; if(intValue < 0) intValue = 0;
} }
else if (s == "xxx" || s == "XXX" || s == "thirdpaid")
{
intValue = computeX(spell, card) / 3;
if(intValue < 0) intValue = 0;
}
else if (s == "castx" || s == "Iroas")//calculate castx - devotion to red white else if (s == "castx" || s == "Iroas")//calculate castx - devotion to red white
{ {
intValue = (s == "castx")?card->castX:countDevotionTo(card, card->controller()->inPlay(), Constants::MTG_COLOR_RED, Constants::MTG_COLOR_WHITE); intValue = (s == "castx")?card->castX:countDevotionTo(card, card->controller()->inPlay(), Constants::MTG_COLOR_RED, Constants::MTG_COLOR_WHITE);
@@ -1079,6 +1097,10 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card)
intValue = intValue * 2; intValue = intValue * 2;
if (thrice) if (thrice)
intValue = intValue * 3; intValue = intValue * 3;
if (fourtimes)
intValue = intValue * 4;
if (fivetimes)
intValue = intValue * 5;
if (intValue < 0) if (intValue < 0)
{ {
//we remove "-" at the start and are parsing for real values. //we remove "-" at the start and are parsing for real values.