From a371cef2792b5e61f6cc4d75444fdd3db14c8436 Mon Sep 17 00:00:00 2001 From: Eduardo MG Date: Mon, 26 May 2025 18:46:55 -0600 Subject: [PATCH] Blood macros, more kindred changes Created a macros for blood token, tribal to kindred changes, typo in background on various files, Bug fixes: Fiendslayer Paladin Dire Fleet Poisoner Shapers of Nature Raptor Hatchling Emiel the Blessed Path of Discovery Departed Deckhand --- .../mtg/bin/Res/sets/primitives/_macros.txt | 3 + .../bin/Res/sets/primitives/borderline.txt | 211 ++++++++---------- projects/mtg/bin/Res/sets/primitives/mtg.txt | 39 ++-- .../bin/Res/sets/primitives/planeswalkers.txt | 2 +- projects/mtg/src/Credits.cpp | 2 +- projects/mtg/src/GameStateAwards.cpp | 4 +- projects/mtg/src/GameStateDeckViewer.cpp | 4 +- projects/mtg/src/GameStateDuel.cpp | 4 +- projects/mtg/src/GameStateOptions.cpp | 8 +- projects/mtg/src/GuiBackground.cpp | 2 +- projects/mtg/src/MTGDefinitions.cpp | 2 +- projects/mtg/src/Rules.cpp | 4 +- projects/mtg/src/Subtypes.cpp | 2 +- 13 files changed, 135 insertions(+), 152 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/_macros.txt b/projects/mtg/bin/Res/sets/primitives/_macros.txt index ae39559a7..ebfb65ece 100644 --- a/projects/mtg/bin/Res/sets/primitives/_macros.txt +++ b/projects/mtg/bin/Res/sets/primitives/_macros.txt @@ -374,6 +374,9 @@ # Zombie Token #AUTO_DEFINE _ZOMBIETOKEN_ create(zombie:creature zombie:2/2:black) +# Blood Token +#AUTO_DEFINE _BLOOD_ token(Blood^Blood Artifact^0/0) and!( transforms((,newability[{1}{T}{D(*|myhand)}{S}:draw:1])) forever )! + # Clue Token #AUTO_DEFINE _CLUE_ token(Clue^Clue Artifact^0/0) and!( transforms((,newability[{2}{S}:draw:1])) forever )! diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 63336e4de..8bed29903 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -193,10 +193,11 @@ auto=fizzle auto=if cantargetcard(*[instant]|*) then all(*[instant]|myhand) counter(0/0.1.PerpetualCostLess) notrg auto=if cantargetcard(*[sorcery]|*) then all(*[sorcery]|myhand) counter(0/0.1.PerpetualCostLess) notrg auto=if cantargetcard(*[artifact]|*) then all(*[artifact]|myhand) counter(0/0.1.PerpetualCostLess) notrg +auto=if cantargetcard(*[battle]|*) then all(*[battle]|myhand) counter(0/0.1.PerpetualCostLess) notrg auto=if cantargetcard(*[creature]|*) then all(*[creature]|myhand) counter(0/0.1.PerpetualCostLess) notrg auto=if cantargetcard(*[planeswalker]|*) then all(*[planeswalker]|myhand) counter(0/0.1.PerpetualCostLess) notrg auto=if cantargetcard(*[enchantment]|*) then all(*[enchantment]|myhand) counter(0/0.1.PerpetualCostLess) notrg -auto=if cantargetcard(*[tribal]|*) then all(*[tribal]|myhand) counter(0/0.1.PerpetualCostLess) notrg +auto=if cantargetcard(*[kindred]|*) then all(*[kindred]|myhand) counter(0/0.1.PerpetualCostLess) notrg auto=emblem transforms((,newability[lord(*[counter{0/0.1.PerpetualCostLess}]|myzones) changecost(colorless:-1) forcedalive])) forever dontremove text=Counter target spell. Cards in your hand that share a card type with that spell perpetually gain "This spell costs {1} less to cast." mana={1}{U}{U} @@ -2304,7 +2305,7 @@ anyzone={0}:doubleside(Hakka, Whispering Raven) autostack=if paid(alternative) then name(Hakka, Whispering Raven) name(Hakka, Whispering Raven) flip(Hakka, Whispering Raven) forcetype(Legendary Creature) auto=this(variable{isflipped}<1) foreach(*[foretold]|myexile) 1/1 auto=this(variable{isflipped}<1) foreach(*|myhand) 1/1 -auto=@each my end restriction{compare(isflipped)~equalto~0}:transforms((,newability[choice name(Creature) reveal:2 optionone name(Get Creature) target(<2>Creature|reveal) moveto(hand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Artifact) reveal:2 optionone name(Get Artifact) target(<2>artifact|reveal) moveto(hand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Enchantment) reveal:2 optionone name(Get Enchantment) target(<2>enchantment|reveal) moveto(hand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Instant) reveal:2 optionone name(Get Instant) target(<2>instant|reveal) moveto(hand) optiononeend optiontwo name(put in grave) name(Bottom of library) bottomoflibrary optiontwoend revealend],newability[choice name(Land) reveal:2 optionone name(Get Land) target(<2>land|reveal) moveto(hand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Planeswalker) reveal:2 optionone name(Get Planeswalker) target(<2>planeswalker|reveal) moveto(hand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Sorcery) reveal:2 optionone name(Get Sorcery) target(<2>sorcery|reveal) moveto(hand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Tribal) reveal:2 optionone name(Get Tribal) target(<2>tribal|reveal) moveto(hand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend])) oneshot +auto=@each my end restriction{compare(isflipped)~equalto~0}:transforms((,newability[choice name(Creature) reveal:2 optionone name(Get Creature) target(<2>Creature|reveal) moveto(hand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Artifact) reveal:2 optionone name(Get Artifact) target(<2>artifact|reveal) moveto(hand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Enchantment) reveal:2 optionone name(Get Enchantment) target(<2>enchantment|reveal) moveto(hand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Instant) reveal:2 optionone name(Get Instant) target(<2>instant|reveal) moveto(hand) optiononeend optiontwo name(put in grave) name(Bottom of library) bottomoflibrary optiontwoend revealend],newability[choice name(Land) reveal:2 optionone name(Get Land) target(<2>land|reveal) moveto(hand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Planeswalker) reveal:2 optionone name(Get Planeswalker) target(<2>planeswalker|reveal) moveto(hand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(Sorcery) reveal:2 optionone name(Get Sorcery) target(<2>sorcery|reveal) moveto(hand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(kindred) reveal:2 optionone name(Get kindred) target(<2>kindred|reveal) moveto(hand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend],newability[choice name(battle) reveal:2 optionone name(Get battle) target(<2>battle|reveal) moveto(hand) optiononeend optiontwo name(Bottom of library) target(<2>*|reveal) bottomoflibrary optiontwoend revealend])) oneshot aicode=activate transforms((,newability[if type(*[creature;zpos<=2]|mylibrary)~equalto~0 then all(*[zpos<=2]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! else all(*[creature;zpos<=2]|mylibrary) moveto(hand) and!( all(*[-creature;zpos<=2]|mylibrary) moveto(myreveal) and!( bottomoflibrary )! )!])) oneshot text=Alrund gets +1/+1 for each card in your hand and each foretold card you own in exile. -- At the beginning of your end step, choose a card type, then reveal the top two cards of your library. Put all cards of the chosen type into your hand and the rest on the bottom of your library in any order. // {1}{U} Hakka, Whispering Raven mana={3}{U}{U} @@ -3459,8 +3460,8 @@ toughness=3 [/card] [card] name=Anje, Maid of Dishonor -auto=name(Create Blood) token(Blood) -auto=@movedto(vampire|mybattlefield) turnlimited:if cantargetcard(*[-fresh]|*) then name(Create Blood) name(Create Blood) token(Blood) +auto=name(Create Blood) _BLOOD_ +auto=@movedto(vampire|mybattlefield) turnlimited:if cantargetcard(*[-fresh]|*) then name(Create Blood) name(Create Blood) _BLOOD_ auto={2}{S(other *[creature;blood]|mybattlefield)}:name(Opponent looses life) life:-2 opponent && life:2 controller text=Whenever Anje, Maid of Dishonor and/or one or more other Vampires enter the battlefield under your control, create a Blood token. This ability triggers only once per turn. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- {2}, Sacrifice another creature or a Blood token: Each opponent loses 2 life and you gain 2 life. mana={2}{B}{R} @@ -5406,7 +5407,7 @@ subtype=Trap [/card] [card] name=Arterial Alchemy -auto=token(Blood) +auto=_BLOOD_ auto=lord(blood|mybattlefield) transforms((Equipment,newability[{2}:equip],newability[teach(creature) 2/0])) text=When Arterial Alchemy enters, create a Blood token for each opponent you have. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- Blood tokens you control are Equipment in addition to their other types and have "Equipped creature gets +2/+0" and equip {2} mana={2}{R} @@ -9238,7 +9239,7 @@ toughness=6 [card] name=Belligerent Guest abilities=trample -auto=@combatdamaged(player) from(this):name(Create Blood) token(Blood) +auto=@combatdamaged(player) from(this):name(Create Blood) _BLOOD_ text=Trample -- Whenever Belligerent Guest deals combat damage to a player, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") mana={2}{R} type=Creature @@ -11350,7 +11351,7 @@ type=Sorcery [/card] [card] name=Blood Fountain -auto=token(Blood) +auto=_BLOOD_ auto={3}{B}{T}{S}:name(Return 2 creatures) target(creature|mygraveyard) moveto(hand) text=When Blood Fountain enters, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- {3}{B}, {T}, Sacrifice Blood Fountain: Return up to two target creature cards from your graveyard to your hand. mana={B} @@ -11409,7 +11410,7 @@ type=Instant [card] name=Blood Petal Celebrant auto=this(attacking) first strike -auto=_DIES_name(Create Blood) token(Blood) +auto=_DIES_name(Create Blood) _BLOOD_ text=Blood Petal Celebrant has first strike as long as it's attacking. -- When Blood Petal Celebrant dies, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") mana={1}{R} type=Creature @@ -11438,7 +11439,7 @@ toughness=2 [/card] [card] name=Blood Servitor -auto=token(Blood) +auto=_BLOOD_ text=When Blood Servitor enters, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") mana={3} type=Artifact Creature @@ -11590,7 +11591,7 @@ toughness=1 [card] name=Bloodcrazed Socialite abilities=menace -auto=token(Blood) +auto=_BLOOD_ auto=_ATTACKING_may name(Sacrifice blood) notaTarget(blood|mybattlefield) sacrifice && all(this) 2/2 ueot text=Menace -- When Bloodcrazed Socialite enters, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- Whenever Bloodcrazed Socialite attacks, you may sacrifice a Blood token. If you do, it gets +2/+2 until end of turn. mana={3}{B} @@ -11739,7 +11740,7 @@ type=Artifact [card] name=Bloodsoaked Reveler backside=Restless Bloodseeker -auto=@each my end restriction{compare(lifegain)~morethan~0}:name(Create Blood) token(Blood) +auto=@each my end restriction{compare(lifegain)~morethan~0}:name(Create Blood) _BLOOD_ auto={4}{B}:name(Opponent looses 2 life) life:-2 opponent && life:2 controller text=At the beginning of your end step, if you gained life this turn, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- {4}{B}: Each opponent loses 2 life and you gain 2 life. // Restless Bloodseeker color=black @@ -11878,7 +11879,7 @@ toughness=4 [/card] [card] name=Bloodtithe Harvester -auto=token(Blood) +auto=_BLOOD_ auto={T}{S}:name(Creature gets -X/-X) target(creature) -twicetype:blood:mybattlefield/-twicetype:blood:mybattlefield ueot asSorcery text=When Bloodtithe Harvester enters, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- {T}, Sacrifice Bloodtithe Harvester: Target creature gets -X/-X until end of turn, where X is twice the number of Blood tokens you control. Activate only as a sorcery. mana={B}{R} @@ -11902,7 +11903,7 @@ toughness=2 [card] name=Bloodvial Purveyor abilities=flying,trample -auto=@movedto(*|opponentstack):name(Create Blood) token(Blood) opponent +auto=@movedto(*|opponentstack):name(Create Blood) _BLOOD_ opponent auto=_ATTACKING_name(Increase power) type:blood:opponentbattlefield/0 ueot text=Flying, trample -- Whenever an opponent casts a spell, that player creates a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- Whenever Bloodvial Purveyor attacks, it gets +1/+0 until end of turn for each Blood token defending player controls. mana={2}{B}{B} @@ -11927,7 +11928,7 @@ toughness=2 name=Bloody Betrayal target=creature auto=moveto(mybattlefield) and!(transforms((,newability[@next end:moveTo(previousbattlefield)],newability[untap],haste)) ueot)! -auto=token(Blood) +auto=_BLOOD_ text=Gain control of target creature until end of turn. Untap that creature. It gains haste until end of turn. Create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") mana={2}{R} type=Sorcery @@ -17462,7 +17463,8 @@ auto=aslongas(instant[counter{0/0.1.IlluminatorExiled}]|exile) aslongas(instant[ auto=aslongas(sorcery[counter{0/0.1.IlluminatorExiled}]|exile) aslongas(sorcery[zpos=1]|mylibrary) {C(0/0,-1,IlluminatorEffect)}:name(Cast sorcery) name(Cast sorcery) name(Cast sorcery) all(sorcery[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[phaseaction[end once checkex] moveto(mylibrary)])) ueot )! limit:1 auto=aslongas(enchantment[counter{0/0.1.IlluminatorExiled}]|exile) aslongas(enchantment[zpos=1]|mylibrary) {C(0/0,-1,IlluminatorEffect)}:name(Cast enchantment) name(Cast enchantment) name(Cast enchantment) all(enchantment[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[phaseaction[end once checkex] moveto(mylibrary)])) ueot )! limit:1 auto=aslongas(artifact[counter{0/0.1.IlluminatorExiled}]|exile) aslongas(artifact[zpos=1]|mylibrary) {C(0/0,-1,IlluminatorEffect)}:name(Cast artifact) name(Cast artifact) name(Cast artifact) all(artifact[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[phaseaction[end once checkex] moveto(mylibrary)])) ueot )! limit:1 -auto=aslongas(tribal[counter{0/0.1.IlluminatorExiled}]|exile) aslongas(tribal[zpos=1]|mylibrary) {C(0/0,-1,IlluminatorEffect)}:name(Cast tribal) name(Cast tribal) name(Cast tribal) all(tribal[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[phaseaction[end once checkex] moveto(mylibrary)])) ueot )! limit:1 +auto=aslongas(battle[counter{0/0.1.IlluminatorExiled}]|exile) aslongas(battle[zpos=1]|mylibrary) {C(0/0,-1,IlluminatorEffect)}:name(Cast battle) name(Cast battle) name(Cast battle) all(battle[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[phaseaction[end once checkex] moveto(mylibrary)])) ueot )! limit:1 +auto=aslongas(kindred[counter{0/0.1.IlluminatorExiled}]|exile) aslongas(kindred[zpos=1]|mylibrary) {C(0/0,-1,IlluminatorEffect)}:name(Cast kindred) name(Cast kindred) name(Cast kindred) all(kindred[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[phaseaction[end once checkex] moveto(mylibrary)])) ueot )! limit:1 text=Flying -- Whenever Cemetery Illuminator enters or attacks, exile a card from a graveyard. -- You may look at the top card of your library any time. -- Once each turn, you may cast a spell from the top of your library if it shares a card type with a card exiled with Cemetery Illuminator. mana={1}{U}{U} type=Creature @@ -17493,7 +17495,7 @@ auto=aslongas(enchantment[counter{0/0.1.CemeteryExiled}]|exile) lord(enchantment auto=aslongas(artifact[counter{0/0.1.CemeteryExiled}]|exile) lord(artifact|mycastingzone) changecost(colorless:-1) >0 auto=aslongas(sorcery[counter{0/0.1.CemeteryExiled}]|exile) lord(sorcery|mycastingzone) changecost(colorless:-1) >0 auto=aslongas(instant[counter{0/0.1.CemeteryExiled}]|exile) lord(instant|mycastingzone) changecost(colorless:-1) >0 -auto=aslongas(tribal[counter{0/0.1.CemeteryExiled}]|exile) lord(tribal|mycastingzone) changecost(colorless:-1) >0 +auto=aslongas(kindred[counter{0/0.1.CemeteryExiled}]|exile) lord(kindred|mycastingzone) changecost(colorless:-1) >0 text=Vigilance -- Whenever Cemetery Prowler enters or attacks, exile a card from a graveyard. -- Spells you cast cost {1} less to cast for each card type they share with cards exiled with Cemetery Prowler. mana={1}{G}{G} type=Creature @@ -17609,7 +17611,7 @@ subtype=Equipment [/card] [card] name=Ceremonial Knife -auto=teach(creature) transforms((,newability[_ATTACKING_name(Create blood) token(Blood)])) +auto=teach(creature) transforms((,newability[_ATTACKING_name(Create blood) _BLOOD_])) auto=teach(creature) 1/0 auto={2}:equip text=Equipped creature gets +1/+0 and has "Whenever this creature deals combat damage, create a Blood token." (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- Equip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.) @@ -19447,7 +19449,7 @@ toughness=8 [card] name=Citystalker Connoisseur abilities=deathtouch -auto=token(Blood) +auto=_BLOOD_ auto=ability$!name(Discard a card) name(Discard a card) target(*[manacost=convertedcost:highest:*:myhand]|myhand) reject!$ opponent text=Deathtouch -- When Citystalker Connoisseur enters, target opponent discards a card with the greatest mana value among cards in their hand. Create a Blood token. mana={3}{B} @@ -22578,8 +22580,8 @@ auto=if type(artifact|opponentstack)~morethan~0 then choice name(Counter opponen auto=if type(artifact|mystack)~morethan~0 then choice name(Counter your artifact) name(Counter your artifact) target(artifact|mystack) transforms((,newability[fizzle],newability[ability$!name(Cast an artifact from hand) name(Cast an artifact from hand) target(artifact|myhand) activate castcard(normal)!$ controller])) oneshot auto=if type(enchantment|opponentstack)~morethan~0 then choice name(Counter opponent enchantment) name(Counter opponent enchantment) target(enchantment|opponentstack) transforms((,newability[fizzle],newability[ability$!name(Cast an enchantment from hand) name(Cast an enchantment from hand) target(enchantment|myhand) activate castcard(normal)!$ opponent])) oneshot auto=if type(enchantment|mystack)~morethan~0 then choice name(Counter your enchantment) name(Counter your enchantment) target(enchantment|mystack) transforms((,newability[fizzle],newability[ability$!name(Cast an enchantment from hand) name(Cast an enchantment from hand) target(enchantment|myhand) activate castcard(normal)!$ controller])) oneshot -auto=if type(tribal|opponentstack)~morethan~0 then choice name(Counter opponent tribal) name(Counter opponent tribal) target(tribal|opponentstack) transforms((,newability[fizzle],newability[ability$!name(Cast a tribal from hand) name(Cast a tribal from hand) target(tribal|myhand) activate castcard(normal)!$ opponent])) oneshot -auto=if type(tribal|mystack)~morethan~0 then choice name(Counter your tribal) name(Counter your tribal) target(tribal|mystack) transforms((,newability[fizzle],newability[ability$!name(Cast a tribal from hand) name(Cast a tribal from hand) target(tribal|myhand) activate castcard(normal)!$ controller])) oneshot +auto=if type(kindred|opponentstack)~morethan~0 then choice name(Counter opponent kindred) name(Counter opponent kindred) target(kindred|opponentstack) transforms((,newability[fizzle],newability[ability$!name(Cast a kindred from hand) name(Cast a kindred from hand) target(kindred|myhand) activate castcard(normal)!$ opponent])) oneshot +auto=if type(kindred|mystack)~morethan~0 then choice name(Counter your kindred) name(Counter your kindred) target(kindred|mystack) transforms((,newability[fizzle],newability[ability$!name(Cast a kindred from hand) name(Cast a kindred from hand) target(kindred|myhand) activate castcard(normal)!$ controller])) oneshot text=Counter target spell. You may cast a nonland card in your hand that shares a card type with that spell without paying its mana cost. mana={4}{U}{U} type=Instant @@ -27262,20 +27264,8 @@ mana={1}{U} type=Instant [/card] [card] -name=Departed -auto=@targeted(this):sacrifice -auto=cantbeblockedby(creature[-spirit]) -auto={3}{U}:target(other creature|myBattlefield) cantbeblockedby(creature[-spirit]) -text=When Departed Deckhand becomes the target of a spell, sacrifice it. -- Departed Deckhand can't be blocked except by Spirits. -- {3}{U}: Another target creature you control can't be blocked this turn except by Spirits. -mana={1}{U} -type=Creature -subtype=Spirit Pirate -power=2 -toughness=2 -[/card] -[card] name=Departed Deckhand -auto=@targeted(this):sacrifice +auto=@targeted(this) from(*[instant;sorcery;aura]):sacrifice auto=cantbeblockedby(creature[-spirit]) auto={3}{U}:target(creature|mybattlefield) transforms((,newability[cantbeblockedby(creature[-spirit])])) ueot text=When Departed Deckhand becomes the target of a spell, sacrifice it. -- Departed Deckhand can't be blocked except by Spirits. -- {3}{U}: Another target creature you control can't be blocked this turn except by Spirits. @@ -28356,7 +28346,7 @@ toughness=2 [card] name=Dire Fleet Poisoner abilities=flash, deathtouch -auto=target(pirate[attacking]|myBattlefield) 1/1 && deathtouch ueot +auto=target(pirate[attacking]|myBattlefield) transforms((,newability[1/1],deathtouch)) ueot text=Flash -- Deathtouch -- When Dire Fleet Poisoner enters, target attacking Pirate you control gets +1/+1 and gains deathtouch until end of turn. mana={1}{B} type=Creature @@ -33033,16 +33023,6 @@ power=3 toughness=3 [/card] [card] -name=Eldrazi Mimic -auto=@movedto(other creature[colorless]|mybattlefield):all(trigger[to]) may becomes(storedpower/storedtoughness) ueot -text=Whenever another colorless creature enters under your control, you may change Eldrazi Mimic's base power and toughness to that creature's power and toughness until end of turn. -mana={2} -type=Creature -subtype=Eldrazi -power=2 -toughness=1 -[/card] -[card] name=Eldrazi Ravager auto=_ATTACKING_name(Annihilate) ability$!name(sacrifice a permanent) notaTarget(<1>*|mybattlefield) sacrifice!$ opponent autograveyard={S(Eldrazi|mybattlefield)}{S(Eldrazi|mybattlefield)}:moveto(hand) @@ -34081,8 +34061,8 @@ type=Land [card] name=Emiel the Blessed auto={3}:name(Move to exile) target(other creature|mybattlefield) moveto(exile) and!(moveto(ownerbattlefield))! -auto=@movedto(other creature[-unicorn]|mybattlefield):all(trigger[to]) pay[[{GW}]] counter(1/1) -auto=@movedto(other creature[unicorn]|mybattlefield):all(trigger[to]) pay[[{GW}]] counter(1/1,2) +auto=@movedto(other creature[-unicorn]|mybattlefield):all(trigger[to]) transforms((,newability[pay[[{GW}]] counter(1/1)])) +auto=@movedto(other creature[unicorn]|mybattlefield):all(trigger[to]) transforms((,newability[pay[[{GW}]] counter(1/1.2)])) text={3}: Exile another target creature you control, then return it to the battlefield under its owner's control. -- Whenever another creature enters under your control, you may pay {G} or {W}. If you do, put a +1/+1 counter on it. If it's a Unicorn, put two +1/+1 counters on it instead. ( {G} or {W} can be paid with either {G} or {W}.) mana={2}{W}{W} type=Legendary Creature @@ -37057,7 +37037,7 @@ toughness=2 [card] name=Exsanguinator Cavalry abilities=lifelink,menace -auto=@combatdamaged(player) from(Knight|myBattlefield):all(trigger[from]) counter(1/1) && create(blood) +auto=@combatdamaged(player) from(Knight|myBattlefield):all(trigger[from]) counter(1/1) && _BLOOD_ text=Menace, lifelink -- Whenever a Knight you control deals combat damage to a player, put a +1/+1 counter on that creature and create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") mana={2}{B} type=Creature @@ -37766,7 +37746,7 @@ toughness=3 [card] name=Falkenrath Celebrants abilities=menace -auto=token(Blood)*2 +auto=_BLOOD_*2 text=Menace (This creature can't be blocked except by two or more creatures.) -- When Falkenrath Celebrants enters, create two Blood tokens. (They're artifacts with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") mana={4}{R} type=Creature @@ -37777,7 +37757,7 @@ toughness=4 [card] name=Falkenrath Forebear abilities=cantblock,flying -auto=@combatdamaged(player) from(this):name(Create Blood) token(Blood) +auto=@combatdamaged(player) from(this):name(Create Blood) _BLOOD_ autograveyard={B}{S(blood|mybattlefield)}{S(blood|mybattlefield)}:name(Return to battlefield) moveto(mybattlefield) text=Flying -- Falkenrath Forebear can't block. -- Whenever Falkenrath Forebear deals combat damage to a player, create a Blood token. -- {B}, Sacrifice two Blood tokens: Return Falkenrath Forebear from your graveyard to the battlefield. mana={2}{B} @@ -43594,7 +43574,7 @@ toughness=4 name=Gandalf, Westward Voyager auto=@movedTo(creature[manacost>=5]|mystack):name(Reveal top card) all(*[zpos=1]|opponentlibrary) name(Reveal top card) moveto(hand) and!( transforms((,newability[choice name(Don't cast copy) moveto(opponentlibrary) and!( draw:1 controller)!],newability[if cantargetcard(*[creature]|*) then choice name(Cast copy) name(Cast copy) moveto(opponentlibrary) and!( activate castcard(copied) and!( draw:1 opponent )! )!])) oneshot )! auto=@movedTo(planeswalker[manacost>=5]|mystack):name(Reveal top card) all(*[zpos=1]|opponentlibrary) name(Reveal top card) moveto(hand) and!( transforms((,newability[choice name(Don't cast copy) moveto(opponentlibrary) and!( draw:1 controller)!],newability[if cantargetcard(*[planeswalker]|*) then choice name(Cast copy) name(Cast copy) moveto(opponentlibrary) and!( activate castcard(copied) and!( draw:1 opponent )! )!])) oneshot )! -auto=@movedTo(tribal[manacost>=5]|mystack):name(Reveal top card) all(*[zpos=1]|opponentlibrary) name(Reveal top card) moveto(hand) and!( transforms((,newability[choice name(Don't cast copy) moveto(opponentlibrary) and!( draw:1 controller)!],newability[if cantargetcard(*[tribal]|*) then choice name(Cast copy) name(Cast copy) moveto(opponentlibrary) and!( activate castcard(copied) and!( draw:1 opponent )! )!])) oneshot )! +auto=@movedTo(kindred[manacost>=5]|mystack):name(Reveal top card) all(*[zpos=1]|opponentlibrary) name(Reveal top card) moveto(hand) and!( transforms((,newability[choice name(Don't cast copy) moveto(opponentlibrary) and!( draw:1 controller)!],newability[if cantargetcard(*[kindred]|*) then choice name(Cast copy) name(Cast copy) moveto(opponentlibrary) and!( activate castcard(copied) and!( draw:1 opponent )! )!])) oneshot )! auto=@movedTo(instant[manacost>=5]|mystack):name(Reveal top card) all(*[zpos=1]|opponentlibrary) name(Reveal top card) moveto(hand) and!( transforms((,newability[choice name(Don't cast copy) moveto(opponentlibrary) and!( draw:1 controller)!],newability[if cantargetcard(*[instant]|*) then choice name(Cast copy) name(Cast copy) moveto(opponentlibrary) and!( activate castcard(copied) and!( draw:1 opponent )! )!])) oneshot )! auto=@movedTo(sorcery[manacost>=5]|mystack):name(Reveal top card) all(*[zpos=1]|opponentlibrary) name(Reveal top card) moveto(hand) and!( transforms((,newability[choice name(Don't cast copy) moveto(opponentlibrary) and!( draw:1 controller)!],newability[if cantargetcard(*[sorcery]|*) then choice name(Cast copy) name(Cast copy) moveto(opponentlibrary) and!( activate castcard(copied) and!( draw:1 opponent )! )!])) oneshot )! auto=@movedTo(enchantment[manacost>=5]|mystack):name(Reveal top card) all(*[zpos=1]|opponentlibrary) name(Reveal top card) moveto(hand) and!( transforms((,newability[choice name(Don't cast copy) moveto(opponentlibrary) and!( draw:1 controller)!],newability[if cantargetcard(*[enchantment]|*) then choice name(Cast copy) name(Cast copy) moveto(opponentlibrary) and!( activate castcard(copied) and!( draw:1 opponent )! )!])) oneshot )! @@ -45853,7 +45833,7 @@ type=Artifact [/card] [card] name=Glass-Cast Heart -auto=@combat(attacking) source(vampire|mybattlefield):name(Create blood) token(Blood) +auto=@combat(attacking) source(vampire|mybattlefield):name(Create blood) _BLOOD_ auto={B}{T}{L:1}:name(Create vampire) token(Vampire,Creature Vampire,1/1,black,lifelink) auto={B}{B}{T}{S}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}{S(blood|mybattlefield)}:name(Opponent looses life) lifeleech:-13 opponent text=Whenever one or more Vampires you control attack, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- {B}, {T}, Pay 1 life: Create a 1/1 white and black Vampire creature token with lifelink. -- {B}{B, {T}, Sacrifice Glass-Cast Heart and thirteen Blood tokens: Each opponent loses 13 life and you gain 13 life. @@ -46490,7 +46470,7 @@ toughness=5 [/card] [card] name=Gluttonous Guest -auto=name(Create a blood) token(Blood) +auto=name(Create a blood) _BLOOD_ auto=@sacrificed(blood|mybattlefield):name(Gain 1 life) life:1 controller text=When Gluttonous Guest enters, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- Whenever you sacrifice a Blood token, you gain 1 life. mana={2}{B} @@ -49306,7 +49286,7 @@ toughness=1 name=Grisly Ritual target=creature,planeswalker auto=destroy -auto=token(Blood)*2 +auto=_BLOOD_*2 text=Destroy target creature or planeswalker. Create two Blood tokens. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") mana={5}{B} type=Sorcery @@ -53718,8 +53698,8 @@ auto=aslongas(planeswalker|myhand) {2}{E(planeswalker|myhand)}:name(Exile a plan auto=aslongas(land|myhand) {2}{E(land|myhand)}:name(Exile a land) name(Exile a land) ability$!name(Return a land) name(Return a land) target(land|mygraveyard) moveto(hand)!$ controller auto=aslongas(instant|myhand) {2}{E(instant|myhand)}:name(Exile an instant) name(Exile an instant) ability$!name(Return an instant) name(Return an instant) target(instant|mygraveyard) moveto(hand)!$ controller auto=aslongas(sorcery|myhand) {2}{E(sorcery|myhand)}:name(Exile a sorcery) name(Exile a sorcery) ability$!name(Return a sorcery) name(Return a sorcery) target(sorcery|mygraveyard) moveto(hand)!$ controller -auto=aslongas(tribal|myhand) {2}{E(tribal|myhand)}:name(Exile a tribal) name(Exile a tribal) ability$!name(Return a tribal) name(Return a tribal) target(tribal|mygraveyard) moveto(hand)!$ controller -text={2}, Exile a card from your hand: Return target card from your graveyard to your hand if it shares a card type with the card exiled this way. (Artifact, creature, enchantment, instant, land, planeswalker, sorcery, and tribal are card types.) +auto=aslongas(kindred|myhand) {2}{E(kindred|myhand)}:name(Exile a kindred) name(Exile a kindred) ability$!name(Return a kindred) name(Return a kindred) target(kindred|mygraveyard) moveto(hand)!$ controller +text={2}, Exile a card from your hand: Return target card from your graveyard to your hand if it shares a card type with the card exiled this way. (Artifact, battle, creature, enchantment, kindred, instant, land, planeswalker, and sorcery are card types.) mana={1}{G}{G} type=Enchantment [/card] @@ -58076,7 +58056,7 @@ toughness=3 [/card] [card] name=Intuition -auto=name(Search first card) target(*|mylibrary) moveto(hand) and!( transforms((tobeint,newability[name(Search second card) target(*|mylibrary) moveto(hand) and!( transforms((tobeint,newability[name(Search third card) target(*|mylibrary) moveto(hand) and!( transforms((tobeint,newability[shuffle],newability[ability$!name(Put in graveyard) name(Put in graveyard) target(tobeint|opponenthand) moveto(opponentgraveyard) and!( all(other tobeint|opponenthand) losesatype(tobeint) )!!$ opponent])) ueot )!])) ueot )!])) ueot )! +auto=name(Search first card) target(*|mylibrary) moveto(hand) and!( transforms((tobeint,newability[name(Search second card) target(*|mylibrary) moveto(hand) and!( transforms((tobeint,newability[name(Search third card) target(*|mylibrary) moveto(hand) and!( transforms((tobeint,newability[shuffle],newability[ability$!name(Put in hand) name(Put in hand) target(tobeint|opponenthand) moveto(opponenthand) and!( all(other tobeint|opponenthand) losesatype(tobeint) )!!$ opponent])) ueot )!])) ueot )!])) ueot )! text=Search your library for any three cards and reveal them. Target opponent chooses one. Put that card into your hand and the rest into your graveyard. Then shuffle. mana={2}{U} type=Instant @@ -58764,7 +58744,7 @@ type=Enchantment [card] name=Invoke Calamity abilities=exiledeath -auto=may name(Choose instants or sorceries) target(*[-creature&-artifact&-battle&-planeswalker&-enchantment&-tribal&manacost<=6]|mygraveyard,myhand) activate castcard(normal) and!( transforms((,newability[gainedexiledeath])) ueot )! +auto=may name(Choose instants or sorceries) target(*[-creature&-artifact&-battle&-planeswalker&-enchantment&-kindred&manacost<=6]|mygraveyard,myhand) activate castcard(normal) and!( transforms((,newability[gainedexiledeath])) ueot )! text=You may cast up to two instant and/or sorcery spells with total mana value 6 or less from your graveyard and/or hand without paying their mana costs. If those spells would be put into your graveyard, exile them instead. Exile Invoke Calamity. mana={1}{R}{R}{R}{R} type=Instant @@ -61204,7 +61184,7 @@ name=Kamber, the Plunderer abilities=lifelink,partner partner=Laurine, the Diversion auto=_PARTNER_ -auto=@movedto(creature|graveyard) from(opponentbattlefield):name(Gain life and create blood) life:1 controller && token(Blood) +auto=@movedto(creature|graveyard) from(opponentbattlefield):name(Gain life and create blood) life:1 controller && _BLOOD_ text=Partner with Laurine, the Diversion (When this creature enters, target player may put Laurine into their hand from their library, then shuffle.) -- Lifelink -- Whenever a creature an opponent controls dies, you gain 1 life and create a Blood token. (It's an artifact with "{1}, Tap, Discard a card, Sacrifice this artifact: Draw a card.") mana={3}{B} type=Legendary Creature @@ -64419,9 +64399,9 @@ type=Land name=Lacerate Flesh target=creature auto=damage:4 -auto=if cantargetcard(*[toughness=1]|*) then token(Blood)*3 controller -auto=if cantargetcard(*[toughness=2]|*) then token(Blood)*2 controller -auto=if cantargetcard(*[toughness=3]|*) then token(Blood) controller +auto=if cantargetcard(*[toughness=1]|*) then _BLOOD_*3 controller +auto=if cantargetcard(*[toughness=2]|*) then _BLOOD_*2 controller +auto=if cantargetcard(*[toughness=3]|*) then _BLOOD_ controller text=Lacerate flesh deals 4 damage to target creature. Create a number of Blood tokens equal to the amount of excess damage dealt to that creature this way. (They're artifacts with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") mana={4}{R} type=Sorcery @@ -70196,8 +70176,8 @@ toughness=2 [/card] [card] name=Markov Enforcer -auto=may name(Fight opponent creature) transforms((,newability[@movedto(creature|graveyard) from(opponentbattlefield) turnlimited:name(Create blood) token(Blood)],newability[target(creature|opponentbattlefield) dynamicability])) ueot -auto=@movedto(other vampire|mybattlefield):may name(Fight opponent creature) transforms((,newability[@movedto(creature|graveyard) from(opponentbattlefield) turnlimited:name(Create blood) token(Blood)],newability[target(creature|opponentbattlefield) dynamicability])) ueot +auto=may name(Fight opponent creature) transforms((,newability[@movedto(creature|graveyard) from(opponentbattlefield) turnlimited:name(Create blood) _BLOOD_],newability[target(creature|opponentbattlefield) dynamicability])) ueot +auto=@movedto(other vampire|mybattlefield):may name(Fight opponent creature) transforms((,newability[@movedto(creature|graveyard) from(opponentbattlefield) turnlimited:name(Create blood) _BLOOD_],newability[target(creature|opponentbattlefield) dynamicability])) ueot text=Whenever Markov Enforcer or another Vampire enters under your control, Markov Enforcer fights up to one target creature an opponent controls. -- Whenever a creature dealt damage by Markov Enforcer this turn dies, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") mana={4}{R}{R} type=Creature @@ -71461,7 +71441,7 @@ toughness=4 [/card] [card] name=Meria, Scholar of Antiquity -auto={T(artifact[-token]|mybattlefield)}:add {G} restriction{type(artifact[-token]|myBattlefield)~morethan~0} +auto={T(artifact[-token]|mybattlefield)}:add{G} restriction{type(artifact[-token]|myBattlefield)~morethan~0} auto={T(artifact[-token]|mybattlefield)}{T(artifact[-token]|mybattlefield)}:_IMPULSE_DRAW_ restriction{type(artifact[-token]|myBattlefield)~morethan~1} text=Tap an untapped nontoken artifact you control: Add {G}. -- Tap two untapped nontoken artifacts you control: Exile the top card of your library. You may play it this turn. mana={1}{R}{G} @@ -74275,7 +74255,7 @@ toughness=2 [card] name=Moonstone Eulogist abilities=flying -auto=@movedTo(creature|graveyard) from(opponentbattlefield):create(Blood) +auto=@movedTo(creature|graveyard) from(opponentbattlefield):_BLOOD_ auto=@sacrificed(artifact|myBattlefield):counter(1/1) && life:1 text=Flying -- Whenever a creature an opponent controls dies, you create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- Whenever you sacrifice an artifact, put a +1/+1 counter on Moonstone Eulogist and you gain 1 life. mana={3}{B}{B} @@ -76066,7 +76046,7 @@ toughness=5 [/card] [card] name=Navigation Orb -auto={2}{T}{S}:name(Put land or gate in play) target(*[basic;gate]|mylibrary) moveto(mybattlefield) and!( transforms((,newability[tap(noevent)],newability[may name(Put land or gate in hand) target(land[basic;gate]|mylibrary) moveto(hand)])) oneshot )! +auto={2}{T}{S}:name(Put basic land or gate in play) target(*[basic;gate]|mylibrary) moveto(mybattlefield) and!( transforms((,newability[tap(noevent)],newability[may name(Put basic land or gate in hand) target(*[basic;gate]|mylibrary) moveto(hand)])) oneshot )! text={2}, {T}, Sacrifice Navigation Orb: Search your library for up to two basic land cards and/or Gate cards, reveal those cards, put one onto the battlefield tapped and the other into your hand, then shuffle. mana={3} type=Artifact @@ -78858,7 +78838,7 @@ toughness=2 [/card] [card] name=Occult Epiphany -auto=emblem transforms((,newability[@discarded(creature|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)],newability[@discarded(land|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)],newability[@discarded(planeswalker|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)],newability[@discarded(artifact[-creature;-land]|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)],newability[@discarded(enchantment[-creature;-land]|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)],newability[@discarded(tribal|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)],newability[@discarded(instant|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)],newability[@discarded(sorcery|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)])) ueot +auto=emblem transforms((,newability[@discarded(creature|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)],newability[@discarded(land|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)],newability[@discarded(planeswalker|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)],newability[@discarded(artifact[-creature;-land]|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)],newability[@discarded(enchantment[-creature;-land]|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)],newability[@discarded(kindred|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)],newability[@discarded(instant|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)],newability[@discarded(sorcery|myhand) turnlimited:name(Create spirit) token(Spirit^Creature Spirit^1/1^white^flying)])) ueot auto=draw:x controller && all(this|mystack) transforms((,newability[name(Discard cards) target(*|myhand) reject])) oneshot text=Draw X cards, then discard X cards. Create a 1/1 white Spirit creature token with flying for each card type among cards discarded this way. mana={X}{U} @@ -79011,18 +78991,18 @@ toughness=4 [/card] [card] name=Odric, Blood-Cursed -auto=if type(*[flying]|mybattlefield)~morethan~0 then token(Blood) -auto=if type(*[first strike]|mybattlefield)~morethan~0 then token(Blood) -auto=if type(*[double strike]|mybattlefield)~morethan~0 then token(Blood) -auto=if type(*[deathtouch]|mybattlefield)~morethan~0 then token(Blood) -auto=if type(*[haste]|mybattlefield)~morethan~0 then token(Blood) -auto=if type(*[hexproof]|mybattlefield)~morethan~0 then token(Blood) -auto=if type(*[indestructible]|mybattlefield)~morethan~0 then token(Blood) -auto=if type(*[lifelink]|mybattlefield)~morethan~0 then token(Blood) -auto=if type(*[menace]|mybattlefield)~morethan~0 then token(Blood) -auto=if type(*[reach]|mybattlefield)~morethan~0 then token(Blood) -auto=if type(*[trample]|mybattlefield)~morethan~0 then token(Blood) -auto=if type(*[vigilance]|mybattlefield)~morethan~0 then token(Blood) +auto=if type(*[flying]|mybattlefield)~morethan~0 then _BLOOD_ +auto=if type(*[first strike]|mybattlefield)~morethan~0 then _BLOOD_ +auto=if type(*[double strike]|mybattlefield)~morethan~0 then _BLOOD_ +auto=if type(*[deathtouch]|mybattlefield)~morethan~0 then _BLOOD_ +auto=if type(*[haste]|mybattlefield)~morethan~0 then _BLOOD_ +auto=if type(*[hexproof]|mybattlefield)~morethan~0 then _BLOOD_ +auto=if type(*[indestructible]|mybattlefield)~morethan~0 then _BLOOD_ +auto=if type(*[lifelink]|mybattlefield)~morethan~0 then _BLOOD_ +auto=if type(*[menace]|mybattlefield)~morethan~0 then _BLOOD_ +auto=if type(*[reach]|mybattlefield)~morethan~0 then _BLOOD_ +auto=if type(*[trample]|mybattlefield)~morethan~0 then _BLOOD_ +auto=if type(*[vigilance]|mybattlefield)~morethan~0 then _BLOOD_ text=When Odric, Blood-Cursed enters, create X Blood tokens, where X is the number of abilities from among flying, first strike, double strike, deathtouch, haste, hexproof, indestructible, lifelink, menace, reach, trample, and vigilance found among creatures you control. (Count each ability only once.) mana={1}{R}{W} type=Legendary Creature @@ -79461,8 +79441,8 @@ toughness=* [/card] [card] name=Old Rutstein -auto=name(Mill a card) all(*[zpos=1]|mylibrary) moveto(mygraveyard) and!( transforms((,newability[if cantargetcard(land|*) then _TREASURE_],newability[if cantargetcard(creature|*) then _INSECTTOKEN_],newability[if cantargetcard(*[-land;-creature]|*) then token(Blood)])) oneshot )! -auto=@each my upkeep:name(Mill a card) all(*[zpos=1]|mylibrary) moveto(mygraveyard) and!( transforms((,newability[if cantargetcard(land|*) then _TREASURE_],newability[if cantargetcard(creature|*) then _INSECTTOKEN_],newability[if cantargetcard(*[-land;-creature]|*) then token(Blood)])) oneshot )! +auto=name(Mill a card) all(*[zpos=1]|mylibrary) moveto(mygraveyard) and!( transforms((,newability[if cantargetcard(land|*) then _TREASURE_],newability[if cantargetcard(creature|*) then _INSECTTOKEN_],newability[if cantargetcard(*[-land;-creature]|*) then _BLOOD_])) oneshot )! +auto=@each my upkeep:name(Mill a card) all(*[zpos=1]|mylibrary) moveto(mygraveyard) and!( transforms((,newability[if cantargetcard(land|*) then _TREASURE_],newability[if cantargetcard(creature|*) then _INSECTTOKEN_],newability[if cantargetcard(*[-land;-creature]|*) then _BLOOD_])) oneshot )! text=When Old Rutstein enters or at the beginning of your upkeep, mill a card. If a land card is milled this way, create a Treasure token. If a creature card is milled this way, create a 1/1 green Insect creature token. If a noncreature, nonland card is milled this way, create a Blood token. mana={1}{B}{G} type=Legendary Creature @@ -79531,10 +79511,10 @@ toughness=4 [card] name=Olivia's Attendants abilities=menace -auto=@combatdamaged(player) from(this):name(Create Blood) token(Blood)*thatmuch -auto=@combatdamaged(planeswalker|battlefield) from(this):name(Create Blood) token(Blood)*thatmuch -auto=@combatdamaged(creature|battlefield) from(this) turnlimited:name(Create Blood) token(Blood)*power -auto={2}{R}:name(Deals 1 damage) target(anytarget) damage:1 && token(Blood) +auto=@combatdamaged(player) from(this):name(Create Blood) _BLOOD_*thatmuch +auto=@combatdamaged(planeswalker|battlefield) from(this):name(Create Blood) _BLOOD_*thatmuch +auto=@combatdamaged(creature|battlefield) from(this) turnlimited:name(Create Blood) _BLOOD_*power +auto={2}{R}:name(Deals 1 damage) target(anytarget) damage:1 && _BLOOD_ text=Menace -- Whenever Olivia's Attendants deals damage, create that many Blood tokens. (They're artifacts with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- {2}{R}: Olivia's Attendants deals 1 damage to any target. mana={4}{R}{R} type=Creature @@ -82520,7 +82500,7 @@ type=Enchantment [card] name=Path of Discovery aicode=activate transforms((,newability[explores],newability[if type(land[zpos=1]|mylibrary)~lessthan~1 then all(this) counter(1/1) else all(land[zpos=1]|mylibrary) moveto(hand)])) oneshot -auto=@movedTo(creature|myBattlefield):all(trigger[to]) _EXPLORES_ +auto=@movedTo(creature|myBattlefield):all(trigger) transforms((,newability[_EXPLORES_])) oneshot text=Whenever a creature enters under your control, it explores. (Reveal the top card of your library. Put that card into your hand if it's a land. Otherwise, put a +1/+1 counter on the creature, then put the card back or put it into your graveyard.) mana={3}{G} type=Enchantment @@ -84181,7 +84161,7 @@ auto={T}:name(Protection from artifact) target(other creature|myBattlefield) tra auto={T}:name(Protection from enchantment) target(other creature|myBattlefield) transforms((,newability[protection from(enchantment)])) ueot auto={T}:name(Protection from land) target(other creature|myBattlefield) transforms((,newability[protection from(land)])) ueot auto={T}:name(Protection from planeswalker) target(other creature|myBattlefield) transforms((,newability[protection from(planeswalker)])) ueot -auto={T}:name(Protection from tribal) target(other creature|myBattlefield) transforms((,newability[protection from(tribal)])) ueot +auto={T}:name(Protection from kindred) target(other creature|myBattlefield) transforms((,newability[protection from(kindred)])) ueot auto={T}:name(Protection from battle) target(other creature|myBattlefield) transforms((,newability[protection from(battle)])) ueot auto={T}:name(Protection from instant) target(other creature|myBattlefield) transforms((,newability[protection from(instant)])) ueot auto={T}:name(Protection from sorcery) target(other creature|myBattlefield) transforms((,newability[protection from(sorcery)])) ueot @@ -84920,7 +84900,7 @@ type=Enchantment name=Pointed Discussion auto=draw:2 controller auto=life:-2 controller -auto=token(Blood) +auto=_BLOOD_ text=You draw two cards, lose 2 life, then create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") mana={2}{B} type=Sorcery @@ -89452,8 +89432,7 @@ toughness=1 [/card] [card] name=Raptor Hatchling -abilities=trample -auto=_ENRAGE_token(Dinosaur,creature Dinosaur,3/3,green) +auto=_ENRAGE_create(Dinosaur:creature Dinosaur:3/3:green:trample) text=Enrage - Whenever Raptor Hatchling is dealt damage, create a 3/3 green Dinosaur creature token with trample. mana={1}{R} type=Creature @@ -91855,7 +91834,7 @@ name=Restless Bloodseeker backside=Bloodsoaked Reveler restriction=compare(isflipped)~equalto~0 anyzone={0}:doubleside(backside) -auto=@each my end restriction{compare(lifegain)~morethan~0}:name(Create Blood) token(Blood) +auto=@each my end restriction{compare(lifegain)~morethan~0}:name(Create Blood) _BLOOD_ auto={S(blood|mybattlefield)}{S(blood|mybattlefield)}:name(Transform) flip(backside) asSorcery text=At the beginning of your end step, if you gained life this turn, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- Sacrifice two Blood tokens: Transform Restless Bloodseeker. Activate only as a sorcery. // Bloodsoaked Reveler mana={1}{B} @@ -96737,7 +96716,7 @@ type=Enchantment [/card] [card] name=Sanguine Brushstroke -auto=token(Blood) +auto=_BLOOD_ auto=name(Conjure card) conjure cards(Blood Artist) zone(mybattlefield) auto=@sacrificed(blood|mybattlefield):name(Gain 1 life) life:1 controller && life:-1 opponent text=When Sanguine Brushstroke enters, create a Blood token and conjure a card named Blood Artist onto the battlefield. -- Whenever you sacrifice a Blood token, each opponent loses 1 life and you gain 1 life. @@ -96800,7 +96779,7 @@ toughness=1 [/card] [card] name=Sanguine Statuette -auto=token(Blood) +auto=_BLOOD_ auto=@sacrificed(blood|mybattlefield):may name(Becomes 3/3 vampire) transforms((Artifact Creature Vampire,setpower=3,settoughness=3,haste)) ueot text=When Sanguine Statuette enters, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- Whenever you sacrifice a Blood token, you may have Sanguine Statuette become a 3/3 Vampire artifact creature with haste until end of turn. mana={1}{R} @@ -97466,7 +97445,7 @@ name=Savage Stomp target=creature|myBattlefield auto=counter(1/1) auto=_FIGHT_ -autohand=if type(dinosaur|mybattlefield)~morethan~0 then altercost(colorless,-2) +anyzone=while(restriction{type(dinosaur|mybattlefield)~morethan~0}) then altercost(colorless,-2) text=Savage Stomp costs {2} less to cast if it targets a Dinosaur you control. -- Put a +1/+1 counter on target creature you control. Then that creature fights target creature you don't control. (Each deals damage equal to its power to the other.) mana={2}{G} type=Sorcery @@ -100143,7 +100122,7 @@ auto=choice name(instant) transforms((,newability[preventalldamage to(controller auto=choice name(land) transforms((,newability[preventalldamage to(controller) from(land)],newability[lord(creature|myBattlefield) protection from(land)])) forever auto=choice name(planeswalker) transforms((,newability[preventalldamage to(controller) from(planeswalker)],newability[lord(creature|myBattlefield) protection from(planeswalker)])) forever auto=choice name(sorcery) transforms((,newability[preventalldamage to(controller) from(sorcery)],newability[lord(creature|myBattlefield) protection from(sorcery)])) forever -auto=choice name(tribal) transforms((,newability[preventalldamage to(controller) from(tribal)],newability[lord(creature|myBattlefield) protection from(tribal)])) forever +auto=choice name(kindred) transforms((,newability[preventalldamage to(controller) from(kindred)],newability[lord(creature|myBattlefield) protection from(kindred)])) forever text=Flying -- As Serra's Emissary enters, choose a card type. -- You and creatures you control have protection from the chosen card type. mana={4}{W}{W}{W} type=Creature @@ -100834,7 +100813,7 @@ toughness=1 [card] name=Shapers of Nature auto={3}{G}:counter(1/1) target(creature) -auto={2}{U}{counter(1/1,-1) target(creature|mybattlefield)}:draw:1 controller +auto={2}{U}:counter(1/1,-1) target(creature[counter{1/1}]|mybattlefield) && draw:1 controller text={3}{G}: Put a +1/+1 counter on target creature. -- {2}{U}, Remove a +1/+1 counter from a creature you control: Draw a card. mana={1}{G}{U} type=Creature @@ -101463,8 +101442,8 @@ toughness=5 [card] name=Shilgengar, Sire of Famine abilities=flying -auto={S(other creature[Angel]|mybattlefield)}:name(sacrifice angel) create(blood)*storedtoughness restriction{type(other creature[Angel]|mybattlefield)~morethan~0} -auto={S(other creature[-Angel]|mybattlefield)}:create(blood) restriction{type(other creature[-Angel]|mybattlefield)~morethan~0} +auto={S(other creature[Angel]|mybattlefield)}:name(sacrifice angel) _BLOOD_*storedtoughness restriction{type(other creature[Angel]|mybattlefield)~morethan~0} +auto={S(other creature[-Angel]|mybattlefield)}:_BLOOD_ restriction{type(other creature[-Angel]|mybattlefield)~morethan~0} auto={WB}{WB}{WB}{S(*[blood]|mybattlefield)}{S(*[blood]|mybattlefield)}{S(*[blood]|mybattlefield)}{S(*[blood]|mybattlefield)}{S(*[blood]|mybattlefield)}{S(*[blood]|mybattlefield)} restriction{type(*[blood]|mybattlefield)~morethan~5}:all(creature|mygraveyard) moveto(battlefield) and!(transforms((Vampire,newability[counter(0/0.1.finality)],newability[this(counter{0/0.1.finality}>=1) exiledeath])) forever )! text=Flying -- Sacrifice another creature: Create a Blood token. If you sacrificed an Angel this way, create a number of Blood tokens equal to its toughness instead. -- {W/B}{W/B}{W/B}, Sacrifice six Blood tokens: Return each creature card from your graveyard to the battlefield with a finality counter on it. Those creatures are Vampires in addition to their other types. mana={3}{B}{B} @@ -102404,7 +102383,7 @@ target=creature auto=teach(creature) cantattack auto=teach(creature) cantblock auto=teach(creature) cantpwattack -auto={4}{W}:name(Exile enchanted creature) imprint && token(Blood) +auto={4}{W}:name(Exile enchanted creature) imprint && _BLOOD_ text=Enchant creature - Enchanted creature can't attack or block. -- {4}{W}: Exile enchanted creature. Create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") mana={2}{W} type=Enchantment @@ -107121,7 +107100,7 @@ toughness=1 [card] name=Spectral Arcanist abilities=flying -auto=may name(Cast instant or sorcery) target(*[-land;-planeswalker;-creature;-enchantment;-artifact;-tribal;manacost<=type:spirit:mybattlefield]|graveyard) transforms((,newability[gainedexiledeath],newability[activate castcard(normal)])) forever +auto=may name(Cast instant or sorcery) target(*[-land;-planeswalker;-creature;-enchantment;-artifact;-kindred;manacost<=type:spirit:mybattlefield]|graveyard) transforms((,newability[gainedexiledeath],newability[activate castcard(normal)])) forever text=Flying -- When Spectral Arcanist enters, you may cast an instant or sorcery spell with mana value less than or equal to the number of Spirits you control from a graveyard without paying its mana cost. If that spell would be put into a graveyard, exile it instead. mana={3}{U} type=Creature @@ -109536,7 +109515,7 @@ auto=choice name(Enchantment) transforms((,newability[lord(Enchantment|mycasting auto=choice name(Instant) transforms((,newability[lord(Instant|mycastingzone) changecost(colorless:-1)])) forever auto=choice name(Planeswalker) transforms((,newability[lord(Planeswalker|mycastingzone) changecost(colorless:-1)])) forever auto=choice name(Sorcery) transforms((,newability[lord(Sorcery|mycastingzone) changecost(colorless:-1)])) forever -auto=choice name(Tribal) transforms((,newability[lord(Tribal|mycastingzone) changecost(colorless:-1)])) forever +auto=choice name(kindred) transforms((,newability[lord(kindred|mycastingzone) changecost(colorless:-1)])) forever auto={1}{W}{U}:_BLINK_UEOT_ text=As Stenn, Paranoid Partisan enters, choose a card type other than creature or land. -- Spells you cast of the chosen type cost {1} less to cast. -- {1}{W}{U}: Exile Stenn. Return it to the battlefield under its owner's control at the beginning of the next end step. mana={W}{U} @@ -110702,8 +110681,8 @@ toughness=2 [card] name=Strefan, Maurer Progenitor abilities=flying -auto=@each my end restriction{compare(oplifelost)~morethan~0}:name(Create Blood) token(Blood) -auto=@each my end restriction{compare(plifelost)~morethan~0}:name(Create Blood) token(Blood) +auto=@each my end restriction{compare(oplifelost)~morethan~0}:name(Create Blood) _BLOOD_ +auto=@each my end restriction{compare(plifelost)~morethan~0}:name(Create Blood) _BLOOD_ auto=@combat(attacking) source(this) restriction{type(blood|mybattlefield)~morethan~1}:may name(Sacrifice 2 blood) target(<2>blood|myBattlefield) sacrifice && all(this) transforms((,newability[name(Put vampire in play) target(vampire|myhand) moveto(myBattlefield) and!( transforms((,newability[readytofight],indestructible)) ueot )!])) oneshot text=Flying -- We the beginning of your end step, create a Blood token for each player who lost life this turn. -- Whenever Strefan, Maurer Progenitor attacks, you may sacrifice two Blood tokens. If you do, you may put a Vampire card from your hand onto the battlefield tapped and attacking. It gains indestructible until end of turn. mana={2}{B}{R} @@ -113002,7 +112981,7 @@ type=Instant name=Syphon Essence target=*[creature;planeswalker]|stack auto=fizzle -auto=token(Blood) controller +auto=_BLOOD_ controller text=Counter target creature or planeswalker spell. Create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") mana={2}{U} type=Instant @@ -114515,7 +114494,7 @@ toughness=2 [card] name=Tempered Veteran auto={W}{T}:counter(1/1) target(creature[counter{1/1.1}]) -auto={4}{W}{W}{T}: counter(1/1) target(creature) +auto={4}{W}{W}{T}:counter(1/1) target(creature) text={W}, {T}: Put a +1/+1 counter on target creature with a +1/+1 counter on it. -- {4}{W}{W}, {T}: Put a +1/+1 counter on target creature. mana={1}{W} type=Creature @@ -121850,7 +121829,7 @@ auto=choice name(Artifact) transforms((,newability[lord(Artifact|mycastingzone) auto=choice name(Creature) transforms((,newability[lord(Creature|mycastingzone) changecost(colorless:-1)])) forever auto=choice name(Enchantment) transforms((,newability[lord(Enchantment|mycastingzone) changecost(colorless:-1)])) forever auto=choice name(Planeswalker) transforms((,newability[lord(Planeswalker|mycastingzone) changecost(colorless:-1)])) forever -auto=choice name(Tribal) transforms((,newability[lord(Tribal|mycastingzone) changecost(colorless:-1)])) forever +auto=choice name(kindred) transforms((,newability[lord(kindred|mycastingzone) changecost(colorless:-1)])) forever auto=choice name(Instant) transforms((,newability[lord(Instant|mycastingzone) changecost(colorless:-1)])) forever auto=choice name(Sorcery) transforms((,newability[lord(Sorcery|mycastingzone) changecost(colorless:-1)])) forever text=Companion ⿿ Each nonland card in your starting deck shares a card type. (If this card is your chosen companion, you may put it into your hand from outside the game for {3} as a sorcery.) -- As Umori, the Collector enters, choose a card type. -- Spells you cast of the chosen type cost {1} less to cast. @@ -123856,7 +123835,7 @@ name=Vampire's Kiss target=player auto=life:-2 auto=life:2 controller -auto=token(Blood)*2 controller +auto=_BLOOD_*2 controller text=Target player loses 2 life and you gain 2 life. Create two Blood tokens. (They're artifacts with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") mana={1}{B} type=Sorcery @@ -123873,7 +123852,7 @@ type=Instant [card] name=Vampires' Vengeance auto=damage:2 all(creature[-vampire]|battlefield) -auto=name(Create blood) token(Blood) +auto=name(Create blood) _BLOOD_ text=Vampires' Vengeance deals 2 damage to each non-Vampire creature. Create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") mana={2}{R} type=Instant @@ -126368,7 +126347,7 @@ backside=Bloodbat Summoner abilities=flying restriction=compare(isflipped)~equalto~0 anyzone={0}:doubleside(backside) -auto=@movedTo(creature[-token]|graveyard) from(mybattlefield):name(Create blood) token(Blood) +auto=@movedTo(creature[-token]|graveyard) from(mybattlefield):name(Create blood) _BLOOD_ auto=@movedto(blood|mybattlefield) restriction{type(blood|mybattlefield)~morethan~4}:name(Transform) flip(backside) text=Flying -- Whenever Voldaren Bloodcaster or another nontoken creature you control dies, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") -- Whenever you create a Blood token, if you control five or more Blood tokens, transform Voldaren Bloodcaster. // Bloodbat Summoner mana={1}{B} @@ -126380,7 +126359,7 @@ toughness=1 [card] name=Voldaren Epicure auto=damage:1 opponent -auto=token(Blood) +auto=_BLOOD_ text=When Voldaren Epicure enters, it deals 1 damage to each opponent. Create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") mana={R} type=Creature @@ -126396,12 +126375,12 @@ auto=this(variable{type:vampire:myrestrictedcastingzone}>0) {T}{L:1}:add{U} auto=this(variable{type:vampire:myrestrictedcastingzone}>0) {T}{L:1}:add{B} auto=this(variable{type:vampire:myrestrictedcastingzone}>0) {T}{L:1}:add{R} auto=this(variable{type:vampire:myrestrictedcastingzone}>0) {T}{L:1}:add{G} -auto=this(variable{type:vampire:mybattlefield}=0) {5}{T}:name(Create blood) token(Blood) -auto=this(variable{type:vampire:mybattlefield}=1) {4}{T}:name(Create blood) token(Blood) -auto=this(variable{type:vampire:mybattlefield}=2) {3}{T}:name(Create blood) token(Blood) -auto=this(variable{type:vampire:mybattlefield}=3) {2}{T}:name(Create blood) token(Blood) -auto=this(variable{type:vampire:mybattlefield}=4) {1}{T}:name(Create blood) token(Blood) -auto=this(variable{type:vampire:mybattlefield}>=5) {T}:name(Create blood) token(Blood) +auto=this(variable{type:vampire:mybattlefield}=0) {5}{T}:name(Create blood) _BLOOD_ +auto=this(variable{type:vampire:mybattlefield}=1) {4}{T}:name(Create blood) _BLOOD_ +auto=this(variable{type:vampire:mybattlefield}=2) {3}{T}:name(Create blood) _BLOOD_ +auto=this(variable{type:vampire:mybattlefield}=3) {2}{T}:name(Create blood) _BLOOD_ +auto=this(variable{type:vampire:mybattlefield}=4) {1}{T}:name(Create blood) _BLOOD_ +auto=this(variable{type:vampire:mybattlefield}>=5) {T}:name(Create blood) _BLOOD_ text=Add {C}. -- {T}, Pay 1 life: Add one mana of any color. Spend this mana only to cast a Vampire spell. -- {5}, {T}: Create a Blood token. This ability costs {1} less to activate for each Vampire you control. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") type=Land [/card] diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index 4f4e86908..bc2d9e9fc 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -12121,14 +12121,15 @@ type=Enchantment [card] name=Blood Oath auto=choice name(Artifact) target(opponent) Reveal:type:*:opponenthand revealzone(opponenthand) revealtype(*|opponenthand) optionone choice name(Deal Damage) foreach(artifact|reveal) damage:3 opponent optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(hand)])) ueot optiontwoend revealend +auto=choice name(battle) target(opponent) Reveal:type:*:opponenthand revealzone(opponenthand) revealtype(*|opponenthand) optionone choice name(Deal Damage) foreach(battle|reveal) damage:3 opponent optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(hand)])) ueot optiontwoend revealend auto=choice name(creature) target(opponent) Reveal:type:*:opponenthand revealzone(opponenthand) revealtype(*|opponenthand) optionone choice name(Deal Damage) foreach(creature|reveal) damage:3 opponent optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(hand)])) ueot optiontwoend revealend auto=choice name(enchantment) target(opponent) Reveal:type:*:opponenthand revealzone(opponenthand) revealtype(*|opponenthand) optionone choice name(Deal Damage) foreach(enchantment|reveal) damage:3 opponent optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(hand)])) ueot optiontwoend revealend auto=choice name(instant) target(opponent) Reveal:type:*:opponenthand revealzone(opponenthand) revealtype(*|opponenthand) optionone choice name(Deal Damage) foreach(instant|reveal) damage:3 opponent optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(hand)])) ueot optiontwoend revealend +auto=choice name(kindred) target(opponent) Reveal:type:*:opponenthand revealzone(opponenthand) revealtype(*|opponenthand) optionone choice name(Deal Damage) foreach(kindred|reveal) damage:3 opponent optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(hand)])) ueot optiontwoend revealend auto=choice name(land) target(opponent) Reveal:type:*:opponenthand revealzone(opponenthand) revealtype(*|opponenthand) optionone choice name(Deal Damage) foreach(land|reveal) damage:3 opponent optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(hand)])) ueot optiontwoend revealend auto=choice name(planeswalker) target(opponent) Reveal:type:*:opponenthand revealzone(opponenthand) revealtype(*|opponenthand) optionone choice name(Deal Damage) foreach(planeswalker|reveal) damage:3 opponent optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(hand)])) ueot optiontwoend revealend auto=choice name(sorcery) target(opponent) Reveal:type:*:opponenthand revealzone(opponenthand) revealtype(*|opponenthand) optionone choice name(Deal Damage) foreach(sorcery|reveal) damage:3 opponent optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(hand)])) ueot optiontwoend revealend -auto=choice name(tribal) target(opponent) Reveal:type:*:opponenthand revealzone(opponenthand) revealtype(*|opponenthand) optionone choice name(Deal Damage) foreach(tribal|reveal) damage:3 opponent optiononeend optiontwo name(Put Back) target(*|reveal) transforms((,newability[all(*|reveal) moveto(hand)])) ueot optiontwoend revealend -text=Choose a card type. Target opponent reveals their hand. Blood Oath deals 3 damage to that player for each card of the chosen type revealed this way. (Artifact, creature, enchantment, instant, land, planeswalker, sorcery, and tribal are card types.) +text=Choose a card type. Target opponent reveals their hand. Blood Oath deals 3 damage to that player for each card of the chosen type revealed this way. (Artifact, battle, creature, enchantment, instant, kindred, land, planeswalker, and sorcery are card types.) mana={3}{R} type=Instant [/card] @@ -16326,7 +16327,7 @@ subtype=Aura name=Cairn Wanderer abilities=changeling auto=aslongas(creature[flying]|graveyard) flying >0 -auto=aslongas(creature[fear]|graveyard) fear>0 +auto=aslongas(creature[fear]|graveyard) fear >0 auto=aslongas(creature[first strike]|graveyard) first strike >0 auto=aslongas(creature[double strike]|graveyard) double strike >0 auto=aslongas(creature[deathtouch]|graveyard) deathtouch >0 @@ -39957,23 +39958,23 @@ subtype=Aura name=Fertile Imagination auto=if type(artifact|opponenthand)~morethan~0 then choice name(Artifact) name(Artifact) target(artifact|opponenthand) transforms((,newability[_SAPROLINGTOKEN_*2 opponent])) oneshot auto=if type(artifact|opponenthand)~equalto~0 then choice name(Artifact) name(Artifact) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) )! +auto=if type(battle|opponenthand)~morethan~0 then choice name(Battle) name(Battle) target(battle|opponenthand) transforms((,newability[_SAPROLINGTOKEN_*2 opponent])) oneshot +auto=if type(battle|opponenthand)~equalto~0 then choice name(Battle) name(Battle) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) )! auto=if type(creature|opponenthand)~morethan~0 then choice name(Creature) name(Creature) target(creature|opponenthand) transforms((,newability[_SAPROLINGTOKEN_*2 opponent])) oneshot auto=if type(creature|opponenthand)~equalto~0 then choice name(Creature) name(Creature) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) )! auto=if type(enchantment|opponenthand)~morethan~0 then choice name(Enchantment) name(Enchantment) target(enchantment|opponenthand) transforms((,newability[_SAPROLINGTOKEN_*2 opponent])) oneshot auto=if type(enchantment|opponenthand)~equalto~0 then choice name(Enchantment) name(Enchantment) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) )! +auto=if type(instant|opponenthand)~morethan~0 then choice name(Instant) name(Instant) target(instant|opponenthand) transforms((,newability[_SAPROLINGTOKEN_*2 opponent])) oneshot +auto=if type(instant|opponenthand)~equalto~0 then choice name(Instant) name(Instant) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) )! +auto=if type(kindred|opponenthand)~morethan~0 then choice name(kindred) name(kindred) target(kindred|opponenthand) transforms((,newability[_SAPROLINGTOKEN_*2 opponent])) oneshot +auto=if type(kindred|opponenthand)~equalto~0 then choice name(kindred) name(kindred) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) )! auto=if type(land|opponenthand)~morethan~0 then choice name(Land) name(Land) target(land|opponenthand) transforms((,newability[_SAPROLINGTOKEN_*2 opponent])) oneshot auto=if type(land|opponenthand)~equalto~0 then choice name(Land) name(Land) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) )! auto=if type(planeswalker|opponenthand)~morethan~0 then choice name(Planeswalker) name(Planeswalker) target(planeswalker|opponenthand) transforms((,newability[_SAPROLINGTOKEN_*2 opponent])) oneshot auto=if type(planeswalker|opponenthand)~equalto~0 then choice name(Planeswalker) name(Planeswalker) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) )! auto=if type(sorcery|opponenthand)~morethan~0 then choice name(Sorcery) name(Sorcery) target(sorcery|opponenthand) transforms((,newability[_SAPROLINGTOKEN_*2 opponent])) oneshot auto=if type(sorcery|opponenthand)~equalto~0 then choice name(Sorcery) name(Sorcery) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) )! -auto=if type(instant|opponenthand)~morethan~0 then choice name(Instant) name(Instant) target(instant|opponenthand) transforms((,newability[_SAPROLINGTOKEN_*2 opponent])) oneshot -auto=if type(instant|opponenthand)~equalto~0 then choice name(Instant) name(Instant) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) )! -auto=if type(battle|opponenthand)~morethan~0 then choice name(Battle) name(Battle) target(battle|opponenthand) transforms((,newability[_SAPROLINGTOKEN_*2 opponent])) oneshot -auto=if type(battle|opponenthand)~equalto~0 then choice name(Battle) name(Battle) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) )! -auto=if type(tribal|opponenthand)~morethan~0 then choice name(Tribal) name(Tribal) target(tribal|opponenthand) transforms((,newability[_SAPROLINGTOKEN_*2 opponent])) oneshot -auto=if type(tribal|opponenthand)~equalto~0 then choice name(Tribal) name(Tribal) target(*|opponenthand) moveto(myreveal) and!( moveto(opponenthand) )! -text=Choose a card type. Target opponent reveals their hand. Put two 1/1 green Saproling creature tokens onto the battlefield for each card of the chosen type revealed this way. (Artifact, creature, enchantment, instant, land, planeswalker, sorcery, battle and tribal are card types.) +text=Choose a card type. Target opponent reveals their hand. Create two 1/1 green Saproling creature tokens for each card of the chosen type revealed this way. (Artifact, battle, creature, enchantment, instant, kindred, land, planeswalker, and sorcery are card types.) mana={2}{G}{G} type=Sorcery [/card] @@ -40312,8 +40313,7 @@ toughness=3 [card] name=Fiendslayer Paladin abilities=first strike, lifelink -auto=cantbetargetof(instant[black;red]|opponenthand,opponentgraveyard,opponentstack) -auto=cantbetargetof(sorcery[black;red]|opponenthand,opponentgraveyard,opponentstack) +auto=cantbetargetof(*[black;red]|opponenthand,opponentgraveyard,opponentstack) text=First strike (This creature deals combat damage before creatures without first strike.) -- Lifelink (Damage dealt by this creature also causes you to gain that much life.) -- Fiendslayer Paladin can't be the target of black or red spells your opponents control. mana={1}{W}{W} type=Creature @@ -84002,7 +84002,7 @@ type=Sorcery [/card] [card] name=Painful Quandary -auto=@movedTo(*|opponentstack):choice name(make opponent choose) ability$!choice name(Lose 5 life) life:-5 _ if type(*|myhand)~morethan~0 then choice name(discard) target(*|myhand) reject!$ opponent +auto=@movedTo(*|opponentstack):ability$!choice name(Lose 5 life) life:-5 _ if type(*|myhand)~morethan~0 then choice name(discard) target(*|myhand) reject!$ opponent text=Whenever an opponent casts a spell, that player loses 5 life unless they discards a card. mana={3}{B}{B} type=Enchantment @@ -102221,8 +102221,8 @@ auto=choice name(Creature) moveTo(myexile) notaTarget(creature|myhand) and!( all auto=choice name(Enchantment) moveTo(myexile) notaTarget(enchantment|myhand) and!( all(this) transforms((,newability[lord(enchantment|mycastingzone) changecost(colorless:-2)])) forever )! auto=choice name(Instant) moveTo(myexile) notaTarget(instant|myhand) and!( all(this) transforms((,newability[lord(instant|mycastingzone) changecost(colorless:-2)])) forever )! auto=choice name(Sorcery) moveTo(myexile) notaTarget(sorcery|myhand) and!( all(this) transforms((,newability[lord(sorcery|mycastingzone) changecost(colorless:-2)])) forever )! -auto=choice name(Tribal Instant) moveTo(myexile) notaTarget(instant[tribal]|myhand) and!( all(this) transforms((,newability[lord(*[instant;tribal]|mycastingzone) changecost(colorless:-2)])) forever )! -auto=choice name(Tribal Sorcery) moveTo(myexile) notaTarget(sorcery[tribal]|myhand) and!( all(this) transforms((,newability[lord(*[sorcery;tribal]|mycastingzone) changecost(colorless:-2)])) forever )! +auto=choice name(kindred Instant) moveTo(myexile) notaTarget(instant[kindred]|myhand) and!( all(this) transforms((,newability[lord(*[instant;kindred]|mycastingzone) changecost(colorless:-2)])) forever )! +auto=choice name(kindred Sorcery) moveTo(myexile) notaTarget(sorcery[kindred]|myhand) and!( all(this) transforms((,newability[lord(*[sorcery;kindred]|mycastingzone) changecost(colorless:-2)])) forever )! auto=choice name(Planeswalker) moveTo(myexile) notaTarget(planeswalker|myhand) and!( all(this) transforms((,newability[lord(planeswalker|mycastingzone) changecost(colorless:-2)])) forever )! auto=choice name(cancel) donothing text=Imprint - When Semblance Anvil enters, you may exile a nonland card from your hand. -- Spells you cast that share a card type with the exiled card cost {2} less to cast. @@ -117951,7 +117951,7 @@ toughness=7 [card] name=Tarmogoyf anyzone=allgravecardtypes/allgravecardtypesplus1plusend cdaactive -text=Tarmogoyf's power is equal to the number of card types among cards in all graveyards and its toughness is equal to that number plus 1. (The card types are artifact, creature, enchantment, instant, land, planeswalker, sorcery, and tribal.) +text=Tarmogoyf’s power is equal to the number of card types among cards in all graveyards and its toughness is equal to that number plus 1. mana={1}{G} type=Creature subtype=Lhurgoyf @@ -128866,14 +128866,15 @@ toughness=0 [card] name=Vigean Intuition auto=choice name(Artifact) reveal:4 optionone name(Get Artifact) target(artifact|reveal) moveto(hand) and!( all(artifact|reveal) moveto(hand) )! optiononeend optiontwo name(put in grave) target(<1>*|reveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend +auto=choice name(battle) reveal:4 optionone name(Get battle) target(artifact|reveal) moveto(hand) and!( all(battle|reveal) moveto(hand) )! optiononeend optiontwo name(put in grave) target(<1>*|reveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend auto=choice name(Creature) reveal:4 optionone name(Get Creature) target(creature|reveal) moveto(hand) and!( all(creature|reveal) moveto(hand) )! optiononeend optiontwo name(put in grave) target(<1>*|reveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend auto=choice name(Enchantment) reveal:4 optionone name(Get Enchantment) target(enchantment|reveal) moveto(hand) and!( all(enchantment|reveal) moveto(hand) )! optiononeend optiontwo name(put in grave) target(<1>*|reveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend auto=choice name(Instant) reveal:4 optionone name(Get Instant) target(instant|reveal) moveto(hand) and!( all(instant|reveal) moveto(hand) )! optiononeend optiontwo name(put in grave) target(<1>*|reveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend +auto=choice name(kindred) reveal:4 optionone name(Get kindred) target(artifact|reveal) moveto(hand) and!( all(kindred|reveal) moveto(hand) )! optiononeend optiontwo name(put in grave) target(<1>*|reveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend auto=choice name(Land) reveal:4 optionone name(Get Land) target(land|reveal) moveto(hand) and!( all(land|reveal) moveto(hand) )! optiononeend optiontwo name(put in grave) target(<1>*|reveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend auto=choice name(Planeswalker) reveal:4 optionone name(Get Planeswalker) target(planeswalker|reveal) moveto(hand) and!( all(planeswalker|reveal) moveto(hand) )! optiononeend optiontwo name(put in grave) target(<1>*|reveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend auto=choice name(Sorcery) reveal:4 optionone name(Get Sorcery) target(sorcery|reveal) moveto(hand) and!( all(sorcery|reveal) moveto(hand) )! optiononeend optiontwo name(put in grave) target(<1>*|reveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend -auto=choice name(Tribal) reveal:4 optionone name(Get Tribal) target(artifact|reveal) moveto(hand) and!( all(tribal|reveal) moveto(hand) )! optiononeend optiontwo name(put in grave) target(<1>*|reveal) moveto(mygraveyard) and!( all(*|reveal) moveto(mygraveyard) )! optiontwoend revealend -text=Choose a card type, then reveal the top four cards of your library. Put all cards of the chosen type revealed this way into your hand and the rest into your graveyard. (Artifact, creature, enchantment, instant, land, planeswalker, sorcery, and tribal are card types.) +text=Choose a card type, then reveal the top four cards of your library. Put all cards of the chosen type revealed this way into your hand and the rest into your graveyard. (Artifact, battle, creature, enchantment, instant, kindred, land, planeswalker, and sorcery are card types.) mana={3}{G}{U} type=Instant [/card] @@ -129892,7 +129893,7 @@ toughness=2 [card] name=Voice of All abilities=flying -auto=chooseacolor transforms((,newability[protection from(*[chosencolor])],newability[0/0])) forever chooseend +auto=chooseacolor transforms((,newability[protection from(*[chosencolor])])) forever chooseend text=Flying (This creature can't be blocked except by creatures with flying or reach.) -- As Voice of All enters, choose a color. -- Voice of All has protection from the chosen color. (It can't be blocked, targeted, dealt damage, or enchanted by anything of the chosen color.) mana={2}{W}{W} type=Creature diff --git a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt index 0cf3d8138..8a959fc92 100644 --- a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt +++ b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt @@ -3138,7 +3138,7 @@ auto={C(0/0,1,Loyalty)}:name(+1: Look four and move sorcery to hand) reveal:4 op auto={C(0/0,1,Loyalty)}:name(+1: Look four and move enchantment to hand) reveal:4 optionone name(Get enchantment) target(enchantment|reveal) moveto(myhand) optiononeend optiontwo name(Put graveyard) target(<4>*|reveal) moveto(myGraveyard) optiontwoend revealend auto={C(0/0,1,Loyalty)}:name(+1: Look four and move planeswalker to hand) reveal:4 optionone name(Get planeswalker) target(planeswalker|reveal) moveto(myhand) optiononeend optiontwo name(Put graveyard) target(<4>*|reveal) moveto(myGraveyard) optiontwoend revealend auto={C(0/0,1,Loyalty)}:name(+1: Look four and move artifact to hand) reveal:4 optionone name(Get artifact) target(artifact|reveal) moveto(myhand) optiononeend optiontwo name(Put graveyard) target(<4>*|reveal) moveto(myGraveyard) optiontwoend revealend -auto={C(0/0,1,Loyalty)}:name(+1: Look four and move tribal to hand) reveal:4 optionone name(Get tribal) target(tribal|reveal) moveto(myhand) optiononeend optiontwo name(Put graveyard) target(<4>*|reveal) moveto(myGraveyard) optiontwoend revealend +auto={C(0/0,1,Loyalty)}:name(+1: Look four and move kindred to hand) reveal:4 optionone name(Get kindred) target(kindred|reveal) moveto(myhand) optiononeend optiontwo name(Put graveyard) target(<4>*|reveal) moveto(myGraveyard) optiontwoend revealend auto={C(0/0,-3,Loyalty)}:name(-3: Return target card from graveyard) moveTo(myHand) target(*|myGraveyard) text=Spells and abilities your opponents control can't cause you to discard cards or sacrifice permanents. -- +1: Choose a nonland card name, then reveal the top four cards of your library. Put all cards with the chosen name from among them into your hand and the rest into your graveyard. -- -3: Return target card from your graveyard to your hand. mana={2}{G}{U} diff --git a/projects/mtg/src/Credits.cpp b/projects/mtg/src/Credits.cpp index cb50b3d88..bd68ba09c 100644 --- a/projects/mtg/src/Credits.cpp +++ b/projects/mtg/src/Credits.cpp @@ -165,7 +165,7 @@ Credits::~Credits() if (bonus[i]) delete bonus[i]; bonus.clear(); - kBgFile = ""; //Reset the chosen backgorund. + kBgFile = ""; //Reset the chosen background. } void Credits::compute(GameObserver* g, GameApp * _app) diff --git a/projects/mtg/src/GameStateAwards.cpp b/projects/mtg/src/GameStateAwards.cpp index dbd3f0d0f..1bde79b34 100644 --- a/projects/mtg/src/GameStateAwards.cpp +++ b/projects/mtg/src/GameStateAwards.cpp @@ -37,7 +37,7 @@ GameStateAwards::GameStateAwards(GameApp* parent) : GameStateAwards::~GameStateAwards() { - kAwardFile = ""; //Reset the chosen backgorund. + kAwardFile = ""; //Reset the chosen background. } void GameStateAwards::End() @@ -50,7 +50,7 @@ void GameStateAwards::End() if (saveMe) options.save(); - kAwardFile = ""; //Reset the chosen backgorund. + kAwardFile = ""; //Reset the chosen background. } void GameStateAwards::Start() { diff --git a/projects/mtg/src/GameStateDeckViewer.cpp b/projects/mtg/src/GameStateDeckViewer.cpp index b87a7f68b..6a5ca9207 100644 --- a/projects/mtg/src/GameStateDeckViewer.cpp +++ b/projects/mtg/src/GameStateDeckViewer.cpp @@ -105,7 +105,7 @@ GameStateDeckViewer::~GameStateDeckViewer() SAFE_DELETE(myCollection); } SAFE_DELETE(filterMenu); - kBgFile = ""; //Reset the chosen backgorund. + kBgFile = ""; //Reset the chosen background. } void GameStateDeckViewer::rebuildFilters() @@ -308,7 +308,7 @@ void GameStateDeckViewer::End() SAFE_DELETE(playerdata); SAFE_DELETE(filterMenu); SAFE_DELETE(source); - kBgFile = ""; //Reset the chosen backgorund. + kBgFile = ""; //Reset the chosen background. } void GameStateDeckViewer::addRemove(MTGCard * card) diff --git a/projects/mtg/src/GameStateDuel.cpp b/projects/mtg/src/GameStateDuel.cpp index 42ee19e94..8251a21e7 100644 --- a/projects/mtg/src/GameStateDuel.cpp +++ b/projects/mtg/src/GameStateDuel.cpp @@ -182,7 +182,7 @@ GameStateDuel::~GameStateDuel() { End(); SAFE_DELETE(tournament); - kBgFile = ""; //Reset the chosen backgorund. + kBgFile = ""; //Reset the chosen background. } void GameStateDuel::Start() @@ -372,7 +372,7 @@ void GameStateDuel::End() #endif MTGAbility::deletedpointers.clear(); // Clear the list of deallocated pointer. - kBgFile = ""; //Reset the chosen backgorund. + kBgFile = ""; //Reset the chosen background. } //TODO Move This to utils or ResourceManager. Don't we have more generic functions that can do that? diff --git a/projects/mtg/src/GameStateOptions.cpp b/projects/mtg/src/GameStateOptions.cpp index 6beb10419..b6c684d23 100644 --- a/projects/mtg/src/GameStateOptions.cpp +++ b/projects/mtg/src/GameStateOptions.cpp @@ -25,7 +25,7 @@ GameStateOptions::GameStateOptions(GameApp* parent) : GameStateOptions::~GameStateOptions() { - kBgFile = ""; //Reset the chosen backgorund. + kBgFile = ""; //Reset the chosen background. } void GameStateOptions::Start() @@ -161,7 +161,7 @@ void GameStateOptions::End() JRenderer::GetInstance()->EnableVSync(false); SAFE_DELETE(optionsTabs); SAFE_DELETE(optionsMenu); - kBgFile = ""; //Reset the chosen backgorund. + kBgFile = ""; //Reset the chosen background. } void GameStateOptions::Update(float dt) @@ -282,7 +282,7 @@ void GameStateOptions::Render() const char * const CreditsText[] = { "Wagic, The Homebrew?! by Wololo", "", - "Updates, new cards, and more on http://wololo.net/wagic", + "Updates, new cards, and more on the Wagic Discord", "Many thanks to the people who help this project", "", "", @@ -320,7 +320,7 @@ void GameStateOptions::Render() "", "This work is not related to or endorsed by Wizards of the Coast, Inc", "", - "Please support this project with donations at http://wololo.net/wagic", + "Please support this project with donations at Wagic Discord", }; WFont * mFont = WResourceManager::Instance()->GetWFont(Fonts::MAGIC_FONT); diff --git a/projects/mtg/src/GuiBackground.cpp b/projects/mtg/src/GuiBackground.cpp index b78d236f2..9a1cc4501 100644 --- a/projects/mtg/src/GuiBackground.cpp +++ b/projects/mtg/src/GuiBackground.cpp @@ -17,7 +17,7 @@ GuiBackground::GuiBackground(GameObserver* observer) GuiBackground::~GuiBackground() { - kBackdropFile = ""; //Reset the chosen backgorund. + kBackdropFile = ""; //Reset the chosen background. } void GuiBackground::Render() diff --git a/projects/mtg/src/MTGDefinitions.cpp b/projects/mtg/src/MTGDefinitions.cpp index 647c0fb43..e2f95db43 100644 --- a/projects/mtg/src/MTGDefinitions.cpp +++ b/projects/mtg/src/MTGDefinitions.cpp @@ -245,7 +245,7 @@ const char* Constants::MTGBasicAbilities[] = { "countershroud", //Card can't get any kind of counter (e.g. "Solemnity"). "nonight", //It can't become night (e.g. "Angel of Eternal Dawn"). "nodamageremoved", //Damage is not removed from card (e.g. "Patient Zero"). - "backgroundpartner", //Can choose a backgorund partner as commander (e.g. "Faceless One"). + "backgroundpartner", //Can choose a background partner as commander (e.g. "Faceless One"). "bottomlibrarydeath", //It goes to bottom of library after death (e.g. "Quintorius, Loremaster"). "noloyaltydamage", //Damage does not cause loyalty counter to be removed from a Planeswalker (e.g. "Spark Rupture"). "nodefensedamage", //Damage does not cause defense counter to be removed from a Battle. diff --git a/projects/mtg/src/Rules.cpp b/projects/mtg/src/Rules.cpp index 17ab992ac..17ea7965b 100644 --- a/projects/mtg/src/Rules.cpp +++ b/projects/mtg/src/Rules.cpp @@ -454,7 +454,7 @@ Player * Rules::loadPlayerRandomCommander(GameObserver* observer, int isAI) if(colors.data()[0] != 0) { colors.insert(colors.begin(),0); } // Add lands - int numLands = colors.size() > 1 ? 40 / (colors.size() - 1) : 40; + int numLands = colors.size() > 2 ? 40 / (colors.size() - 1) : 40; if(colors.size() > 1) { for (unsigned int i = 1; i < colors.size(); i++) @@ -627,7 +627,7 @@ Player* Rules::loadPlayerRandomCommanderFromFile(GameObserver* observer, int isA } // Add lands - int numLands = colors.size() > 1 ? 40 / (colors.size() - 1) : 40; + int numLands = colors.size() > 2 ? 40 / (colors.size() - 1) : 40; if (colors.size() > 1) { for (unsigned int i = 1; i < colors.size(); i++) diff --git a/projects/mtg/src/Subtypes.cpp b/projects/mtg/src/Subtypes.cpp index 416c14df6..e0299f630 100644 --- a/projects/mtg/src/Subtypes.cpp +++ b/projects/mtg/src/Subtypes.cpp @@ -26,7 +26,7 @@ Subtypes::Subtypes() find("Dungeon"); find("Emblem"); find("Conspiracy"); - find("Backgorund"); + find("Background"); find("Battle"); }