fix some cards and add some missing

it seems " add " inside name causes issue when parsed (cause crash in
deck editor like arlinn kord), renaming it fixes it...
This commit is contained in:
Anthony Calosa
2016-08-27 14:56:54 +08:00
parent f447482e32
commit 4d56269130
4 changed files with 206 additions and 28 deletions

View File

@@ -1685,7 +1685,7 @@ subtype=Ajani
[card]
name=Ajani Steadfast
auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: add 1 loyalty) donothing restriction{compare(cantargetcre)~lessthan~1}
auto={C(0/0,1,Loyalty)}:name(+1: loyalty) donothing restriction{compare(cantargetcre)~lessthan~1}
auto={C(0/0,1,Loyalty)}:name(+1: multi transform) target(creature) transforms((,newability[1/1],newability[vigilance],newability[first strike],newability[lifelink])) ueot restriction{compare(cantargetcre)~morethan~0}
auto={C(0/0,-2,Loyalty)}:name(-2: 1/1 counters) all(creature|mybattlefield) counter(1/1,1) && all(other planeswalker|mybattlefield) counter(0/0,1,Loyalty)
auto={C(0/0,-7,Loyalty)}:name(-7: emblem) emblem transforms((,newability[forcefield controller])) forever dontremove
@@ -1708,7 +1708,7 @@ subtype=Ajani
[card]
name=Ajani, Caller of the Pride
auto=counter(0/0,4,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: add 1 loyalty) donothing restriction{compare(cantargetcre)~lessthan~1}
auto={C(0/0,1,Loyalty)}:name(+1: loyalty) donothing restriction{compare(cantargetcre)~lessthan~1}
auto={C(0/0,1,Loyalty)}:name(+1: +1/+1 counter) target(creature|battlefield) counter(1/1,1) restriction{compare(cantargetcre)~morethan~0}
auto={C(0/0,-3,Loyalty)}:name(-3: double strike and flying) flying && double strike target(creature|battlefield) ueot
auto={C(0/0,-8,Loyalty)}:name(-8: ultimate) token(Cat,Creature Cat,2/2,white)*lifetotal
@@ -5334,7 +5334,7 @@ type=Artifact
[card]
name=Arlinn Kord
auto=counter(0/0,3,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: add 1 loyalty) donothing restriction{compare(cantargetcre)~lessthan~1}
auto={C(0/0,1,Loyalty)}:name(+1: loyalty) donothing restriction{compare(cantargetcre)~lessthan~1}
auto={C(0/0,1,Loyalty)}:name(+1: 2/2 creature) target(creature) 2/2 ueot
auto={C(0/0,0,Loyalty)}:name(0: wolf token) token(Wolf,creature Wolf,2/2,green) && flip(Arlinn, Embraced by the Moon)
text=+1: Until end of turn, up to one target creature gets +2/+2 and gains vigilance and haste. -- 0: Put a 2/2 green Wolf creature token onto the battlefield. Transform Arlinn Kord.
@@ -7640,8 +7640,8 @@ type=Instant
[/card]
[card]
name=Azorius Cluestone
auto={T}: Add {W}
auto={T}: Add {U}
auto={T}:Add{W}
auto={T}:Add{U}
auto={W}{U}{T}{S}:draw:1 controller
text={T}: Add {W} or {U} to your mana pool. -- {W}{U}, {T}, Sacrifice Azorius Cluestone: Draw a card.
mana={3}
@@ -13275,8 +13275,8 @@ type=Instant
[/card]
[card]
name=Boros Cluestone
auto={T}: Add {R}
auto={T}: Add {W}
auto={T}:Add{R}
auto={T}:Add{W}
auto={R}{W}{T}{S}:draw:1 controller
text={T}: Add {R} or {W} to your mana pool. -- {R}{W}, {T}, Sacrifice Boros Cluestone: Draw a card.
mana={3}
@@ -14793,6 +14793,17 @@ power=3
toughness=2
[/card]
[card]
name=Brutalizer Exarch
auto=choice name(put on top) moveTo(exile) and!(transforms((,newability[moveto(ownerlibrary)])) oneshot)! notatarget(creature|mylibrary)
auto=choice name(put on bottom) bottomoflibrary target(*[-creature])
text=When Brutalizer Exarch enters the battlefield, choose one — Search your library for a creature card, reveal it, then shuffle your library and put that card on top of it; or put target noncreature permanent on the bottom of its owner's library.
mana={5}{G}
type=Creature
subtype=Cleric
power=3
toughness=3
[/card]
[card]
name=Brute Force
target=creature
auto=3/3
@@ -19353,6 +19364,16 @@ power=2
toughness=2
[/card]
[card]
name=Civilized Scholar
auto={T}:draw:1 && ability$! reject notatarget(*|myhand) and!( if cantargetcard(creature|*) then all(mystored) flip(Homicidal Brute) && all(mystored) untap )! !$ controller
text={T}: Draw a card, then discard a card. If a creature card is discarded this way, untap Civilized Scholar, then transform it.
mana={2}{U}
type=Creature
subtype=Human Advisor
power=0
toughness=1
[/card]
[card]
name=Claim of Erebos
target=creature
auto=teach(creature) {1}{B}{T}:target(player) life:-2
@@ -21860,7 +21881,7 @@ toughness=3
[card]
name=Corrupted Resolve
target=*|stack
auto=transforms((,newability[this(variable{playerpoisoncount}) fizzle])) ueot
auto=transforms((,newability[this(variable{mypoisoncount}) fizzle])) ueot
mana={1}{U}
type=Instant
text=Counter target spell if its controller is poisoned.
@@ -28071,8 +28092,8 @@ type=Land
[/card]
[card]
name=Dimir Cluestone
auto={T}: Add {U}
auto={T}: Add {B}
auto={T}:Add{U}
auto={T}:Add{B}
auto={U}{B}{T}{S}:draw:1 controller
text={T}: Add {U} or {B} to your mana pool. -- {U}{B}, {T}, Sacrifice Dimir Cluestone: Draw a card.
mana={3}
@@ -35820,6 +35841,16 @@ type=Enchantment
subtype=Aura
[/card]
[card]
name=Evil Twin
auto=may copy NotATarget(creature) and!( transforms((,newability[{U}{B}{T}:destroy target(creature[share!name!])])) forever )!
text=You may have Evil Twin enter the battlefield as a copy of any creature on the battlefield except it gains "{U}{B}, {T}: Destroy target creature with the same name as this creature."
mana={2}{U}{B}
type=Creature
subtype=Shapeshifter
power=0
toughness=0
[/card]
[card]
name=Evincar's Justice
auto=damage:2 all(creature,player)
buyback={2}{B}{B}{3}
@@ -43353,7 +43384,7 @@ toughness=2
[card]
name=Gerrard's Verdict
target=player
auto=ability$! reject notatarget(<2>*|myhand) and!( if cantargetcard(land|*) then life:3 all(abilitycontroller) )! !$ targetedplayer
auto=ability$! reject notatarget(<2>*|myhand) and!( if cantargetcard(land|*) then life:3 all(abilitycontroller) oneshot )! !$ targetedplayer
text=Target player discards two cards. You gain 3 life for each land card discarded this way.
mana={W}{B}
type=Sorcery
@@ -46577,8 +46608,8 @@ type=Instant
[/card]
[card]
name=Golgari Cluestone
auto={T}: Add {B}
auto={T}: Add {G}
auto={T}:Add{B}
auto={T}:Add{G}
auto={B}{G}{T}{S}:draw:1 controller
text={T}: Add {B} or {G} to your mana pool. -- {B}{G}, {T}, Sacrifice Golgari Cluestone: Draw a card.
mana={3}
@@ -47429,6 +47460,13 @@ power=4
toughness=4
[/card]
[card]
name=Graveyard Shovel
auto={2}{T}:name(exiles a card) target(player) ability$! notatarget(*|mygraveyard) moveto(exile) and!( if cantargetcard(creature|*) then all(abilitycontroller) life:2 oneshot )! !$ targetedplayer
text={2}, {T}: Target player exiles a card from his or her graveyard. If it's a creature card, you gain 2 life.
mana={2}
type=Artifact
[/card]
[card]
name=Gravitational Shift
auto=lord(creature[flying]) 2/0
auto=lord(creature[-flying]) -2/0
@@ -48098,6 +48136,14 @@ power=5
toughness=5
[/card]
[card]
name=Grimoire of the Dead
auto={1}{T}{D(*|myhand)}:counter(0/0,1,Study)
auto={T}{C(0/0,-3,Study)}{S}:all(creature|graveyard) moveto(mybattlefield) and!( transforms((Zombie,newcolors[black])) forever )!
text={1}, {T}, Discard a card: Put a study counter on Grimoire of the Dead. -- {T}, Remove three study counters from Grimoire of the Dead and sacrifice it: Put all creature cards from all graveyards onto the battlefield under your control. They're black Zombies in addition to their other colors and types.
mana={4}
type=Legendary Artifact
[/card]
[card]
name=Grindclock
auto={T}:counter(0/0,1,Charge)
auto={T}:target(player) dynamicability<!chargedeplete!>
@@ -48619,8 +48665,8 @@ type=Instant
[/card]
[card]
name=Gruul Cluestone
auto={T}: Add {R}
auto={T}: Add {G}
auto={T}:Add{R}
auto={T}:Add{G}
auto={R}{G}{T}{S}:draw:1 controller
text={T}: Add {R} or {G} to your mana pool. -- {R}{G}, {T}, Sacrifice Gruul Cluestone: Draw a card.
mana={3}
@@ -52512,6 +52558,15 @@ type=Land
text={T}: Add {1} to your mana pool. {T}: Each player gains control of all creatures he or she owns.
[/card]
[card]
name=Homicidal Brute
auto=@each my endofturn restriction{didntattack}:tap && flip(Civilized Scholar)
text=At the beginning of your end step, if Homicidal Brute didn't attack this turn, tap Homicidal Brute, then transform it.
type=Creature
subtype=Human Mutant
power=5
toughness=1
[/card]
[card]
name=Homicidal Seclusion
auto=aslongas(creature|mybattlefield) lord(creature|mybattlefield) 3/1 <2
auto=aslongas(creature|mybattlefield) lord(creature|mybattlefield) lifelink <2
@@ -54533,6 +54588,18 @@ power=2
toughness=2
[/card]
[card]
name=Immerwolf
abilities=intimidate
auto=lord(other *[wolf;werewolf]|mybattlefield) 1/1
auto=lord(*[-human;werewolf]|mybattlefield) canttransform
text=Intimidate (This creature can't be blocked except by artifact creatures and/or creatures that share a color with it.) -- Other Wolf and Werewolf creatures you control get +1/+1. -- Non-Human Werewolves you control can't transform.
mana={1}{R}{G}
type=Creature
subtype=Wolf
power=2
toughness=2
[/card]
[card]
name=Immobilizing Ink
target=creature
auto=doesnotuntap
@@ -56688,8 +56755,8 @@ toughness=2
[/card]
[card]
name=Izzet Cluestone
auto={T}: Add {U}
auto={T}: Add {R}
auto={T}:Add{U}
auto={T}:Add{R}
auto={U}{R}{T}{S}:draw:1 controller
text={T}: Add {U} or {R} to your mana pool. -- {U}{R}, {T}, Sacrifice Izzet Cluestone: Draw a card.
mana={3}
@@ -61231,7 +61298,7 @@ type=Land
name=Koth of the Hammer
auto=counter(0/0,3,loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: untap) untap target(mountain) && transforms((Elemental Creature,setpower=4,settoughness=4,red)) ueot
auto={C(0/0,-2,Loyalty)}:name(-2: add mana) foreach(mountain|myBattlefield) add{R}
auto={C(0/0,-2,Loyalty)}:name(-2: Red mana) foreach(mountain|myBattlefield) add{R}
auto={C(0/0,-5,Loyalty)}:name(-5: emblem) emblem transforms((,newability[lord(mountain|mybattlefield) {t}:damage:1 target(creature)],newability[lord(mountain|mybattlefield) {t}:damage:1 target(player)])) forever dontremove
text=+1: Untap target Mountain. It becomes a 4/4 red Elemental creature until end of turn. It's still a land. -- -2: Add {R} to your mana pool for each Mountain you control. -- -5: You get an emblem with "Mountains you control have '{T}: This land deals 1 damage to target creature or player.'"
mana={2}{R}{R}
@@ -65259,11 +65326,11 @@ suspend(3)={0}
[card]
name=Lotus Blossom
auto=@each my upkeep:may counter(0/0,1,Petal)
auto={T}{S}:name(Sacrifice And Add White Mana) thisforeach(counter{0/0.1.Petal}) add{W} controller
auto={T}{S}:name(Sacrifice And Add Blue Mana) thisforeach(counter{0/0.1.Petal}) add{U} controller
auto={T}{S}:name(Sacrifice And Add Black Mana) thisforeach(counter{0/0.1.Petal}) add{B} controller
auto={T}{S}:name(Sacrifice And Add Red Mana) thisforeach(counter{0/0.1.Petal}) add{R} controller
auto={T}{S}:name(Sacrifice And Add Green Mana) thisforeach(counter{0/0.1.Petal}) add{G} controller
auto={T}{S}:name(White Mana) thisforeach(counter{0/0.1.Petal}) add{W} controller
auto={T}{S}:name(Blue Mana) thisforeach(counter{0/0.1.Petal}) add{U} controller
auto={T}{S}:name(Black Mana) thisforeach(counter{0/0.1.Petal}) add{B} controller
auto={T}{S}:name(Red Mana) thisforeach(counter{0/0.1.Petal}) add{R} controller
auto={T}{S}:name(Green Mana) thisforeach(counter{0/0.1.Petal}) add{G} controller
text=At the beginning of your upkeep, you may put a petal counter on Lotus Blossom. -- {T}, Sacrifice Lotus Blossom: Add X mana of any one color to your mana pool, where X is the number of petal counters on Lotus Blossom.
mana={2}
type=Artifact
@@ -67358,6 +67425,18 @@ power=1
toughness=2
[/card]
[card]
name=Manor Gargoyle
abilities=defender
auto=while(restriction{hasdefender}) indestructible
auto={1}:name(loses defender) transforms((,newability[-defender],newability[flying])) ueot
text=Defender -- Manor Gargoyle is indestructible as long as it has defender. -- {1}: Until end of turn, Manor Gargoyle loses defender and gains flying.
mana={5}
type=Artifact Creature
subtype=Gargoyle
power=4
toughness=4
[/card]
[card]
name=Manor Skeleton
abilities=haste
auto={1}{B}:regenerate
@@ -70558,6 +70637,17 @@ power=4
toughness=4
[/card]
[card]
name=Mindshrieker
abilities=flying
auto={2}:name(deplete) target(player) Reveal:1 revealzone(targetedpersonslibrary) optionone all(*|reveal) moveto(ownerlibrary) and!( transforms((,newability[deplete:1])) oneshot )! optiononeend afterrevealed all(this) revealedmana/revealedmana afterrevealedend revealend
text=Flying -- {2}: Target player puts the top card of his or her library into his or her graveyard. Mindshrieker gets +X/+X until end of turn, where X is that card's converted mana cost.
mana={1}{U}
type=Creature
subtype=Spirit Bird
power=1
toughness=1
[/card]
[card]
name=Mindslicer
auto=@movedto(this|graveyard) from(battlefield):reject all(*|hand)
text=When Mindslicer dies, each player discards his or her hand.
@@ -71053,6 +71143,17 @@ text=Mirrorpool enters the battlefield tapped. -- {T}: Add {C} to your mana pool
type=Land
[/card]
[card]
name=Mirror-Mad Phantasm
abilities=flying
auto={1}{U}:name(shuffle reveal) moveto(ownerlibrary) and!( transforms((,newability[shuffle],newability[Reveal:1 revealzone(mylibrary) revealuntil(Mirror-Mad Phantasm|mylibrary) optionone notatarget(Mirror-Mad Phantasm|reveal) bottomoflibrary optiononeend optiontwo all(*|reveal) moveto(ownergraveyard) optiontwoend revealend])) oneshot )!
text=Flying -- {1}{U}: Mirror-Mad Phantasm's owner shuffles it into his or her library. If that player does, he or she reveals cards from the top of that library until a card named Mirror-Mad Phantasm is revealed. The player puts that card onto the battlefield and all other cards revealed this way into his or her graveyard.
mana={3}{U}{U}
type=Creature
subtype=Spirit
power=5
toughness=1
[/card]
[card]
name=Mirror-Sigil Sergeant
abilities=trample
auto=@each my upkeep restriction{type(*[blue]|myBattlefield)~morethan~0}:may token(Mirror-Sigil Sergeant)
@@ -71476,6 +71577,16 @@ power=1
toughness=3
[/card]
[card]
name=Misthollow Griffin
abilities=flying,canplayfromexile
text=Flying -- You may cast Misthollow Griffin from exile.
mana={2}{U}{U}
type=Creature
subtype=Griffin
power=3
toughness=3
[/card]
[card]
name=Misthoof Kirin
abilities=flying,vigilance
facedown={3}
@@ -79327,8 +79438,8 @@ type=Land
[/card]
[card]
name=Orzhov Cluestone
auto={T}: Add {B}
auto={T}: Add {W}
auto={T}:Add{B}
auto={T}:Add{W}
auto={B}{W}{T}{S}:draw:1 controller
text={T}: Add {B} or {W} to your mana pool. -- {B}{W}, {T}, Sacrifice Orzhov Cluestone: Draw a card.
mana={3}
@@ -91703,6 +91814,13 @@ power=2
toughness=1
[/card]
[card]
name=Rooftop Storm
auto=lord(creature[zombie]|mycastingzone) zerocast
text=You may pay {0} rather than pay the mana cost for Zombie creature spells you cast.
mana={5}{U}
type=Enchantment
[/card]
[card]
name=Root Cage
auto=lord(mercenary) doesnotuntap
text=Mercenaries don't untap during their controllers' untap steps.
@@ -94235,7 +94353,7 @@ subtype=Sarkhan
[card]
name=Sarkhan Unbroken
auto=counter(0/0,9,Loyalty)
auto={C(0/0,1,Loyalty)}:name(+1: Draw card add mana) draw:1 controller && transforms((,newability[activatechooseacolor add{chosencolor} activatechooseend])) forever asSorcery
auto={C(0/0,1,Loyalty)}:name(+1: Draw card) draw:1 controller && transforms((,newability[activatechooseacolor add{chosencolor} activatechooseend])) forever asSorcery
auto={C(0/0,-2,Loyalty)}:name(-2: 4/4 dragon token) token(Dragon,creature dragon,4/4,flying,red) controller asSorcery
auto={C(0/0,-8,Loyalty)}:name(-8: Search for any number of dragons) moveto(mybattlefield) notatarget(<anyamount>creature[dragon]|mylibrary) asSorcery
text=+1: Draw a card, then add one mana of any color to your mana pool. -- -2: Put a 4/4 red Dragon creature token with flying onto the battlefield. -- -8: Search your library for any number of Dragon creature cards and put them onto the battlefield. Then shuffle your library. -- Starting Loyalty (4)
@@ -97657,6 +97775,17 @@ mana={3}
type=Artifact
[/card]
[card]
name=Serum Raker
abilities=flying
auto=@movedto(this|graveyard) from(battlefield):ability$!reject notatarget(*|myhand)!$ controller && ability$!reject notatarget(*|myhand)!$ opponent
text=Flying -- When Serum Raker dies, each player discards a card.
mana={2}{U}{U}
type=Creature
subtype=Drake
power=3
toughness=2
[/card]
[card]
name=Serum Tank
auto=counter(0/0,1,Charge)
auto=@movedTo(other artifact|Battlefield):counter(0/0,1,Charge)
@@ -116926,6 +117055,17 @@ power=4
toughness=4
[/card]
[card]
name=Tower Geist
abilities=flying
auto=reveal:2 optionone name(Get a card) target(<1>*|reveal) moveto(myhand) optiononeend optiontwo all(*|reveal) moveto(mygraveyard) optiontwoend revealend
text=Flying -- When Tower Geist enters the battlefield, look at the top two cards of your library. Put one of them into your hand and the other into your graveyard.
mana={3}{U}
type=Creature
subtype=Spirit
power=2
toughness=2
[/card]
[card]
name=Tower of Calamities
auto={8}{T}:damage:12 target(creature)
text={8}, {T}:Tower of Calamities deals 12 damage to target creature.
@@ -127052,6 +127192,17 @@ power=1
toughness=1
[/card]
[card]
name=Whispering Specter
abilities=flying,infect
auto=@combatdamaged(player) from(this):may sacrifice and!( ability$! reject notatarget(<mypoisoncount>*|myhand) !$ opponent )!
text=Flying -- Infect (This creature deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.) -- Whenever Whispering Specter deals combat damage to a player, you may sacrifice it. If you do, that player discards a card for each poison counter he or she has.
mana={1}{B}{B}
type=Creature
subtype=Specter
power=1
toughness=1
[/card]
[card]
name=Whispers of Emrakul
target=opponent
auto=discard:1
@@ -130494,7 +130645,7 @@ toughness=5
name=Zhur-Taa Druid
auto={T}:Add{G}
auto=@tappedformana(this):damage:1 opponent
auto={T}: Add {G} to your mana pool. Whenever you tap Zhur-Taa Druid for mana, it deals 1 damage to each opponent.
text={T}: Add {G} to your mana pool. Whenever you tap Zhur-Taa Druid for mana, it deals 1 damage to each opponent.
mana={R}{G}
type=Creature
subtype=Human Druid

View File

@@ -706,7 +706,7 @@ private:
{
intValue = target->controller()->opponent()->nonCombatDamage;
}
else if (s == "playerpoisoncount")
else if (s == "mypoisoncount")
{
intValue = target->controller()->poisonCount;
}

View File

@@ -873,6 +873,12 @@ void GameObserver::gameStateBasedEffects()
{
card->graveEffects = false;
card->exileEffects = false;
if(card->isCreature())
{
if(card->life < 1 && !card->has(Constants::INDESTRUCTIBLE))
card->destroy();//manor gargoyle... recheck
}
}
if(card->childrenCards.size())

View File

@@ -510,6 +510,27 @@ int AbilityFactory::parseCastRestrictions(MTGCardInstance * card, Player * playe
return 0;
}
check = restriction[i].find("hasdefender");
if(check != string::npos)
{
if(!card->has(Constants::DEFENDER))
return 0;
}
check = restriction[i].find("didattack");
if(check != string::npos)
{
if(!card->didattacked)
return 0;
}
check = restriction[i].find("didntattack");
if(check != string::npos)
{
if(card->didattacked)
return 0;
}
check = restriction[i].find("ownerscontrol");
if(check != string::npos)
{