diff --git a/projects/mtg/bin/Res/sets/primitives/_macros.txt b/projects/mtg/bin/Res/sets/primitives/_macros.txt index 52410ab9b..df24d77fa 100644 --- a/projects/mtg/bin/Res/sets/primitives/_macros.txt +++ b/projects/mtg/bin/Res/sets/primitives/_macros.txt @@ -236,6 +236,12 @@ # Dragon Token #AUTO_DEFINE _DRAGONTOKEN_ create(Dragon:Creature Dragon:5/5:red:flying) +# Eldrazi Scion Token +#AUTO_DEFINE _ELDRAZISCION_ create(Eldrazi Scion:Creature Eldrazi Scion:1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! + +# Eldrazi Spawn Token +#AUTO_DEFINE _ELDRAZISPAWN_ create(Eldrazi Spawn:Creature Eldrazi Spawn:0/1) and!( transforms((,newability[{S}:Add{C}])) forever )! + # Elephant Token #AUTO_DEFINE _ELEPHANTTOKEN_ create(Elephant:Creature Elephant:3/3:green) diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 3d412cf53..ce4d11854 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -2468,7 +2468,7 @@ toughness=4 [card] name=Angel of Grace abilities=flash,flying -auto=this(controllerlife >= 1) transforms((,newability[reduceto:1])) +auto=this(controllerlife >= 1) transforms((,newability[reduceto:1])) ueot autograveyard={4}{W}{W}{E}:lifeset:10 text=Flash -- Flying -- When Angel of Grace enters the battlefield, until end of turn, damage that would reduce your life total to less than 1 reduces it to 1 instead. -- {4}{W}{W}, Exile Angel of Grace from your graveyard: Your life total becomes 10. mana={3}{W}{W} @@ -9494,7 +9494,7 @@ toughness=2 [/card] [card] name=Blight Herder -autostack=if type(*|opponentexile)~morethan~1 then may target(<2>*|opponentexile) moveto(ownergraveyard) && token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )!*2 +autostack=if type(*|opponentexile)~morethan~1 then may target(<2>*|opponentexile) moveto(ownergraveyard) && _ELDRAZISCION_*2 text=When you cast this spell, you may put two cards your opponents own from exile into their owners' graveyards. If you do, create three 1/1 colorless Eldrazi Scion creature tokens. They have "Sacrifice this creature: Add {C}." mana={5} type=Creature @@ -11009,7 +11009,7 @@ auto={T}:Add{U} auto={T}:Add{B} auto={T}:Add{R} auto={T}:Add{G} -auto={4}{T}:if type(artifact[Bonder's Ornament]|myBattlefield) then draw:1 controller && if type(artifact[Bonder's Ornament]|opponentBattlefield) then draw:1 opponent +auto={4}{T}:name(Draw) if type(Bonder's Ornament|myBattlefield)~morethan~0 then draw:1 controller && if type(artifact[Bonder's Ornament]|opponentBattlefield)~morethan~0 then draw:1 opponent text={T}: Add one mana of any color. -- {4}, {T}: Each player who controls a permanent named Bonder's Ornament draws a card. mana={3} type=Artifact @@ -51333,7 +51333,7 @@ type=Instant name=Jace's Mindseeker abilities=flying aicode=if type(*[instant;sorcery;zpos<=5]|opponentlibrary)~morethan~0 then activate castcard(normal) target(*[instant;sorcery;zpos<=5]|opponentlibrary) && deplete:4 opponent else deplete:5 opponent -auto=name(Put 5 cards in graveyard) reveal:5 revealzone(opponentlibrary) optionone name(cast an istant or sorcery) target(<1>*[instant;sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(<5>*|reveal) moveto(opponentgraveyard) optiontwoend afterrevealed all(tobecast|mylibrary) moveto(opponentGraveyard) and!( activate castcard(normal) )! afterrevealedend revealend +auto=name(Put 5 cards in graveyard) reveal:5 revealzone(opponentlibrary) optionone name(cast an instant or sorcery) target(<1>*[instant;sorcery]|reveal) moveto(mylibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(Put in graveyard) target(<5>*|reveal) moveto(opponentgraveyard) optiontwoend afterrevealed all(tobecast|mylibrary) moveto(opponentGraveyard) and!( activate castcard(normal) )! afterrevealedend revealend text=Flying -- When Jace's Mindseeker enters the battlefield, target opponent puts the top five cards of his or her library into his or her graveyard. You may cast an instant or sorcery card from among them without paying its mana cost. mana={4}{U}{U} type=Creature @@ -51892,8 +51892,8 @@ backside=The Great Synthesis restriction=compare(isflipped)~equalto~0 anyzone={0}:doubleside(backside) auto=_WARD_(2) -auto=@movedTo(*[-creature&manacost>=3]|mystack) restriction{compare(isflipped)~equalto~0}:name(Draw a card) name(Draw a card) name(Draw a card) draw:1 controller -auto=this(variable{type:*:myhand}>6) {3}{U}:name(Exile and transform) name(Exile and transform) all(this) moveto(myexile) and!( flip(backside) forcetype(Enchantment Saga) )! asSorcery +auto=@movedTo(*[-creature&manacost>=3]|mystack) restriction{compare(isflipped)~equalto~0}:draw:1 +auto={3}{U} restriction{type(*|myhand)~morethan~6}:name(Exile and transform) all(this) moveto(myexile) and!( flip(backside) forcetype(Enchantment Saga) )! asSorcery text=Ward {2} -- Whenever you cast a noncreature spell with mana value 3 or greater, draw a card. -- {3}{U}: Exile Jin-Gitaxias, then return it to the battlefield transformed under its owner's control. Activate only as a sorcery and only if you have seven or more cards in hand. mana={3}{U}{U} type=Legendary Creature @@ -81841,7 +81841,7 @@ toughness=4 [/card] [card] name=Rosie Cotton of South Lane -#This card has been modded in order to allow specific combo when AI is using it, this mod is not effecting card when it is useb by a Human player. +#This card has been modded in order to allow specific combo when AI is using it, this mod is not effecting card when it is used by a Human player. auto=if compare(ishuman)~morethan~0 then name(Create food) name(Create food) token(Food) and!( name(Put 1/1 counter) target(other creature|myBattlefield) counter(1/1) )! auto=if compare(ishuman)~equalto~0 then transforms((,newability[if type(Scurry Oak|mybattlefield)~equalto~0 then token(Food) and!( name(Put 1/1 counter) target(other creature|myBattlefield) counter(1/1) )!],newability[if type(Scurry Oak|mybattlefield)~morethan~0 then if type(Shalai and Hallar|mybattlefield)~equalto~0 then token(Food) and!( name(Put 1/1 counter) target(other creature|myBattlefield) counter(1/1) )!],newability[if type(Scurry Oak|mybattlefield)~morethan~0 then if type(Shalai and Hallar|mybattlefield)~morethan~0 then token(Food) and!( name(Put 1/1 counter) target(Scurry Oak|myBattlefield) counter(1/1) )!])) oneshot auto=@tokencreated(*|myBattlefield) restriction{compare(ishuman)~morethan~0}:name(Put 1/1 counter) name(Put 1/1 counter) target(other creature|myBattlefield) counter(1/1) @@ -96816,7 +96816,7 @@ type=Sorcery [/card] [card] name=Surtland Elementalist -other={7}{U}{U} name(Cast wihtout giant) +other={7}{U}{U} name(Cast without giant) otherrestriction=type(giant|myhand)~equalto~0 restriction=type(giant|myhand)~morethan~0 auto=_ATTACKING_may name(Cast instant or sorcery) target(*[instant;sorcery]|myhand) activate castcard(normal) @@ -103734,7 +103734,7 @@ type=Land [/card] [card] name=Tranquil Frillback -auto=choice name(Don't pay anythig) donothing +auto=choice name(Don't pay anything) donothing auto=choice name(Pay 1 green) ability$!may name(Pay 1 green) pay({G}) name(Pay 1 green) all(mysource) name(Pay 1 green) transforms((,newability[choice name(Gain 4 life) life:4 controller],newability[if type(*[enchantment;artifact]|battlefield)~morethan~0 then choice name(Destroy artifact or enchantment) name(Destroy artifact or enchantment) target(*[artifact;enchantment]|battlefield) destroy],newability[choice name(Exile opponent graveyard) all(*|opponentgraveyard) moveto(exile)],newability[choice name(Exile your graveyard) all(*|mygraveyard) moveto(exile)])) oneshot!$ controller auto=choice name(Pay 2 green) ability$!may name(Pay 2 green) pay({G}{G}) name(Pay 2 green) all(mysource) name(Pay 2 green) transforms((,newability[if type(*[enchantment;artifact]|battlefield)~morethan~0 then choice name(Gain life and destroy) name(Gain life and destroy) life:4 controller && target(*[artifact;enchantment]|battlefield) destroy],newability[choice name(Gain life and opponent exile) life:4 controller && all(*|opponentgraveyard) moveto(exile)],newability[choice name(Gain life and you exile) life:4 controller && all(*|mytgraveyard) moveto(exile)],newability[if type(*[enchantment;artifact]|battlefield)~morethan~0 then choice name(Destroy and opponent exile) name(Destroy and opponent exile) all(*|opponentgraveyard) moveto(exile) && target(*[artifact;enchantment]|battlefield) destroy],newability[if type(*[enchantment;artifact]|battlefield)~morethan~0 then choice name(Destroy and you exile) name(Destroy and you exile) all(*|mytgraveyard) moveto(exile) && target(*[artifact;enchantment]|battlefield) destroy])) oneshot!$ controller auto=choice name(Pay 3 green) ability$!may name(Pay 3 green) pay({G}{G}{G}) name(Pay 3 green) all(mysource) name(Pay 3 green) transforms((,newability[name(Gain 4 life) life:4 controller],newability[choice name(Exile opponent graveyard) all(*|opponentgraveyard) moveto(exile) && target(*[artifact;enchantment]|battlefield) destroy],newability[choice name(Exile your graveyard) all(*|mygraveyard) moveto(exile) && target(*[artifact;enchantment]|battlefield) destroy])) oneshot!$ controller @@ -108482,7 +108482,7 @@ toughness=1 [/card] [card] name=Virtus's Maneuver -auto=ability$!name(Return to hand) name(Return to hand) target(creature|mygraveyard) moveto(ownerhand)!$ opponent +auto=ability$!name(Return to hand) name(Return to hand) target(creature|mygraveyard) moveto(ownerhand)!$ auto=ability$!name(Sacrifice creature) name(Sacrifice creature) target(creature|mybattlefield) sacrifice!$ opponent text=For each player, choose friend or foe. Each friend returns a creature card from their graveyard to their hand. Each foe sacrifices a creature they control. mana={2}{B} @@ -110248,7 +110248,7 @@ name=Warping Wail auto=choice name(Exile creature with power 1 or less) target(creature[power<=1]) moveto(exile) auto=choice name(Exile creature with toughness 1 or less) target(creature[toughness<=1]) moveto(exile) auto=choice name(Counter sorcery) target(sorcery|stack) fizzle -auto=choice name(Create Eldrazi Scion) token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! controller +auto=choice name(Create Eldrazi Scion) _ELDRAZISCION_ controller text=({C} represents colorless mana.) -- Choose one -- Exile target creature with power or toughness 1 or less. -- Counter target sorcery spell. -- Put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool." mana={1}{C} type=Instant diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 55f0b6ec6..f588054f0 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -261,7 +261,7 @@ name=Abstruse Interference abilities=devoid target=*|stack auto=transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?fizzle])) forever -auto=token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! controller +auto=_ELDRAZISCION_ controller text=Devoid (This card has no color.) -- Counter target spell unless its controller pays {1}. You put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool." ({C} represents colorless mana.) mana={2}{U} type=Instant @@ -946,7 +946,7 @@ name=Adverse Conditions target=creature|battlefield auto=tap auto=frozen -auto=token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! controller +auto=_ELDRAZISCION_ controller text=Devoid (This card has no color.) -- Tap up to two target creatures. Those creatures don't untap during their controller's next untap step. Put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." mana={3}{U} abilities=devoid @@ -7948,7 +7948,7 @@ toughness=1 [/card] [card] name=Awakening Zone -auto=@each my upkeep:token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )! +auto=@each my upkeep:_ELDRAZISPAWN_ text=At the beginning of your upkeep, put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." mana={2}{G} type=Enchantment @@ -10876,7 +10876,7 @@ toughness=1 [card] name=Birthing Hulk auto={1}{C}:regenerate -auto=token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )!*2 +auto=_ELDRAZISCION_*2 text=Devoid (This card has no color.) -- When Birthing Hulk enters the battlefield, put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool." ({C} represents colorless mana.) -- {1}{C}: Regenerate Birthing Hulk. mana={6}{G} abilities=devoid @@ -11904,7 +11904,7 @@ toughness=1 [/card] [card] name=Blisterpod -auto=_DIES_token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! controller +auto=_DIES__ELDRAZISCION_ controller text=Devoid (This card has no color.) -- When Blisterpod dies, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." mana={G} abilities=devoid @@ -15251,15 +15251,15 @@ toughness=2 [/card] [card] name=Brood Birthing -auto=aslongas(eldrazi spawn|myBattlefield) token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )!*2 -auto=token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )! +auto=aslongas(eldrazi spawn|myBattlefield) _ELDRAZISPAWN_*2 +auto=_ELDRAZISPAWN_ text=If you control an Eldrazi Spawn, create three 0/1 colorless Eldrazi Spawn creature tokens. They have "Sacrifice this creature: Add {C}." Otherwise, create one of those tokens. mana={1}{R} type=Sorcery [/card] [card] name=Brood Butcher -auto=choice token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! controller +auto=choice _ELDRAZISCION_ controller auto={B}{G}{S(creature|mybattlefield)}:target(creature) -2/-2 ueot text=Devoid (This card has no color.) -- When Brood Butcher enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." -- {B}{G}, Sacrifice a creature: Target creature gets -2/-2 until end of turn. mana={3}{B}{G} @@ -15292,7 +15292,7 @@ toughness=3 [/card] [card] name=Brood Monitor -auto=choice token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )!*3 controller +auto=choice _ELDRAZISCION_*3 controller text=Devoid (This card has no color.) -- When Brood Monitor enters the battlefield, put three 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." mana={4}{G}{G} abilities=devoid @@ -16490,7 +16490,7 @@ type=Sorcery [/card] [card] name=Call the Scions -auto=token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )!*2 controller +auto=_ELDRAZISCION_*2 controller text=Devoid (This card has no color.) -- Put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." mana={2}{G} abilities=devoid @@ -17207,7 +17207,7 @@ toughness=1 [/card] [card] name=Carrier Thrall -auto=_DIES_token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! controller +auto=_DIES__ELDRAZISCION_ controller text=When Carrier Thrall dies, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." mana={1}{B} type=Creature @@ -17454,7 +17454,7 @@ toughness=4 [card] name=Catacomb Sifter abilities=devoid -auto=choice token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! controller +auto=choice _ELDRAZISCION_ controller aicode=activate transforms((,newability[all(*[zpos<=1]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot auto=@movedTo(other creature|graveyard) from(myBattlefield):name(Scry 1) _SCRY1_ text=Devoid (This card has no color.) -- When Catacomb Sifter enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool." -- Whenever another creature you control dies, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.) @@ -22752,7 +22752,7 @@ toughness=3 name=Corpsehatch target=creature[-black] auto=destroy -auto=token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )!*2 +auto=_ELDRAZISPAWN_*2 text=Destroy target nonblack creature. -- Put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have sacrifice this creature: Add {1} to your mana pool. mana={3}{B}{B} type=Sorcery @@ -31678,7 +31678,7 @@ toughness=8 [/card] [card] name=Dread Drone -auto=token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )!*2 +auto=_ELDRAZISPAWN_*2 text=When Dread Drone enters the battlefield, put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." mana={4}{B} type=Creature @@ -32546,7 +32546,7 @@ toughness=1 [/card] [card] name=Drowner of Hope -auto=choice token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! *2 controller +auto=choice _ELDRAZISCION_*2 controller auto={S(Eldrazi Scion|mybattlefield)}:tap target(creature) text=Devoid (This card has no color.) -- When Drowner of Hope enters the battlefield, put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." -- Sacrifice an Eldrazi Scion: Tap target creature. mana={5}{U} @@ -34437,7 +34437,7 @@ toughness=1 [card] name=Eldrazi Skyspawner abilities=flying -auto=choice token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! controller +auto=choice _ELDRAZISCION_ controller text=Devoid (This card has no color.) -- Flying -- When Eldrazi Skyspawner enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." mana={2}{U} abilities=devoid @@ -35749,7 +35749,7 @@ toughness=2 [/card] [card] name=Emrakul's Hatcher -auto=token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )!*3 +auto=_ELDRAZISPAWN_*3 text=When Emrakul's Hatcher enters the battlefield, put three 0/1 colorless Eldrazi Spawn creatures onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." mana={4}{R} type=Creature @@ -37041,7 +37041,7 @@ name=Essence Feed target=player auto=life:-3 auto=life:3 controller -auto=token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )!*3 +auto=_ELDRAZISPAWN_*3 text=Target player loses 3 life. You gain 3 life and put three 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." mana={5}{B} type=Sorcery @@ -38258,7 +38258,7 @@ subtype=Elf [/card] [card] name=Eyeless Watcher -auto=choice token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )!*2 controller +auto=choice _ELDRAZISCION_*2 controller text=Devoid (This card has no color.) -- When Eyeless Watcher enters the battlefield, put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." mana={3}{G} abilities=devoid @@ -43664,7 +43664,7 @@ toughness=1 [/card] [card] name=From Beyond -auto=@each my upkeep:token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! controller +auto=@each my upkeep:_ELDRAZISCION_ controller aicode=activate target(*[eldrazi]|mylibrary) moveto(myhand) auto={1}{G}{S}:name(search card) Reveal:type:*:mylibrary revealzone(mylibrary) optionone name(choose card) target(<1>*[eldrazi]|reveal) transforms((,newability[all(other *|reveal) moveto(mylibrary) and!(shuffle)!],newability[moveto(myhand)])) optiononeend optiontwo name(shuffle) bottomoflibrary target(<1>*|reveal) and!( all(*|reveal) bottomoflibrary and!(shuffle)! )! optiontwoend revealend text=Devoid (This card has no color.) -- At the beginning of your upkeep, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." -- {1}{G}, Sacrifice From Beyond: Search your library for an Eldrazi card, reveal it, put it into your hand, then shuffle your library. @@ -49509,7 +49509,7 @@ type=Enchantment name=Grave Birthing target=opponent auto=ability$!moveto(exile) notatarget(*|mygraveyard)!$ targetedplayer -auto=token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! controller +auto=_ELDRAZISCION_ controller auto=draw:1 controller text=Devoid (This card has no color.) -- Target opponent exiles a card from his or her graveyard. You put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." -- Draw a card. mana={2}{B} @@ -51004,7 +51004,7 @@ type=Enchantment name=Growth Spasm aicode=activate moveTo(myBattlefield) and!(tap(noevent))! target(land[basic]|myLibrary) auto=name(search card) reveal:plibrarycount optionone name(choose card) target(land[basic]|reveal) moveto(ownerlibrary) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownerlibrary) and!( all(*|reveal) moveto(ownerlibrary) and!(shuffle)! )! optiontwoend afterrevealed all(tobecast|mylibrary) moveto(ownerlibrary) and!(moveTo(myBattlefield) and!(tap(noevent))!)! afterrevealedend revealend -auto=token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )! +auto=_ELDRAZISPAWN_ text=Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library. -- Put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." mana={2}{G} type=Sorcery @@ -57847,7 +57847,7 @@ type=Sorcery [/card] [card] name=Incubator Drone -auto=choice token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! controller +auto=choice _ELDRAZISCION_ controller text=Devoid (This card has no color.) -- When Incubator Drone enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." mana={3}{U} abilities=devoid @@ -64396,7 +64396,7 @@ toughness=5 [/card] [card] name=Kozilek's Predator -auto=token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )!*2 +auto=_ELDRAZISPAWN_*2 text=When Kozilek's Predator enters the battlefield, put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." mana={3}{G} type=Creature @@ -79261,7 +79261,7 @@ toughness=5 [/card] [card] name=Nest Invader -auto=token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )! +auto=_ELDRAZISPAWN_ text=When Nest Invader enters the battlefield, put a 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." mana={1}{G} type=Creature @@ -84950,8 +84950,8 @@ toughness=3 [/card] [card] name=Pawn of Ulamog -auto=_DIES_may token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )! -auto=@movedTo(other creature[-token]|graveyard) from(myBattlefield):may token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )! +auto=_DIES_may _ELDRAZISPAWN_ +auto=@movedTo(other creature[-token]|graveyard) from(myBattlefield):may _ELDRAZISPAWN_ text=Whenever Pawn of Ulamog or another nontoken creature you control dies, you may put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add 1 to your mana pool." mana={1}{B}{B} type=Creature @@ -91998,7 +91998,7 @@ type=Sorcery [card] name=Rapacious One abilities=trample -auto=@combatdamaged(player) from(this):token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )!*thatmuch +auto=@combatdamaged(player) from(this):_ELDRAZISPAWN_*thatmuch text=Trample -- Whenever Rapacious One deals combat damage to a player, put that many colorless 0/1 Eldrazi Spawn tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." mana={5}{R} type=Creature @@ -100189,7 +100189,7 @@ toughness=4 [/card] [card] name=Scion Summoner -auto=token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! +auto=_ELDRAZISCION_ text=Devoid (This card has no color.) -- When Scion Summoner enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool." ({C} represents colorless mana.) mana={2}{G} abilities=devoid @@ -105190,7 +105190,7 @@ subtype=Arcane [/card] [card] name=Sifter of Skulls -auto=@movedto(other creature[-token]|graveyard) from(mybattlefield):token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! controller +auto=@movedto(other creature[-token]|graveyard) from(mybattlefield):_ELDRAZISCION_ controller text=Devoid (This card has no color.) -- Whenever another nontoken creature you control dies, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool." ({C} represents colorless mana.) mana={3}{B} abilities=devoid @@ -106818,7 +106818,7 @@ toughness=3 [/card] [card] name=Skittering Invasion -auto=token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )!*5 +auto=_ELDRAZISPAWN_*5 text=Put five 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." mana={7} type=Tribal Sorcery @@ -110370,7 +110370,7 @@ toughness=4 [card] name=Spawning Bed auto={T}:add{1} -auto={6}{T}{S}:token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )!*3 +auto={6}{T}{S}:_ELDRAZISCION_*3 text={T}: Add {1} to your mana pool. -- {6}, {T}, Sacrifice Spawning Bed: Put three 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." type=Land [/card] @@ -110378,7 +110378,7 @@ type=Land name=Spawning Breath target=anytarget auto=damage:1 -auto=token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )! +auto=_ELDRAZISPAWN_ text=Spawning Breath deals 1 damage to target creature or player. -- Put a 0/1 colorless Eldrazi Spawn creature token with "Sacrifice this creature: Add {1} to your mana pool" onto the battlefield. mana={1}{R} type=Instant @@ -110411,7 +110411,7 @@ type=Land [card] name=Spawnsire of Ulamog auto=_ATTACKING_name(Annihilate) ability$!name(sacrifice a permanent) notatarget(<1>*|mybattlefield) sacrifice!$ opponent -auto={4}:token(Eldrazi Spawn,Creature Eldrazi Spawn,0/1) and!( transforms((,newability[{S}:Add{1}])) forever )!*2 +auto={4}:_ELDRAZISPAWN_*2 aicode=activate target(*[eldrazi]|mysideboard) castcard(normal) auto={20}:name(Cast Eldrazi's) reveal:type:*:mysideboard revealzone(mysideboard) optionone name(choose card) target(*[eldrazi]|reveal) moveto(ownersideboard) and!( becomes(tobecast) ueot )! optiononeend optiontwo name(put back) target(<1>*|reveal) moveto(ownersideboard) and!( all(*|reveal) moveto(ownersideboard) )! optiontwoend afterrevealed all(tobecast|mysideboard) moveto(ownersideboard) and!(activate castcard(normal))! afterrevealedend revealend text=Annihilator 1 (Whenever this creature attacks, defending player sacrifices a permanent.) -- {4}: Put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." -- {20}: Cast any number of Eldrazi cards you own from outside the game without paying their mana costs. @@ -117416,7 +117416,7 @@ type=Land name=Tajic, Blade of the Legion abilities=indestructible auto=_BATTALION_5/5 ueot -text=Battalion -- Whenever Tajic atttacks with at least two other creatures attack, Tajic gets +5/+5 until end of turn. +text=Battalion -- Whenever Tajic attacks with at least two other creatures attack, Tajic gets +5/+5 until end of turn. mana={2}{R}{W} type=Legendary Creature subtype=Human Soldier @@ -129117,7 +129117,7 @@ type=Instant [card] name=Vile Redeemer abilities=flash -autostack=if casted(this) then pay({c}) foreach(creature[fresh]|mygraveyard) token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! +autostack=if casted(this) then pay({c}) foreach(creature[fresh]|mygraveyard) _ELDRAZISCION_ text=Devoid (This card has no color.) -- Flash -- When you cast Vile Redeemer, you may pay {C}. If you do, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield for each nontoken creature that died under your control this turn. Those tokens have "Sacrifice this creature: Add {C} to your mana pool." mana={2}{G} abilities=devoid @@ -130117,7 +130117,7 @@ type=Sorcery [card] name=Void Attendant abilities=devoid -auto={1}{G}{s2g(*|opponentexile)}:token(Eldrazi Scion,Creature Eldrazi Scion,1/1) and!( transforms((,newability[{S}:Add{C}])) forever )! +auto={1}{G}{s2g(*|opponentexile)}:_ELDRAZISCION_ text=Devoid (This card has no color.) -- {1}{G}, Put a card an opponent owns from exile into that player's graveyard: Put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool." mana={2}{G} type=Creature diff --git a/projects/mtg/include/GameOptions.h b/projects/mtg/include/GameOptions.h index 97d8ff010..0d0010d9a 100644 --- a/projects/mtg/include/GameOptions.h +++ b/projects/mtg/include/GameOptions.h @@ -94,6 +94,7 @@ public: COMMANDER_MODE_UNLOCKED, LAST_NAMED, //Any option after this does not look up in optionNames. SET_UNLOCKS = LAST_NAMED + 1, //For sets. + EXIT, }; static int optionSet(int setID); diff --git a/projects/mtg/include/GameStateDeckViewer.h b/projects/mtg/include/GameStateDeckViewer.h index f8d0694a7..229841a28 100644 --- a/projects/mtg/include/GameStateDeckViewer.h +++ b/projects/mtg/include/GameStateDeckViewer.h @@ -78,7 +78,7 @@ private: DeckViewerStages mStage; JMusic * bgMusic; - InteractiveButton *toggleDeckButton, *sb_cmd_dng_Button, *sellCardButton, *statsPrevButton, *filterButton, *toggleViewButton, *toggleUpButton, *toggleDownButton, *toggleLeftButton, *toggleRightButton; + InteractiveButton *toggleDeckButton, *sb_cmd_dng_Button, *sellCardButton, *statsPrevButton, *filterButton, *menuButton, *toggleViewButton, *toggleUpButton, *toggleDownButton, *toggleLeftButton, *toggleRightButton; WGuiFilters * filterMenu; WSrcDeckViewer * source; diff --git a/projects/mtg/include/GameStateShop.h b/projects/mtg/include/GameStateShop.h index f6765ab74..b354af1fe 100644 --- a/projects/mtg/include/GameStateShop.h +++ b/projects/mtg/include/GameStateShop.h @@ -72,7 +72,7 @@ private: vector subBooster; MTGDeck * booster; bool bListCards; - InteractiveButton *cycleCardsButton, *showCardListButton; + InteractiveButton *cycleCardsButton, *showCardListButton, *shopMenuButton; bool disablePurchase, clearInput; void beginFilters(); diff --git a/projects/mtg/src/GameStateDeckViewer.cpp b/projects/mtg/src/GameStateDeckViewer.cpp index c8f7600c6..b87a7f68b 100644 --- a/projects/mtg/src/GameStateDeckViewer.cpp +++ b/projects/mtg/src/GameStateDeckViewer.cpp @@ -55,6 +55,7 @@ GameStateDeckViewer::GameStateDeckViewer(GameApp* parent) : sellCardButton = NEW InteractiveButton(NULL, kSellCardActionId, Fonts::MAIN_FONT, "Sell Card", (SCREEN_WIDTH_F/ 2) - 125, SCREEN_HEIGHT_F - 20, JGE_BTN_SEC); sb_cmd_dng_Button = NEW InteractiveButton(NULL, kSBActionId, Fonts::MAIN_FONT, "View SB", (SCREEN_WIDTH_F/ 2) - 35, SCREEN_HEIGHT_F - 20, JGE_BTN_CTRL); filterButton = NEW InteractiveButton(NULL, kFilterButtonId, Fonts::MAIN_FONT, "Filter", (SCREEN_WIDTH_F - 116), SCREEN_HEIGHT_F - 20, JGE_BTN_SOUND); + menuButton = NEW InteractiveButton(NULL, kMenuButtonId, Fonts::MAIN_FONT, "Menu", (SCREEN_WIDTH_F - 76), SCREEN_HEIGHT_F - 20, JGE_BTN_MENU); //TODO: Check if that button is available: toggleViewButton = NEW InteractiveButton(NULL, kSwitchViewButton, Fonts::MAIN_FONT, "Grid", (SCREEN_WIDTH_F/ 2) + 50, SCREEN_HEIGHT_F - 20, JGE_BTN_MAX); toggleUpButton = NEW InteractiveButton(NULL, kToggleUpButton, Fonts::MAIN_FONT, "UP", 10, 25, JGE_BTN_DOWN); @@ -578,6 +579,7 @@ bool GameStateDeckViewer::userPressedButton() || (sb_cmd_dng_Button->ButtonPressed()) || (statsPrevButton->ButtonPressed()) || (filterButton->ButtonPressed()) + || (menuButton->ButtonPressed()) || (toggleViewButton->ButtonPressed()) || (toggleUpButton->ButtonPressed()) || (toggleDownButton->ButtonPressed()) @@ -593,6 +595,7 @@ void GameStateDeckViewer::setButtonState(bool state) sb_cmd_dng_Button->setIsSelectionValid(state); statsPrevButton->setIsSelectionValid(state); filterButton->setIsSelectionValid(state); + menuButton->setIsSelectionValid(state); toggleViewButton->setIsSelectionValid(state); toggleUpButton->setIsSelectionValid(state); toggleDownButton->setIsSelectionValid(state); @@ -609,6 +612,7 @@ void GameStateDeckViewer::RenderButtons() sb_cmd_dng_Button->Render(); if(mView->deck() != mySideboard && mView->deck() != myCommandZone && mView->deck() != myDungeonZone) filterButton->Render(); + menuButton->Render(); statsPrevButton->Render(); toggleViewButton->Render(); toggleUpButton->Render(); diff --git a/projects/mtg/src/GameStateOptions.cpp b/projects/mtg/src/GameStateOptions.cpp index 9e2ce34fc..6beb10419 100644 --- a/projects/mtg/src/GameStateOptions.cpp +++ b/projects/mtg/src/GameStateOptions.cpp @@ -55,6 +55,8 @@ void GameStateOptions::Start() // optionsList->Add(NEW OptionInteger(Options::INTERRUPTMYABILITIES, "Interrupt my abilities")); //this is a dev option, not meant for standard play. uncomment if you need to see abilities you own hitting the stack. optionsList->Add(NEW OptionInteger(Options::INTERRUPT_SECONDMAIN, "Interrupt opponent's end of turn")); + optionsList->Add(NEW WGuiButton(NEW WGuiHeader("Back to Main Menu"), -102, GameStateOptionsConst::kBackToMainMenuID, this)); + optionsList->Add(NEW WGuiButton(NEW WGuiHeader("Save And Exit"), -102, GameStateOptionsConst::kSaveAndBackToMainMenuID, this)); optionsTabs = NEW WGuiTabMenu(); optionsTabs->Add(optionsList); diff --git a/projects/mtg/src/GameStateShop.cpp b/projects/mtg/src/GameStateShop.cpp index fb643da24..da539dac9 100644 --- a/projects/mtg/src/GameStateShop.cpp +++ b/projects/mtg/src/GameStateShop.cpp @@ -79,9 +79,10 @@ GameStateShop::GameStateShop(GameApp* parent) : kOtherCardsString = _(kOtherCardsString); kCreditsString = _(kCreditsString); - cycleCardsButton = NEW InteractiveButton(NULL, kCycleCardsButtonId, Fonts::MAIN_FONT, "New Cards", SCREEN_WIDTH_F - 80, SCREEN_HEIGHT_F - 20, JGE_BTN_PRI); + cycleCardsButton = NEW InteractiveButton(NULL, kCycleCardsButtonId, Fonts::MAIN_FONT, "New Cards", SCREEN_WIDTH_F - 110, SCREEN_HEIGHT_F - 20, JGE_BTN_PRI); - showCardListButton = NEW InteractiveButton(NULL, kShowCardListButtonId, Fonts::MAIN_FONT, "Show List", SCREEN_WIDTH_F - 150, SCREEN_HEIGHT_F - 20, JGE_BTN_SEC); + showCardListButton = NEW InteractiveButton(NULL, kShowCardListButtonId, Fonts::MAIN_FONT, "Show List", SCREEN_WIDTH_F - 170, SCREEN_HEIGHT_F - 20, JGE_BTN_SEC); + shopMenuButton = NEW InteractiveButton(NULL, kMenuButtonId, Fonts::MAIN_FONT, "Menu", SCREEN_WIDTH_F - 45, SCREEN_HEIGHT_F - 20, JGE_BTN_MENU); disablePurchase = false; clearInput = false; } @@ -90,6 +91,7 @@ GameStateShop::~GameStateShop() { SAFE_DELETE( cycleCardsButton ); SAFE_DELETE( showCardListButton ); + SAFE_DELETE( shopMenuButton ); End(); } @@ -642,9 +644,9 @@ void GameStateShop::Update(float dt) else if (shopMenu) { #if defined (IOS) || defined (ANDROID) - if ((cycleCardsButton->ButtonPressed() || showCardListButton->ButtonPressed())) + if ((cycleCardsButton->ButtonPressed() || showCardListButton->ButtonPressed() || shopMenuButton->ButtonPressed())) #else - if ( (btn == JGE_BTN_OK) && (cycleCardsButton->ButtonPressed() || showCardListButton->ButtonPressed())) + if ( (btn == JGE_BTN_OK) && (cycleCardsButton->ButtonPressed() || showCardListButton->ButtonPressed() || shopMenuButton->ButtonPressed())) #endif { disablePurchase = true; @@ -691,12 +693,14 @@ void GameStateShop::enableButtons() { cycleCardsButton->setIsSelectionValid(true); showCardListButton->setIsSelectionValid(true); + shopMenuButton->setIsSelectionValid(true); } void GameStateShop::renderButtons() { cycleCardsButton->Render(); showCardListButton->Render(); + shopMenuButton->Render(); } void GameStateShop::Render()