From 31b3a7e78562fd8b2d05dd622d6dbcdcc18d13f8 Mon Sep 17 00:00:00 2001 From: Vittorio Alfieri Date: Thu, 18 Nov 2021 20:42:21 +0100 Subject: [PATCH] Fixed typos in primitives text, improved Deck Editor menu' commands (now select button toggle the Sideboard/Commanders/Dungeons view while the Note Button open the quick filter), added a new menu' option in Deck Editor to toggle Grid/Carousel view (useful on PSP/PSVita). --- CHANGELOG.md | 4 +- projects/mtg/bin/Res/lang/it.txt | 27 ++- .../bin/Res/sets/primitives/borderline.txt | 174 +++++++++--------- .../bin/Res/sets/primitives/planeswalkers.txt | 6 +- projects/mtg/include/GameStateDeckViewer.h | 1 + projects/mtg/src/GameStateDeckViewer.cpp | 17 +- 6 files changed, 117 insertions(+), 112 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 87c285c28..8be27cb63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,9 @@ ## [master] (https://github.com/WagicProject/wagic/tree/master) ### 18/11/21 -- *Committed:* Fixed primitives, fixed a commander deck for AI, improved all cards with partner ability, added a "partner=" key to associate the partner to a primitive, added new keywords "withpartner", "partname" and "haspartner" to improve the Target Chooser for cards with partner, improved the Commander rules to allow double commander just with specifc partner, improved background images management for game settings, deck selection, deck editor background, post-match credits, deck editor selection and trophies room (now it's possibile to randomly use up to 10 background images). ([Vitty85](https://github.com/Vitty85)) +- *Committed:* Fixed typos in primitives text, improved Deck Editor menu' commands (now select button toggle the Sideboard/Commanders/Dungeons view while the Note Button open the quick filter), added a new menu' option in Deck Editor to toggle Grid/Carousel view (useful on PSP/PSVita). ([Vitty85](https://github.com/Vitty85)) + +- *Committed:* Fixed primitives, fixed a commander deck for AI, improved all cards with partner ability, added a "partner=" key to associate the partner to a primitive, added new keywords "withpartner", "partname" and "haspartner" to improve the Target Chooser for cards with partner, improved the Commander rules to allow double commander just with specifc partner, improved background images management for game settings, deck selection, deck editor background, post-match credits, deck editor selection and trophies room (now it's possibile to randomly use up to 10 background images). https://github.com/WagicProject/wagic/commit/152dafc90fad8ecab32bbeb44b1c5e0b64915286 ([Vitty85](https://github.com/Vitty85)) ### 15/11/21 - *Committed:* Fixed primitives, updated italian lang file, added a new setting to sort decks by creation date (by default they will be sorted by name), added new filters to match cards that don't contain a particular color or that are multicolored, fixed an issue when the transformation with uynt is triggered by instant/sorcery or by card that left the battlefield before the ability ending turn, fixed a rendering overlap on mana symbols in deck editor, fixed some crashes on ManaCost parser (e.g. Filter by mana producer). https://github.com/WagicProject/wagic/commit/477ffa6a0ce1312d73a4a3c82145f1b71e505681 ([Vitty85](https://github.com/Vitty85)) diff --git a/projects/mtg/bin/Res/lang/it.txt b/projects/mtg/bin/Res/lang/it.txt index a9a807ad3..1089477fe 100644 --- a/projects/mtg/bin/Res/lang/it.txt +++ b/projects/mtg/bin/Res/lang/it.txt @@ -436,6 +436,7 @@ Save=Salva Set=Edizione Switch decks without saving=Cambia mazzo senza salvare Switch Decks=Cambia mazzo +Toggle View=Cambia vista --UNLOCK CARDS--=-SBLOCCA CARTE- #Vista collezione @@ -739,16 +740,18 @@ Next color=Colore successivo Prev. color=Colore precedente #Informacion - Botones: -Add card=Aggiungi carta +Add card=Aggiungi Carta Display collection=Mostra raccolta Display Deck=Mostra mazzo -filter=filtro -Remove card=Rimuovi carta +Filter=Filtro +Grid=Griglia +Carousel=Carosello +Remove card=Rimuovi Carta Sell Card=Vendi Carta -Stats=Statistiche -Toggle Images=Mostra immagini -View Collection=Vedi Collezione -View Deck=Visualizza mazzo +Stats=Stat. +Toggle Images=Immagini Si/No +Collection=Vedi Collezione +View Deck=Vedi Mazzo #Informacion - Explicaciones: Use SQUARE to view your deck,=Usa QUADRATO per vedere il tuo mazzo, @@ -765,6 +768,7 @@ Do not make any changes to deck. Return to the main menu.=Non apportare modifich Do not make any changes. View another deck.=Non apportare modifiche. Vedi un altro mazzo. Narrow down the list of cards. =Riduci l'elenco delle carte. Save changes. Return to the main menu=Salvare le modifiche. Torna al menu' principale. +Toggle view grid/carousel.=Cambia la vista griglia/carosello. ########## # FILTRO # @@ -1209,15 +1213,6 @@ Check Task Board=Controlla Bacheca obiettivi Open Task Board=Apri Bacheca obiettivi Close Task Board=Chiudi Bacheca obiettivi -Toggle Images=Immagini Si/No -View Deck=Vedi Mazzo -View Collection=Guarda Collez. -Use SQUARE to view your deck,=Usa QUADRATO per vedere il mazzo, -Use SQUARE to view collection,=Usa QUADRATO per la collezione, - - - - # new lines - abilities - why did i forget these before? u.U trample=travolgere first strike=attacco improvv. diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index cd042c2b1..5d82208e2 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -1124,7 +1124,7 @@ abilities=exiledeath other={4}{U}{U}{R} name(Cleave) auto=turns:+1 controller auto=ifnot paid(alternative) then emblem transforms((,newability[@each my upkeep:phaseaction[endofturn once] winGame opponent])) forever dontremove -text=Cleave {4}{U}{U}{R} (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.) -- Take an extra turn after this one. During that turn, damage canâ??t be prevented. [At the beginning of that turnâ??s end step, you lose the game.] -- Exile Alchemistâ??s Gambit. +text=Cleave {4}{U}{U}{R} (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.) -- Take an extra turn after this one. During that turn, damage can't be prevented. [At the beginning of that turn's end step, you lose the game.] -- Exile Alchemist's Gambit. mana={1}{R}{R} type=Sorcery [/card] @@ -2150,7 +2150,7 @@ 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={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. +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} type=Legendary Creature subtype=Vampire @@ -2897,7 +2897,7 @@ toughness=1 [card] name=Archghoul of Thraben auto=@movedto(zombie|graveyard) from(mybattlefield):name(Look top card) all(*[zpos=1]|mylibrary) moveto(myhand) and!( transforms((,newability[if cantargetcard(*[zombie]|*) then choice name(Put in hand) name(Put in hand) donothing],newability[choice name(Put back in library) moveto(mylibrary)],newability[choice name(Put in graveyard) moveto(mygraveyard)])) oneshot )! -text=Whenever Archghoul of Thraben or another Zombie you control dies, look at the top card of your library. If itâ??s a Zombie card, you may reveal it and put it into your hand. If you donâ??t put the card into your hand, you may put it into your graveyard. +text=Whenever Archghoul of Thraben or another Zombie you control dies, look at the top card of your library. If it's a Zombie card, you may reveal it and put it into your hand. If you don't put the card into your hand, you may put it into your graveyard. mana={2}{B} type=Creature subtype=Zombie Cleric @@ -3442,7 +3442,7 @@ subtype=Trap name=Arterial Alchemy auto=token(Blood) auto=lord(blood|mybattlefield) transforms((Equipment,newability[{2}:equip],newability[teach(creature) 2/0])) -text=When Arterial Alchemy enters the battlefield, 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} +text=When Arterial Alchemy enters the battlefield, 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} type=Enchantment [/card] @@ -4737,7 +4737,7 @@ auto=if type(*[day;night]|battlefield)~equalto~0 then name(It becomes night) act auto={2}{R}:name(Damage player) target(player) damage:1 auto={2}{R}:name(Damage planeswalker) target(planeswalker) damage:1 auto={2}{R}:name(Damage creature) target(creature) damage:1 && transforms((,newability[cantblock])) ueout -text={2}{R}: Ballista Wielder deals 1 damage to any target. A creature dealt damage this way canâ??t block this turn. -- Nightbound (If a player casts at least two spells during their own turn, it becomes day next turn.) // Ballista Watcher +text={2}{R}: Ballista Wielder deals 1 damage to any target. A creature dealt damage this way can't block this turn. -- Nightbound (If a player casts at least two spells during their own turn, it becomes day next turn.) // Ballista Watcher type=Creature subtype=Werewolf color=red @@ -5719,7 +5719,7 @@ toughness=6 name=Belligerent Guest abilities=trample auto=@combatdamaged(player) from(this):name(Create Blood) token(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.") +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 subtype=Vampire @@ -6116,7 +6116,7 @@ anyzone={0}:doubleside(backside) aicode=activate transforms((,newability[all(*[zpos<=2]|mylibrary) transforms((,newability[may name(Put on bottom of library) moveto(myreveal) and!( bottomoflibrary )!])) oneshot])) oneshot auto=scry:2 scrycore delayed dontshow donothing scrycoreend scryend auto=@sacrificed(this):name(Return transformed) name(Return transformed) transforms((,newability[@each endofturn:name(Return transformed) flip(backside) forcetype(Creature Serpent)])) ueot -text=Defender -- When Biolume Egg enters the battlefield, scry 2. -- When you sacrifice Biolume Egg, return it to the battlefield transformed under its ownerâ??s control at the beginning of the next end step. // Biolume Serpent +text=Defender -- When Biolume Egg enters the battlefield, scry 2. -- When you sacrifice Biolume Egg, return it to the battlefield transformed under its owner's control at the beginning of the next end step. // Biolume Serpent mana={2}{U} type=Creature subtype=Serpent Egg @@ -6127,7 +6127,7 @@ toughness=4 name=Biolume Serpent backside=Biolume Egg auto={S(island|mybattlefield)}{S(island|mybattlefield)}:name(Gains unblockable) transforms((,newability[unblockable])) ueot -text=Sacrifice two Islands: Biolume Serpent canâ??t be blocked this turn. // Biolume Egg +text=Sacrifice two Islands: Biolume Serpent can't be blocked this turn. // Biolume Egg color=blue type=Creature subtype=Serpent @@ -7023,7 +7023,7 @@ toughness=3 name=Blood Hypnotist abilities=cantblock auto=@sacrificed(blood|mybattlefield) turnlimited:name(Creature can't block) target(creature) cantblock ueot -text=Blood Hypnotist canâ??t block. -- Whenever you sacrifice one or more Blood tokens, target creature canâ??t block this turn. This ability triggers only once each turn. +text=Blood Hypnotist can't block. -- Whenever you sacrifice one or more Blood tokens, target creature can't block this turn. This ability triggers only once each turn. mana={2}{R} type=Creature subtype=Vampire @@ -7214,7 +7214,7 @@ name=Bloodcrazed Socialite abilities=menace auto=token(Blood) auto=@combat(attacking) source(this):may name(Sacrifice blood) target(blood|mybattlefield) sacrifice && all(this) 2/2 ueot -text=Menace -- When Bloodcrazed Socialite enters the battlefield, 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. +text=Menace -- When Bloodcrazed Socialite enters the battlefield, 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} type=Creature subtype=Vampire @@ -7324,7 +7324,7 @@ name=Bloodsoaked Reveler backside=Restless Bloodseeker auto=@each my endofturn restriction{compare(lifegain)~morethan~0}:name(Create Blood) token(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 +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 type=Creature subtype=Vampire @@ -7346,7 +7346,7 @@ name=Bloodsworn Knight backside=Bloodsworn Squire anyzone=type:creature:mygraveyard/type:creature:mygraveyard cdaactive auto={1}{B}{D(*|myhand)}:name(Tap and indestructible) transforms((,newability[tap],newability[indestructible])) ueot -text=Bloodsworn Knightâ??s power and toughness are each equal to the number of creature cards in your graveyard. -- {1}{B}, Discard a card: Bloodsworn Knight gains indestructible until end of turn. Tap it. (Damage and effects that say "destroy" donâ??t destroy it.) // Bloodsworn Squire +text=Bloodsworn Knight's power and toughness are each equal to the number of creature cards in your graveyard. -- {1}{B}, Discard a card: Bloodsworn Knight gains indestructible until end of turn. Tap it. (Damage and effects that say "destroy" don't destroy it.) // Bloodsworn Squire color=black type=Creature subtype=Vampire Knight @@ -7359,7 +7359,7 @@ backside=Bloodsworn Knight restriction=compare(isflipped)~equalto~0 anyzone={0}:doubleside(backside) auto={1}{B}{D(*|myhand)}:name(Tap and indestructible) transforms((,newability[tap],newability[indestructible],newability[if type(creature|mygraveyard)~morethan~3 then flip(backside)])) ueot -text={1}{B}, Discard a card: Bloodsworn Squire gains indestructible until end of turn. Tap it. Then if there are four or more creature cards in your graveyard, transform Bloodsworn Squire. (Damage and effects that say "destroy" donâ??t destroy it.) // Bloodsworn Knight +text={1}{B}, Discard a card: Bloodsworn Squire gains indestructible until end of turn. Tap it. Then if there are four or more creature cards in your graveyard, transform Bloodsworn Squire. (Damage and effects that say "destroy" don't destroy it.) // Bloodsworn Knight mana={3}{B} type=Creature subtype=Vampire Soldier @@ -7442,7 +7442,7 @@ toughness=4 name=Bloodtithe Harvester auto=token(Blood) auto={T}{S}:name(Creature gets -X/-X) target(creature) -twicetype:blood:mybattlefield/-twicetype:blood:mybattlefield ueot asSorcery -text=When Bloodtithe Harvester enters the battlefield, 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. +text=When Bloodtithe Harvester enters the battlefield, 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} type=Creature subtype=Vampire @@ -7466,7 +7466,7 @@ name=Bloodvial Purveyor abilities=flying,trample auto=@movedto(*|opponentstack):name(Create Blood) token(Blood) opponent auto=@combat(attacking) source(this):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. +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} type=Creature subtype=Vampire @@ -8688,7 +8688,7 @@ type=Instant name=Breath of the Sleepless auto=lord(spirit|mycastingzone) asflash auto=@movedto(creature|mystack) restriction{compare(controllerturn)~equalto~0}:may name(Tap a creature) target(creature|battlefield) tap -text=You may cast Spirit spells as though they had flash. -- Whenever you cast a creature spell during an opponentâ??s turn, tap up to one target creature. +text=You may cast Spirit spells as though they had flash. -- Whenever you cast a creature spell during an opponent's turn, tap up to one target creature. mana={3}{U} type=Enchantment [/card] @@ -8696,7 +8696,7 @@ type=Enchantment name=Breathkeeper Seraph abilities=soulbond,flying auto=soulbond transforms((,newability[@movedto(this|graveyard) from(battlefield):name(Return on battlefield) transforms((,newability[@each my upkeep:may name(Return on battlefield) moveto(ownerbattlefield) and!( tap(noevent) )!])) forever])) -text=Flying, soulbond (You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.) -- As long as Breathkeeper Seraph is paired with another creature, each of those creatures has "When this creature dies, you may return it to the battlefield under its ownerâ??s control at the beginning of your next upkeep." +text=Flying, soulbond (You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.) -- As long as Breathkeeper Seraph is paired with another creature, each of those creatures has "When this creature dies, you may return it to the battlefield under its owner's control at the beginning of your next upkeep." mana={4}{W}{W} type=Creature subtype=Angel @@ -8806,7 +8806,7 @@ auto=teach(creature) becomes(Bride) auto=aslongas(groom[geared]|mybattlefield) teach(creature) 0/1 auto=aslongas(groom[geared]|mybattlefield) teach(creature) teach(creature) first strike auto={2}:equip -text=Equipped creature gets +2/+0. It gets an additional +0/+2 and has first strike as long as an equipment named Groomâ??s Finery is attached to a creature you control. -- Equip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.) +text=Equipped creature gets +2/+0. It gets an additional +0/+2 and has first strike as long as an equipment named Groom's Finery is attached to a creature you control. -- Equip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.) mana={1}{W} type=Artifact subtype=Equipment @@ -10517,7 +10517,7 @@ toughness=2 name=Catapult Captain backside=Catapult Fodder auto={2}{B}{T}{S(other creature)mybattlefield}:damage:storedtoughness opponent -text={2}{B}, {T}, Sacrifice another creature: Target opponent loses life equal to the sacrificed creatureâ??s toughness. // Catapult Fodder +text={2}{B}, {T}, Sacrifice another creature: Target opponent loses life equal to the sacrificed creature's toughness. // Catapult Fodder color=black type=Creature subtype=Zombie @@ -11480,7 +11480,7 @@ toughness=2 [card] name=Change of Fortune auto=all(*|myhand) reject && all(this|mystack) transforms((,newability[name(Draw cards) draw:type:*[discarded]:mygraveyard controller])) oneshot -text=Discard your hand, then draw a card for each card youâ??ve discarded this turn. +text=Discard your hand, then draw a card for each card you've discarded this turn. mana={3}{R} type=Sorcery [/card] @@ -12703,7 +12703,7 @@ subtype=Class [card] name=Cleric Hall anyzone=type:enchantment:mybattlefield/type:enchantment:mybattlefield cdaactive -text=This creatureâ??s power and toughness are each equal to the number of Spirits you control. +text=This creature's power and toughness are each equal to the number of Spirits you control. type=Creature subtype=Spirit Cleric color=white @@ -14043,7 +14043,7 @@ name=Consuming Tide auto=name(Choose a nonland permanent) target(*[-land]|mybattlefield) transforms((,newability[all(other *[-land]|mybattlefield) moveto(ownerhand)])) oneshot auto=ability$!name(Choose a nonland permanent) name(Choose a nonland permanent) target(*[-land]|mybattlefield) transforms((,newability[all(other *[-land]|mybattlefield) moveto(ownerhand)])) oneshot!$ opponent auto=if compare(ohandcountplustype:*[-land]:opponentbattlefieldplusendminus1minusend)~morethan~compare(phandcountplustype:*[-land]:mybattlefieldplusendminus1minusend) then draw:1 controller -text=Each player chooses a nonland permanent they control. Return all nonland permanents not chosen this way to their ownersâ?? hands. Then you draw a card for each opponent who has more cards in their hand than you. +text=Each player chooses a nonland permanent they control. Return all nonland permanents not chosen this way to their owners' hands. Then you draw a card for each opponent who has more cards in their hand than you. mana={2}{U}{U} type=Sorcery [/card] @@ -14832,7 +14832,7 @@ toughness=2 name=Creepy Puppeteer abilities=haste auto=@combat(attacking) source(this) restriction{type(creature[attacking]|mybattlefield)~equalto~2}:may name(Another creature becomes 4/3) target(other creature[attacking]|mybattlefield) transforms((,setpower=4,settoughness=3)) ueot -text=Haste -- Whenever Creepy Puppeteer attacks, if you attacked with exactly one other creature this combat, you may have that creatureâ??s base power and toughness become 4/3 until end of turn. +text=Haste -- Whenever Creepy Puppeteer attacks, if you attacked with exactly one other creature this combat, you may have that creature's base power and toughness become 4/3 until end of turn. mana={3}{R} type=Creature subtype=Human Rogue @@ -15375,7 +15375,7 @@ abilities=trample anyzone=type:land:mybattlefield/type:land:mybattlefield cdaactive auto=may name(Put land in play) target(land|myhand) moveto(mysideboard) and!( moveto(mybattlefield) and!( transforms((,newability[tap(noevent)],newability[draw:1 controller])) oneshot )! )! auto=this(cantargetcard(*[fresh]|*)) transforms((,newability[@movedto(land|mybattlefield) from(mysideboard):may name(Put land in play) target(land|myhand) moveto(mysideboard) and!( moveto(mybattlefield) and!( transforms((,newability[tap(noevent)],newability[draw:1 controller])) oneshot )! )!])) -text=Trample -- Cultivator Colossusâ??s power and toughness are each equal to the number of lands you control. -- When Cultivator Colossus enters the battlefield, you may put a land card from your hand onto the battlefield tapped. If you do, draw a card and repeat this process. +text=Trample -- Cultivator Colossus's power and toughness are each equal to the number of lands you control. -- When Cultivator Colossus enters the battlefield, you may put a land card from your hand onto the battlefield tapped. If you do, draw a card and repeat this process. mana={4}{G}{G}{G} type=Creature subtype=Plant Beast @@ -15613,7 +15613,7 @@ name=Curse of Hospitality target=opponent auto=lord(creature|mybattlefield) trample auto=@combatdamagefoeof(player) from(creature|mybattlefield):name(Exile top card) all(*[zpos=1]|opponentlibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[anytypeofmana],newability[phaseaction[endofturn once checkex] moveto(ownerexile)])) ueot )! -text=Enchant player -- Creatures attacking enchanted player have trample. -- Whenever a creature deals combat damage to enchanted player, that player exiles the top card of their library. Until end of turn, that creatureâ??s controller may play that card and they may spend mana as though it were mana of any color to cast that spell. +text=Enchant player -- Creatures attacking enchanted player have trample. -- Whenever a creature deals combat damage to enchanted player, that player exiles the top card of their library. Until end of turn, that creature's controller may play that card and they may spend mana as though it were mana of any color to cast that spell. mana={2}{R} type=Enchantment subtype=Aura Curse @@ -16816,7 +16816,7 @@ abilities=trample backside=Alluring Suitor auto=add{R}{R} doesntempty auto={R}{R}:name(Gets 1/0) transforms((,newability[1/0],newability[name(Another creature gets 1/0) target(other creature|battlefield) 1/0 ueot])) ueot -text=Trample -- When this creature transforms into Deadly Dancer, add {R}{R}. Until end of turn, you donâ??t lose this mana as steps and phases end. -- {R}{R}: Deadly Dancer and another target creature each get +1/+0 until end of turn. // Alluring Suitor +text=Trample -- When this creature transforms into Deadly Dancer, add {R}{R}. Until end of turn, you don't lose this mana as steps and phases end. -- {R}{R}: Deadly Dancer and another target creature each get +1/+0 until end of turn. // Alluring Suitor type=Creature subtype=Vampire color=red @@ -18799,7 +18799,7 @@ name=Disorder in the Court target=creature|battlefield auto=moveto(exile) and!( transforms((,newability[@each endofturn:name(Return tapped) moveto(ownerbattlefield) and!( tap(noevent) )!])) ueot )! auto=token(Clue) -text=Exile X target creatures, then investigate X times. Return the exiled cards to the battlefield tapped under their ownersâ?? control at the beginning of the next end step. (To investigate, create a colorless Clue artifact token with "{2}, Sacrifice this artifact: Draw a card.") +text=Exile X target creatures, then investigate X times. Return the exiled cards to the battlefield tapped under their owners' control at the beginning of the next end step. (To investigate, create a colorless Clue artifact token with "{2}, Sacrifice this artifact: Draw a card.") mana={X}{W}{U} type=Instant [/card] @@ -18912,7 +18912,7 @@ type=Instant [card] name=Diver Skaab auto=may name(Exploit a creature) target(creature|mybattlefield) exploits and!( transforms((,newability[name(Put in library) target(creature|battlefield) transforms((,newability[choice name(Put on top) moveto(ownerlibrary)],newability[choice name(Put on bottom) bottomoflibrary])) oneshot])) oneshot )! -text=Exploit (When this creature enters the battlefield, you may sacrifice a creature.) -- Whenever Diver Skaab exploits a creature, target creatureâ??s owner puts it on the top or bottom of their library. +text=Exploit (When this creature enters the battlefield, you may sacrifice a creature.) -- Whenever Diver Skaab exploits a creature, target creature's owner puts it on the top or bottom of their library. mana={3}{U}{U} type=Creature subtype=Zombie @@ -19107,7 +19107,7 @@ type=Enchantment [card] name=Dollhouse of Horrors auto={1}{T}:name(Exile creature) target(creature|mygraveyard) moveto(myexile) and!( clone and!( transforms((Artifact Construct,newability[type:construct:mybattlefield/type:construct:mybattlefield cdaactive],newability[haste])) forever )! )! asSorcery -text={1}, {T}: Exile a creature card from your graveyard: Create a token thatâ??s a copy of that card, except itâ??s a 0/0 Construct artifact creature with "This creature gets +1/+1 for each Construct you control." That creature gains haste until end of turn. Activate only as a sorcery. +text={1}, {T}: Exile a creature card from your graveyard: Create a token that's a copy of that card, except it's a 0/0 Construct artifact creature with "This creature gets +1/+1 for each Construct you control." That creature gains haste until end of turn. Activate only as a sorcery. mana={5} type=Artifact [/card] @@ -19303,7 +19303,7 @@ name=Dorothea's Retribution abilities=exiledeath backside=Dorothea, Vengeful Victim target=creature -text=Enchant creature -- Enchanted creature has "Whenever this creature attacks, create a 4/4 white Spirit creature token with flying thatâ??s tapped and attacking. Sacrifice that token at end of combat." -- If Dorotheaâ??s Retribution would be put into a graveyard from anywhere, exile it instead. // Dorothea, Vengeful Victim +text=Enchant creature -- Enchanted creature has "Whenever this creature attacks, create a 4/4 white Spirit creature token with flying that's tapped and attacking. Sacrifice that token at end of combat." -- If Dorothea's Retribution would be put into a graveyard from anywhere, exile it instead. // Dorothea, Vengeful Victim color=white,blue type=Enchantment subtype=Aura @@ -19978,7 +19978,7 @@ toughness=1 name=Dreadfeast Demon abilities=flying auto=@each my endofturn restriction{type(creature[-demon]|mybattlefield)~morethan~0}:may name(Sacrifice a creature) target(creature[-demon]|mybattlefield) sacrifice and!( all(this) clone )! -text=Flying -- At the beginning of your end step, sacrifice a non-Demon creature. If you do, create a token thatâ??s a copy of Dreadfeast Demon. +text=Flying -- At the beginning of your end step, sacrifice a non-Demon creature. If you do, create a token that's a copy of Dreadfeast Demon. mana={5}{B}{B} type=Creature subtype=Demon @@ -20207,8 +20207,8 @@ type=Land [/card] [card] name=Dreamshackle Geist -auto=@each my combatbegins:may name(Choose one) transforms((,newability[choice name(Tap a creature) target(creature) tap],newability[name(Creature doesnâ??t untap) target(creature) frozen])) oneshot -text=Flying -- At the beginning of combat on your turn, choose up to one -- Tap target creature. -- Target creature doesnâ??t untap during its controllerâ??s next untap step. +auto=@each my combatbegins:may name(Choose one) transforms((,newability[choice name(Tap a creature) target(creature) tap],newability[name(Creature doesn't untap) target(creature) frozen])) oneshot +text=Flying -- At the beginning of combat on your turn, choose up to one -- Tap target creature. -- Target creature doesn't untap during its controller's next untap step. mana={1}{U}{U} type=Creature subtype=Spirit @@ -21232,7 +21232,7 @@ name=Edgar Markov's Coffin backside=Edgar, Charmed Groom auto=@each my upkeep restriction{compare(hascntbloodline)~equalto~2}:name(Transform) flip(backside) && removeallcounters(0/0,1,Bloodline) auto=@each my upkeep:name(Create vampire and put counter) token(Vampire,Creature Vampire,1/1,white,black,lifelink) && counter(0/0,1,Bloodline) -text=At the beginning of your upkeep, create a 1/1 white and black Vampire creature token with lifelink and put a bloodline counter on Edgar Markovâ??s Coffin. Then if there are three or more bloodline counters on it, remove those counters and transform it. // Edgar, Charmed Groom +text=At the beginning of your upkeep, create a 1/1 white and black Vampire creature token with lifelink and put a bloodline counter on Edgar Markov's Coffin. Then if there are three or more bloodline counters on it, remove those counters and transform it. // Edgar, Charmed Groom type=Legendary Artifact color=black,white [/card] @@ -21241,7 +21241,7 @@ name=Edgar's Awakening target=creature|mygraveyard auto=moveto(mybattlefield) autograveyard=restriction{discarded} pay({B}) name(Pay and return) activate name(Return creature) castcard(normal) -text=Return target creature card from your graveyard to the battlefield. -- When you discard Edgarâ??s Awakening, you may pay {B}. When you do, return target creature card from your graveyard to your hand. +text=Return target creature card from your graveyard to the battlefield. -- When you discard Edgar's Awakening, you may pay {B}. When you do, return target creature card from your graveyard to your hand. mana={3}{B}{B} type=Sorcery [/card] @@ -21252,7 +21252,7 @@ restriction=compare(isflipped)~equalto~0 anyzone={0}:doubleside(backside) auto=lord(other vampire|mybattlefield) 1/1 auto=_DIES_name(Return transformed) name(Return transformed) flip(backside) forcetype(Legendary Artifact) -text=Other vampires you control get +1/+1. -- When Edgar, Charmed Groom dies, return it to the battlefield transformed under its ownerâ??s control. // Edgar Markov's Coffin +text=Other vampires you control get +1/+1. -- When Edgar, Charmed Groom dies, return it to the battlefield transformed under its owner's control. // Edgar Markov's Coffin mana={2}{W}{B} type=Legendary Creature subtype=Vampire Noble @@ -23010,7 +23010,7 @@ name=Ethereal Investigator abilities=flying auto=name(Investigate) token(Clue) auto=_SECOND_DRAW_name(Create spirit) token(Spirit,Creature Spirit,1/1,white,flying) -text=Flying -- When Ethereal Investigator enters the battlefield, investigate X times, where X is the number of opponents you have. (To investigate, create a colorless Clue artifact token with â??2, Sacrifice this artifact: Draw a card.â??) -- Whenever you draw your second card each turn, create a 1/1 white Spirit creature token with flying. +text=Flying -- When Ethereal Investigator enters the battlefield, investigate X times, where X is the number of opponents you have. (To investigate, create a colorless Clue artifact token with "{2}, Sacrifice this artifact: Draw a card.") -- Whenever you draw your second card each turn, create a 1/1 white Spirit creature token with flying. mana={3}{U} type=Creature subtype=Spirit @@ -23972,7 +23972,7 @@ retrace={5}{W}{W} name(Cast with disturb) autostack=if paid(retrace) then flip(backside) forcetype(Enchantment Aura Curse) and!( transforms((,newability[@each my upkeep:name(Put Judgment counter) counter(0/0.1.Judgment)],newability[@counteradded(0/0.1.Judgment) from(this) restriction{compare(hascntjudgment)~equalto~3}:name(Opponent looses game) winGame controller])) forever )! auto=@each my upkeep restriction{compare(hascntjudgment)~lessthan~3}:name(Put Judgment counter) counter(0/0.1.Judgment) auto=this(counter{0/0.1.Judgment}>=3) canattack -text=Defender, flying, vigilance -- At the beginning of your upkeep, if Faithbound Judge has two or fewer jdugment counters on it, put a judgdment counter on it. -- As long as Faithbound Judge has three or more judgment counters on it, it can atack as though it didnâ??t have defender. -- Disturb {5}{W}{W} // Sinner's Judgment +text=Defender, flying, vigilance -- At the beginning of your upkeep, if Faithbound Judge has two or fewer jdugment counters on it, put a judgdment counter on it. -- As long as Faithbound Judge has three or more judgment counters on it, it can atack as though it didn't have defender. -- Disturb {5}{W}{W} // Sinner's Judgment mana={1}{W}{W} type=Creature subtype=Spirit Soldier @@ -24033,7 +24033,7 @@ name=Falkenrath Forebear abilities=cantblock,flying auto=@combatdamaged(player) from(this):name(Create Blood) token(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. +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} type=Creature subtype=Vampire @@ -24452,7 +24452,7 @@ backside=Fearsome Werewolf restriction=compare(isflipped)~equalto~0 anyzone={0}:doubleside(backside) auto=if type(*[day;night]|battlefield)~equalto~0 then name(It becomes day) activate castcard(noevent named!:Day:!) -text=Menace (This creature canâ??t be blocked except by two or more creatures.) -- Daybound (If a player casts no spells during their own turn, it becomes night next turn.) // Fearsome Werewolf +text=Menace (This creature can't be blocked except by two or more creatures.) -- Daybound (If a player casts no spells during their own turn, it becomes night next turn.) // Fearsome Werewolf mana={2}{R} type=Creature subtype=Human Werewolf @@ -24509,7 +24509,7 @@ name=Fearsome Werewolf abilities=nightbound,menace backside=Fearful Villager auto=if type(*[day;night]|battlefield)~equalto~0 then name(It becomes night) activate castcard(noevent named!:Night:!) -text=Menace (This creature canâ??t be blocked except by two or more creatures.) -- Nightbound (If a player casts at least two spells during their own turn, it becomes day next turn.) // Fearful Villager +text=Menace (This creature can't be blocked except by two or more creatures.) -- Nightbound (If a player casts at least two spells during their own turn, it becomes day next turn.) // Fearful Villager type=Creature subtype=Werewolf color=red @@ -26133,7 +26133,7 @@ toughness=6 name=Fleeting Spirit auto={W}{E(*|mygraveyard)}{E(*|mygraveyard)}{E(*|mygraveyard)}:name(Gains first strike) transforms((,newability[first strike])) ueot auto={D(*|myhand)}:name(Exile and return) moveto(myexile) and!( transforms((,newability[phaseaction[endofturn once checkex] moveto(ownerbattlefield)])) ueot )! -text={W}, Exile three cards from your graveyard: Fleeting Spirit gains first strike until end of turn. -- Discard a card: Exile Fleeting Spirit. Return it to the battlefield under its ownerâ??s control at the beginning of the next end step. +text={W}, Exile three cards from your graveyard: Fleeting Spirit gains first strike until end of turn. -- Discard a card: Exile Fleeting Spirit. Return it to the battlefield under its owner's control at the beginning of the next end step. mana={1}{W} type=Creature subtype=Spirit @@ -28322,7 +28322,7 @@ type=Sorcery name=Geralf, Visionary Stitcher auto=lord(zombie|mybattlefield) flying auto={U}{T}{S(other creature[-token]|mybattlefield)}:name(Create Zombie) token(Zombie,Creature Zombie,storedtoughness/storedtoughness,blue) -text=Zombies you control have flying. -- {U}, {T}, Sacrifice another nontoken creature: Create an X/X blue Zombie creature token, where X is the sacrificed creatureâ??s toughness. +text=Zombies you control have flying. -- {U}, {T}, Sacrifice another nontoken creature: Create an X/X blue Zombie creature token, where X is the sacrificed creature's toughness. mana={2}{U} type=Legendary Creature subtype=Human Wizard @@ -28396,7 +28396,7 @@ name=Ghastly Mimicry abilities=exiledeath backside=Mirrorhall Mimic target=creature -text=Enchant creature -- At the beginning of your upkeep, create a token thatâ??s a copy of enchanted creature, except itâ??s a Spirit in addition to its other types. -- If Ghastly Mimicry would be put into a graveyard from anywhere, exile it instead. // Mirrorhall Mimic +text=Enchant creature -- At the beginning of your upkeep, create a token that's a copy of enchanted creature, except it's a Spirit in addition to its other types. -- If Ghastly Mimicry would be put into a graveyard from anywhere, exile it instead. // Mirrorhall Mimic color=blue type=Enchantment subtype=Aura @@ -29128,7 +29128,7 @@ name=Glass-Cast Heart auto=@combat(attacking) source(vampire|mybattlefield):name(Create blood) token(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. +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. mana={2}{B} type=Artifact [/card] @@ -29447,7 +29447,7 @@ name=Gluttonous Guest abilities=deathtouch auto=name(Create a blood) token(Blood) auto=@sacrificed(blood|mybattlefield):name(Gain 1 life) life:1 controller -text=When Gluttonous Guest enters the battlefield, 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. +text=When Gluttonous Guest enters the battlefield, 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} type=Creature subtype=Vampire @@ -31406,7 +31406,7 @@ auto=teach(creature) becomes(Groom) auto=aslongas(bride[geared]|mybattlefield) teach(creature) 0/1 auto=aslongas(bride[geared]|mybattlefield) teach(creature) deathtouch auto={2}:equip -text=Equipped creature gets +2/+0. It gets an additional +0/+2 and has deathtouch as long as an Equipment named Brideâ??s Gown is attached to a creature you control. -- Equip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.) +text=Equipped creature gets +2/+0. It gets an additional +0/+2 and has deathtouch as long as an Equipment named Bride's Gown is attached to a creature you control. -- Equip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.) mana={1}{B} type=Artifact subtype=Equipment @@ -31857,7 +31857,7 @@ abilities=exiledeath backside=Gutter Skulker target=creature auto=teach(creature) transforms((,newability[@combat(attacking) source(this) restriction{type(creature[attacking]|myBattlefield)~equalto~1}:name(Becomes unblockable) unblockable ueot])) -text=Enchant creature -- Enchanted creature canâ??t be blocked as long as itâ??s attacking alone. -- If Gutter Shortcut would be put into a graveyard from anywhere, exile it instead. // Gutter Skulker +text=Enchant creature -- Enchanted creature can't be blocked as long as it's attacking alone. -- If Gutter Shortcut would be put into a graveyard from anywhere, exile it instead. // Gutter Skulker color=blue type=Enchantment subtype=Aura @@ -31871,7 +31871,7 @@ anyzone={0}:doubleside(backside) retrace={3}{U} name(Cast with disturb) auto=@combat(attacking) source(this) restriction{type(creature[attacking]|myBattlefield)~equalto~1}:name(Becomes unblockable) unblockable ueot autostack=if paid(retrace) then flip(backside) forcetype(Enchantment Aura) and!( transforms((,newability[name(Attach to creature) retargetfromplay target(creature)])) forever )! -text=Gutter Skulker canâ??t be blocked as long as itâ??s attacking alone. -- Disturb {3}{U} (You may cast this card from your graveyard transformed for its disturb cost.) // Gutter Shortcut +text=Gutter Skulker can't be blocked as long as it's attacking alone. -- Disturb {3}{U} (You may cast this card from your graveyard transformed for its disturb cost.) // Gutter Shortcut mana={3}{U} type=Creature subtype=Spirit @@ -32119,7 +32119,7 @@ auto=@each my combatbegins restriction{compare(p)~equalto~17}:name(Put 1/1 count auto=@each my combatbegins restriction{compare(p)~equalto~18}:name(Put 1/1 counters) target(other creature|mybattlefield) transforms((,newability[haste],newability[counter(1/1.18)])) ueot auto=@each my combatbegins restriction{compare(p)~equalto~19}:name(Put 1/1 counters) target(other creature|mybattlefield) transforms((,newability[haste],newability[counter(1/1.19)])) ueot auto=@each my combatbegins restriction{compare(p)~morethan~19}:name(Put 1/1 counters) target(other creature|mybattlefield) transforms((,newability[haste],newability[counter(1/1.20)])) ueot -text=First strike, reach -- At the beginning of combat on your turn, put X +1/+1 counters on another target creature you control, where X is Halana and Alenaâ??s power. That creature gains haste until end of turn. +text=First strike, reach -- At the beginning of combat on your turn, put X +1/+1 counters on another target creature you control, where X is Halana and Alena's power. That creature gains haste until end of turn. mana={2}{R}{G} type=Legendary Creature subtype=Human Ranger @@ -32233,7 +32233,7 @@ name=Hallowed Haunting auto=@movedTo(*[enchantment]|mystack):name(Create Cleric) token(Cleric Hall) auto=aslongas(enchantment|mybattlefield) lord(creature|mybattlefield) vigilance >6 auto=aslongas(enchantment|mybattlefield) lord(creature|mybattlefield) flying >6 -text=As long as you control seven or more enchantments, creatures you control have flying and vigilance. -- Whenever you cast an enchantment spell, create a white Spirit Cleric creature token with "This creatureâ??s power and toughness are each equal to the number of Spirits you control." +text=As long as you control seven or more enchantments, creatures you control have flying and vigilance. -- Whenever you cast an enchantment spell, create a white Spirit Cleric creature token with "This creature's power and toughness are each equal to the number of Spirits you control." mana={2}{W}{W} type=Enchantment [/card] @@ -32836,7 +32836,7 @@ name=Haunting Imitation auto=if type(creature[zpos=1]|library)~equalto~0 then moveto(myhand) auto=all(creature[zpos=1]|library) clone and!( becomes(Spirit,1/1,flying) forever )! auto=all(*[zpos=1]|library) moveto(myhand) and!( transforms((,newability[choice name(Put back) name(Put back) moveto(ownerlibrary)])) oneshot )! -text=Each player reveals the top card of their library. For each creature card revealed this way, create a token thatâ??s a copy of that card, except itâ??s 1/1, itâ??s a Spirit in addition to its other types, and it has flying. If no creature cards were revealed this way, return Haunting Imitation to its ownerâ??s hand. +text=Each player reveals the top card of their library. For each creature card revealed this way, create a token that's a copy of that card, except it's 1/1, it's a Spirit in addition to its other types, and it has flying. If no creature cards were revealed this way, return Haunting Imitation to its owner's hand. mana={2}{U} type=Sorcery [/card] @@ -33415,7 +33415,7 @@ auto=@each my combatbegins:name(Choose one) transforms((,newability[if compare(h auto=@counteradded(0/0,1,Sac) once:name(Sacrifice creature) ability$!name(Sacrifice creature) name(Sacrifice creature) target(creature|mybattlefield) sacrifice!$ controller && ability$!name(Sacrifice creature) name(Sacrifice creature) target(creature|mybattlefield) sacrifice!$ opponent auto=@counteradded(0/0,1,Lif) once:name(Draw and lose life) draw:1 controller && life:-1 controller auto=@counteradded(0/0,1,Tra) once:name(Transform) transforms((,newability[removeallcounters(0/0.1.Tra)],newability[removeallcounters(0/0.1.Lif)],newability[removeallcounters(0/0.1.Sac)],newability[flip(backside)])) forever -text=Flying -- At the beginning of combat on your turn, choose one that hasnâ??t been chosen -- Each player sacrifices a creature. -- You draw a card and you lose 1 life. -- Transform Henrika Domnathi. // Henrika, Infernal Seer +text=Flying -- At the beginning of combat on your turn, choose one that hasn't been chosen -- Each player sacrifices a creature. -- You draw a card and you lose 1 life. -- Transform Henrika Domnathi. // Henrika, Infernal Seer mana={2}{B}{B} type=Legendary Creature subtype=Vampire @@ -33968,7 +33968,7 @@ type=Land name=Hiveheart Shaman auto=@combat(attacking) source(this):may name(Search basic land) transforms((,newability[if type(plains[basic]|mybattlefield)~equalto~0 then choice name(Search Plains) name(Search Plains) target(plains[basic]|mylibrary) moveto(mybattlefield) and!( shuffle )!],newability[if type(mountain[basic]|mybattlefield)~equalto~0 then choice name(Search Mountain) name(Search Mountain) target(mountain[basic]|mylibrary) moveto(mybattlefield) and!( shuffle )!],newability[if type(swamp[basic]|mybattlefield)~equalto~0 then choice name(Search Swamp) name(Search Swamp) target(swamp[basic]|mylibrary) moveto(mybattlefield) and!( shuffle )!],newability[if type(forest[basic]|mybattlefield)~equalto~0 then choice name(Search Forest) name(Search Forest) target(forest[basic]|mylibrary) moveto(mybattlefield) and!( shuffle )!],newability[if type(island[basic]|mybattlefield)~equalto~0 then choice name(Search Island) name(Search Island) target(island[basic]|mylibrary) moveto(mybattlefield) and!( shuffle )!])) oneshot auto={5}{G}:name(Create Insect) token(Insect Tok) and!( counter(1/1,pbasiclandtypes) )! asSorcery -text=Whenever Hiveheart Shaman attacks, you may search your library for a basic land card that doesnâ??t share a land type with any land you control, put that card onto the battlefield, then shuffle. -- {5}{G}: Create a 1/1 green Insect creature token. Put X +1/+1 counters on it, where X is the number of basic land types among lands you control. Activate only as a sorcery. +text=Whenever Hiveheart Shaman attacks, you may search your library for a basic land card that doesn't share a land type with any land you control, put that card onto the battlefield, then shuffle. -- {5}{G}: Create a 1/1 green Insect creature token. Put X +1/+1 counters on it, where X is the number of basic land types among lands you control. Activate only as a sorcery. mana={3}{G} type=Creature subtype=Human Shaman @@ -34153,7 +34153,7 @@ toughness=6 name=Hollowhenge Overlord abilities=flash auto=@each my upkeep:name(Create wolf) foreach(creature[wolf;werewolf]|mybattlefield) token(Wolf,Creature Wolf,2/2,green) -text=Flash -- At the beginning of your upkeep, for each creature you control thatâ??s a Wolf or a Werewolf, create a 2/2 green Wolf creature token. +text=Flash -- At the beginning of your upkeep, for each creature you control that's a Wolf or a Werewolf, create a 2/2 green Wolf creature token. mana={4}{G}{G} type=Creature subtype=Wolf @@ -34773,7 +34773,7 @@ type=Sorcery name=Hullbreaker Horror abilities=flash,nofizzle auto=@movedto(*|mystack):name(Choose one) transforms((,newability[if type(*|opponentstack)~morethan~0 then choice name(Return a spell) name(Return a spell) target(*|opponentstack) spellmover(hand)],newability[if type(*[-land]|opponentbattlefield)~morethan~0 then choice name(Return non-land permanent) name(Return non-land permanent) target(*[-land]|opponentbattlefield) moveto(ownerhand)])) oneshot -text=Flash -- This spell canâ??t be countered. -- Whenever you cast a spell, choose up to one -- Return target spell you donâ??t control to its ownerâ??s hand. -- Return target nonland permanent to its ownerâ??s hand. +text=Flash -- This spell can't be countered. -- Whenever you cast a spell, choose up to one -- Return target spell you don't control to its owner's hand. -- Return target nonland permanent to its owner's hand. mana={5}{U}{U} type=Creature subtype=Kraken Horror @@ -37252,7 +37252,7 @@ name=Investigator's Journal auto=if type(creature|mybattlefield)~morethan~type(creature|opponentbattlefield) then counter(0/0,type:creature:mybattlefield,Suspect) else counter(0/0,type:creature:opponentbattlefield,Suspect) auto={2}{T}{C(0/0,-1,Suspect)}:name(Remove counter and draw) draw:1 controller auto={2}{S}:name(Sacrifice and draw) draw:1 controller -text=Investigatorâ??s Journal enters the battlefield with a number of suspect counters on it equal to the greatest number of creatures a player controls. -- {2}, {T}, Remove a suspect counter from Investigatorâ??s Journal: Draw a card. -- {2}, Sacrifice Investigatorâ??s Journal: Draw a card. +text=Investigator's Journal enters the battlefield with a number of suspect counters on it equal to the greatest number of creatures a player controls. -- {2}, {T}, Remove a suspect counter from Investigator's Journal: Draw a card. -- {2}, Sacrifice Investigator's Journal: Draw a card. mana={2} type=Artifact Clue [/card] @@ -38645,7 +38645,7 @@ 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) -text=Partner with Laurine, the Diversion (When this creature enters the battlefield, 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.â??) +text=Partner with Laurine, the Diversion (When this creature enters the battlefield, 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 subtype=Vampire Rogue @@ -38839,7 +38839,7 @@ name=Katilda's Rising Dawn abilities=exiledeath backside=Katilda, Dawnhart Martyr target=creature -text=Enchant creature -- Enchanted creature has flying, lifelink, and protection from Vampires, and it gets +X/+X where X is the number of permanents you control that are Spirits and/or enchantments. -- If Katildaâ??s Rising Dawn would be put into a graveyard from anywhere, exile it instead. // Katilda, Dawnhart Martyr +text=Enchant creature -- Enchanted creature has flying, lifelink, and protection from Vampires, and it gets +X/+X where X is the number of permanents you control that are Spirits and/or enchantments. -- If Katilda's Rising Dawn would be put into a graveyard from anywhere, exile it instead. // Katilda, Dawnhart Martyr color=white type=Legendary Enchantment subtype=Aura @@ -38854,7 +38854,7 @@ anyzone={0}:doubleside(backside) retrace={3}{W}{W} name(Cast with disturb) autostack=if paid(retrace) then flip(backside) forcetype(Legendary Enchantment Aura) and!( transforms((,newability[name(Attach to creature) retargetfromplay target(creature)],newability[teach(creature) lifelink],newability[teach(creature) flying],newability[teach(creature) protection from(vampire)],newability[teach(creature) foreach(*[spirit;enchantment]|mybattlefield) 1/1])) forever )! auto=protection from(vampire) -text=Flying, lifelink, protection from Vampires -- Katilda, Dawnhart Martyrâ??s power and toughness are each equal to the number of permanents you control that are Spirits and/or enchantments. -- Disturb {3}{W}{W} (You may cast this card from your graveyard transformed for its disturb cost.) // Katilda's Rising Dawn +text=Flying, lifelink, protection from Vampires -- Katilda, Dawnhart Martyr's power and toughness are each equal to the number of permanents you control that are Spirits and/or enchantments. -- Disturb {3}{W}{W} (You may cast this card from your graveyard transformed for its disturb cost.) // Katilda's Rising Dawn mana={1}{W}{W} type=Legendary Creature subtype=Spirit Warlock @@ -40501,7 +40501,7 @@ name=Krothuss, Lord of the Deep abilities=flying backside=Runo Stromkirk auto=@combat(attacking) source(this):name(Copy a creature) target(other creature[attacking]|mybattlefield) transforms((,newability[clone with(battleready)],newability[if cantargetcard(*[kraken;leviathan;octopus;serpent]|*) then clone with(battleready)])) oneshot -text=Flying -- Whenever Krothuss, Lord of the Deep attacks, create a tapped and attacking token thatâ??s a copy of another target attacking creature. If that creature is a Kraken, Leviathan, Octopus, or Serpent, create two of those tokens instead. // Runo Stromkirk +text=Flying -- Whenever Krothuss, Lord of the Deep attacks, create a tapped and attacking token that's a copy of another target attacking creature. If that creature is a Kraken, Leviathan, Octopus, or Serpent, create two of those tokens instead. // Runo Stromkirk type=Legendary Creature subtype=Kraken Horror color=black,blue @@ -43423,7 +43423,7 @@ otherrestriction=type(creature|battlefield)~morethan~0 auto=if paid(alternative) then target(creature|battlefield) moveto(ownerhand) auto=ifnot paid(alternative) then target(creature[wolf;werewolf]|battlefield) moveto(ownerhand) auto=draw:1 controller -text=Cleave {3}{U} (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.) -- Return target [Wolf or Werewolf] creature to its ownerâ??s hand. -- Draw a card. +text=Cleave {3}{U} (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.) -- Return target [Wolf or Werewolf] creature to its owner's hand. -- Draw a card. mana={1}{U} type=Instant [/card] @@ -44492,7 +44492,7 @@ type=Sorcery 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 -text=Whenever Markov Enforcer or another Vampire enters the battlefield 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.") +text=Whenever Markov Enforcer or another Vampire enters the battlefield 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 subtype=Vampire Soldier @@ -45713,7 +45713,7 @@ toughness=3 name=Militia Rallier abilities=nosolo auto=@combat(attacking) source(this):name(Untap a creature) target(creature) untap -text=Militia Rallier canâ??t attack alone. -- Whenever Militia Rallier attacks, untap target creature. +text=Militia Rallier can't attack alone. -- Whenever Militia Rallier attacks, untap target creature. mana={2}{W} type=Creature subtype=Human Soldier @@ -46028,7 +46028,7 @@ type=Artifact name=Mirage Phalanx abilities=soulbond auto=soulbond transforms((,newability[@each my combatbegins:name(Create copy) clone and!( transforms((,newability[haste],newability[-soulbond],newability[phaseaction[combatends once sourceinplay] moveto(exile)])) forever)!])) -text=Soulbond (You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.) -- As long as Mirage Phalanx is paired with another creature, each of those creatures has "At the beginning of combat on your turn, create a token thatâ??s a copy of this creature, except it has haste and loses soulbond. Exile it at end of combat." +text=Soulbond (You may pair this creature with another unpaired creature when either enters the battlefield. They remain paired for as long as you control both of them.) -- As long as Mirage Phalanx is paired with another creature, each of those creatures has "At the beginning of combat on your turn, create a token that's a copy of this creature, except it has haste and loses soulbond. Exile it at end of combat." mana={4}{R}{R} type=Creature subtype=Human Soldier @@ -46128,7 +46128,7 @@ anyzone={0}:doubleside(backside) retrace={3}{U}{U} name(Cast with disturb) autostack=if paid(retrace) then flip(backside) forcetype(Enchantment Aura) and!( transforms((,newability[name(Attach to creature) retargetfromplay target(creature)],newability[teach(creature) transforms((,newability[@each my upkeep:name(Copy creature) clone addtype(Spirit)]))])) forever )! auto=ifnot paid(retrace) then may name(Copy a creature) name(Copy a creature) target(creature|battlefield) copy and!( transforms((Spirit)) forever )! -text=You may have Mirrorhall Mimic enter the battlefield as a copy of any creature on the battlefield, except itâ??s a Spirit in addition to its other types. -- Disturb {3}{U}{U} (You may cast this card from your graveyard transformed for its disturb cost.) // Ghastly Mimicry +text=You may have Mirrorhall Mimic enter the battlefield as a copy of any creature on the battlefield, except it's a Spirit in addition to its other types. -- Disturb {3}{U}{U} (You may cast this card from your graveyard transformed for its disturb cost.) // Ghastly Mimicry mana={3}{U} type=Creature subtype=Spirit @@ -47892,7 +47892,7 @@ type=Land [card] name=Necroduality auto=@movedto(zombie[-token]|mybattlefield):name(Copy zombie) all(trigger[to]) name(Copy zombie) clone -text=Whenever a nontoken Zombie enters the battlefield under your control, create a token thatâ??s a copy of that creature. +text=Whenever a nontoken Zombie enters the battlefield under your control, create a token that's a copy of that creature. mana={3}{U} type=Enchantment [/card] @@ -50015,7 +50015,7 @@ 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(player,creature,planeswalker) damage:1 && token(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. +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 subtype=Vampire @@ -50041,7 +50041,7 @@ type=Sorcery name=Olivia, Crimson Bride abilities=flying,haste auto=@combat(attacking) source(this):name(Return creature) target(creature|mygraveyard) moveto(mybattlefield) and!( transforms((,newability[ninjutsu],newability[@movedTo(vampire[legendary]|nonbattlezone) from(mybattlefield):if type(vampire[legendary]|mybattlefield)~equalto~0 then name(Exile creature) name(Exile creature) name(Exile creature) moveto(exile)])) forever )! -text=Flying, haste -- Whenever Olivia, Crimson Bride attacks, return target creature card from your graveyard to the battlefield tapped and attacking. It gains "When you donâ??t control a legendary Vampire, exile this creature." +text=Flying, haste -- Whenever Olivia, Crimson Bride attacks, return target creature card from your graveyard to the battlefield tapped and attacking. It gains "When you don't control a legendary Vampire, exile this creature." mana={4}{B}{R} type=Legendary Creature subtype=Vampire Noble @@ -53812,7 +53812,7 @@ type=Instant [card] name=Predators' Hour auto=all(creature|mybattlefield) transforms((,newability[menace],newability[@combatdamagefoeof(player) from(this):all(*[zpos=1]|opponentlibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile],newability[anytypeofmana],newability[@each beginofturn:canplayfromexile ueot],newability[@each beginofturn:transforms((,newability[anytypeofmana])) ueot])) forever )!])) ueot -text=Until end of turn, creatures you control gain menace and "Whenever this creature deals combat damage to a player, exile the top card of that playerâ??s library face down. You may look at and play that card for as long as it remains exiled, and you may spend mana as though it were mana of any color to cast that spell." +text=Until end of turn, creatures you control gain menace and "Whenever this creature deals combat damage to a player, exile the top card of that player's library face down. You may look at and play that card for as long as it remains exiled, and you may spend mana as though it were mana of any color to cast that spell." mana={1}{B} type=Sorcery [/card] @@ -57444,7 +57444,7 @@ name=Rending Flame target=creature,planeswalker auto=damage:5 auto=if cantargetcard(*[spirit]|*) then damage:2 targetcontroller -text=Rending Flame deals 5 damage to target creature or planeswalker. If that permanent is a Spirit, Rending Flame also deals 2 damage to that permanentâ??s controller. +text=Rending Flame deals 5 damage to target creature or planeswalker. If that permanent is a Spirit, Rending Flame also deals 2 damage to that permanent's controller. mana={2}{R} type=Instant [/card] @@ -57747,7 +57747,7 @@ restriction=compare(isflipped)~equalto~0 anyzone={0}:doubleside(backside) auto=@each my endofturn restriction{compare(lifegain)~morethan~0}:name(Create Blood) token(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 +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} type=Creature subtype=Vampire @@ -58118,7 +58118,7 @@ abilities=vigilance,partner partner=Timin, Youthful Geist auto=_PARTNER_ auto=@tapped(creature[-attacking]|opponentbattlefield):name(Put 1/1 counter) counter(1/1) -text=Partner with Timin, Youthful Geist (When this creature enters the battlefield, target player may put Timin into their hand from their library, then shuffle.) -- Vigilance -- Whenever a creature an opponent controls becomes tapped, if it isnâ??t being declared as an attacker, put a +1/+1 counter on Rhoda, Geist Avenger. +text=Partner with Timin, Youthful Geist (When this creature enters the battlefield, target player may put Timin into their hand from their library, then shuffle.) -- Vigilance -- Whenever a creature an opponent controls becomes tapped, if it isn't being declared as an attacker, put a +1/+1 counter on Rhoda, Geist Avenger. mana={3}{W} type=Legendary Creature subtype=Human Soldier @@ -60886,7 +60886,7 @@ type=Instant name=Sanguine Statuette auto=token(Blood) auto=@sacrificed(blood|mybattlefield):may name(Becomes 3/3 vampire) transforms((Artifact Creature Vampire,setpower=3,settoughness=3,newability[haste])) ueot -text=When Sanguine Statuette enters the battlefield, 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. +text=When Sanguine Statuette enters the battlefield, 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} type=Artifact [/card] @@ -61319,7 +61319,7 @@ name=Savior of Ollenbock abilities=training auto=_TRAINING_ auto=@trained(this):may name(Exile a creature) target(creature|battlefield,graveyard) (blink)forsrc -text=Training (Whenever this creature attacks with another creature with greater power, put a +1/+1 counter on this creature.) -- Whenever Savior of Ollenblock trains, exile up to one other target creature from the battlefield or creature card from a graveyard. -- When Savior of Ollenblock leaves the battlefield, put the exiled cards onto the battlefield under their ownersâ?? control. +text=Training (Whenever this creature attacks with another creature with greater power, put a +1/+1 counter on this creature.) -- Whenever Savior of Ollenblock trains, exile up to one other target creature from the battlefield or creature card from a graveyard. -- When Savior of Ollenblock leaves the battlefield, put the exiled cards onto the battlefield under their owners' control. mana={1}{W}{W} type=Creature subtype=Human Soldier @@ -61679,7 +61679,7 @@ toughness=4 name=Scion of Opulence auto=@movedto(vampire|graveyard) from(mybattlefield):name(Create treasure) token(Treasure Sur) auto={R}{S(artifact|mybattlefield)}{S(artifact|mybattlefield)}:name(Exile top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( transforms((,newability[canplayfromexile])) ueot )! -text=Whenever Scion of Opulence or another nontoken Vampire you control dies, create a Treasure token. (Itâ??s an artifact with "{T}, Sacrifice this artifact: Add one mana of any color.") -- {R}, Sacrifice two artifacts: Exile the top card of your library. You may play that card this turn. +text=Whenever Scion of Opulence or another nontoken Vampire you control dies, create a Treasure token. (It's an artifact with "{T}, Sacrifice this artifact: Add one mana of any color.") -- {R}, Sacrifice two artifacts: Exile the top card of your library. You may play that card this turn. mana={2}{R} type=Creature subtype=Vampire Noble @@ -64362,7 +64362,7 @@ auto=teach(creature) cantattack auto=teach(creature) cantblock auto=teach(creature) cantpwattack auto={4}{W}:name(Exile enchanted creature) imprint && token(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.") +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 subtype=Aura @@ -65013,7 +65013,7 @@ name=Sinner's Judgment abilities=exiledeath backside=Faithbound Judge target=opponent -text=Enchant player -- At the beginning of your upkeep, put a judgment counter on Sinnerâ??s Judgment. Then if there are three or more judgment counters on it, enchanted player loses the game. -- If Sinnerâ??s Judgment would be put into a graveyard from anywhere, exile it instead. // Faithbound Judge +text=Enchant player -- At the beginning of your upkeep, put a judgment counter on Sinner's Judgment. Then if there are three or more judgment counters on it, enchanted player loses the game. -- If Sinner's Judgment would be put into a graveyard from anywhere, exile it instead. // Faithbound Judge color=white type=Enchantment subtype=Aura Curse @@ -70397,7 +70397,7 @@ type=Instant name=Sudden Salvation auto=emblem transforms((,newability[@movedto(*|opponentbattlefield) from(opponentgraveyard) turnlimited:name(Draw a card) draw:1 controller])) ueot auto=may name(Return 3 permanents) target(*[-instant;-sorcery;fresh]|graveyard) moveto(ownerbattlefield) and!( tap(noevent) )! -text=Choose up to three target permanent cards in graveyards that were put there from the battlefield this turn. Return them to the battlefield tapped under their ownersâ?? control. You draw a card for each opponent who controls one or more of those permanents. +text=Choose up to three target permanent cards in graveyards that were put there from the battlefield this turn. Return them to the battlefield tapped under their owners' control. You draw a card for each opponent who controls one or more of those permanents. mana={2}{W}{W} type=Instant [/card] @@ -75546,7 +75546,7 @@ auto=@each my endofturn:name(Put slime counter) all(creature|opponentbattlefield auto=lord(creature|opponentbattlefield) transforms((,newability[thisforeach(counter{0/0.1.Slime}>0) -1/-1])) auto=@movedto(creature[counter{0/0.1.Slime}]|graveyard) from(opponentbattlefield):name(Create Slug) token(Slug,Creature Slug,1/1,black) auto={U}{B}{S(slug|mybattlefield)}:name(Draw a card) draw:1 controller -text=At the beginning of each end step, put a slime counter on each creature you donâ??t control. -- Creatures you donâ??t control get -1/-1 for each slime counter on them. -- Whenever a creature you donâ??t control with a slime counter on it dies, create a 1/1 black Slug creature token. -- {U}{B}, Sacrifice a Slug: Draw a card. +text=At the beginning of each end step, put a slime counter on each creature you don't control. -- Creatures you don't control get -1/-1 for each slime counter on them. -- Whenever a creature you don't control with a slime counter on it dies, create a 1/1 black Slug creature token. -- {U}{B}, Sacrifice a Slug: Draw a card. mana={5}{B}{B} type=Legendary Creature subtype=Slug Horror @@ -78093,7 +78093,7 @@ type=Instant name=Vampires' Vengeance auto=damage:2 all(creature[-vampire]|battlefield) auto=name(Create blood) token(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.") +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 [/card] @@ -79793,7 +79793,7 @@ restriction=compare(isflipped)~equalto~0 anyzone={0}:doubleside(backside) auto=@movedTo(creature[-token]|graveyard) from(mybattlefield):name(Create blood) token(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 +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} type=Creature subtype=Vampire Wizard @@ -79825,7 +79825,7 @@ auto=this(variable{type:vampire:mybattlefield}=2) {3}{T}:name(Create blood) toke 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) -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.") +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] [card] @@ -79898,7 +79898,7 @@ toughness=5 name=Volt-Charged Berserker backside=Voltaic Visionary abilities=cantblock -text=Volt-Charged Berserker canâ??t block. // Voltaic Visionary +text=Volt-Charged Berserker can't block. // Voltaic Visionary color=red type=Creature subtype=Human Berserker @@ -80711,7 +80711,7 @@ target=*|stack other={1}{U}{U} name(Cleave) auto=if paid(alternative) then fizzle auto=ifnot paid(alternative) then transforms((,newability[ifnot casted(this) then fizzle])) forever -text=Cleave {1}{U}{U} (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.) -- Counter target spell [that wasnâ??t cast from its ownerâ??s hand]. +text=Cleave {1}{U}{U} (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.) -- Counter target spell [that wasn't cast from its owner's hand]. mana={U} type=Instant [/card] @@ -81124,7 +81124,7 @@ type=Enchantment name=Wedding Invitation auto=name(Draw a card) draw:1 controller auto={T}{S}:name(Creature gains unblockable) target(creature) transforms((,newability[unblockable],newability[this(cantargetcard(*[vampire]|*) lifelink])) ueot -text=When Wedding Invitation enters the battlefield, draw a card. -- {T}, Sacrifice Wedding Invitation: Target creature canâ??t be blocked this turn. If itâ??s a Vampire, it also gains lifelink until end of turn. +text=When Wedding Invitation enters the battlefield, draw a card. -- {T}, Sacrifice Wedding Invitation: Target creature can't be blocked this turn. If it's a Vampire, it also gains lifelink until end of turn. mana={2} type=Artifact [/card] @@ -81133,7 +81133,7 @@ name=Wedding Ring auto=if casted(this) then token(Wedding Ring) opponent auto=@drawfoeof(player) restriction{compare(opponentturn)~morethan~0,type(Wedding Ring[artifact]|opponentbattlefield)~morethan~0}:name(Draw a card) draw:1 controller auto=@lifefoeof(player) restriction{compare(opponentturn)~morethan~0,type(Wedding Ring[artifact]|opponentbattlefield)~morethan~0}:name(Draw a card) life:thatmuch controller -text=When Wedding Ring enters the battlefield, if it was cast, target opponent creates a token thatâ??s a copy of it. -- Whenever an opponent who controls an artifact named Wedding Ring draws a card during their turn, you draw a card. -- Whenever an opponent who controls an artifact named Wedding Ring gains life during their turn, you gain that much life. +text=When Wedding Ring enters the battlefield, if it was cast, target opponent creates a token that's a copy of it. -- Whenever an opponent who controls an artifact named Wedding Ring draws a card during their turn, you draw a card. -- Whenever an opponent who controls an artifact named Wedding Ring gains life during their turn, you gain that much life. mana={2}{W}{W} type=Artifact [/card] diff --git a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt index 1ca96bfac..618d0c558 100644 --- a/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt +++ b/projects/mtg/bin/Res/sets/primitives/planeswalkers.txt @@ -561,7 +561,7 @@ auto={C(0/0,1,Loyalty)}:name(+1: Add red mana) add{R} controller auto={C(0/0,1,Loyalty)}:name(+1: Add red and deal damage) target(creature,planeswalker) damage:1 && add{R} controller auto={C(0/0,1,Loyalty)}:name(+1: Exile top card) all(*[zpos=1]|mylibrary) moveto(myexile) and!( if cantargetcard(*[red]|*) then canplayfromexile ueot )! auto={C(0/0,-7,Loyalty)}:name(-7: Exile top 5 cards) emblem transforms((,newability[@movedto(*[red]|mystack):all(trigger[to]) transforms((,newability[name(Deals damage) target(player^creature^planeswalker) damage:totmanaspent])) oneshot],newability[all(*[zpos<=5]|mylibrary) moveto(myexile) and!( if cantargetcard(*[red]|*) then canplayfromexile ueot )!])) forever dontremove -text=+1: Add {R}. Chandra, Dressed to Kill deals 1 damage to up to one target player or planeswalker. -- +1: Exile the top card of your library. If itâ??s red, you may cast it this turn. -- â??7: Exile the top five cards of your library. You may cast red spells from among them this turn. You get an emblem with "Whenever you cast a red spell, this emblem deals X damage to any target, where X is the amount of mana spent to cast that spell." +text=+1: Add {R}. Chandra, Dressed to Kill deals 1 damage to up to one target player or planeswalker. -- +1: Exile the top card of your library. If it's red, you may cast it this turn. -- -7: Exile the top five cards of your library. You may cast red spells from among them this turn. You get an emblem with "Whenever you cast a red spell, this emblem deals X damage to any target, where X is the amount of mana spent to cast that spell." mana={1}{R}{R} type=Legendary Planeswalker subtype=Chandra @@ -1579,7 +1579,7 @@ auto={C(0/0,1,Loyalty)}:name(+1: Creatures gain deathtouch) all(creature|mybattl auto={C(0/0,1,Loyalty)}:name(+1: Creatures gain deathtouch and put counter) target(creature[token]|mybattlefield) counter(1/1) && all(creature|mybattlefield) transforms((,newability[deathtouch])) ueot auto={C(0/0,-2,Loyalty)}:name(-2: Double the tokens) transforms((,newability[@tokencreated(*|myBattlefield):name(Double the token) all(trigger) clone options(notrigger)])) ueot auto={C(0/0,-6,Loyalty)}:name(-6: Exile cards) all(*|graveyard) moveto(exile) and!( token(Spirit,Creature Spirit,1/1,white,flying) )! -text=+1: Creatures you control gain deathtouch until end of turn. Put a +1/+1 counter on up to one target creature token you control. -- â??2: Until end of turn, if one or more tokens would be created under your control, twice that many of those tokens are created instead. -- â??6: Exile all cards from all graveyards, then create a 1/1 white Spirit creature token with flying for each card exiled this way. +text=+1: Creatures you control gain deathtouch until end of turn. Put a +1/+1 counter on up to one target creature token you control. -- -2: Until end of turn, if one or more tokens would be created under your control, twice that many of those tokens are created instead. -- -6: Exile all cards from all graveyards, then create a 1/1 white Spirit creature token with flying for each card exiled this way. mana={1}{W}{B} type=Legendary Planeswalker subtype=Kaya @@ -2601,7 +2601,7 @@ auto=counter(0/0,4,loyalty) auto={C(0/0,1,Loyalty)}:name(+1: Look top card) all(*[zpos=1]|mylibrary) moveto(myhand) and!( transforms((,newability[choice name(Put in hand) life:-manacost controller],newability[choice name(Put back in library) moveto(mylibrary)])) oneshot )! auto={C(0/0,-2,Loyalty)}:name(-2: Create Vampire) token(Vampire,Creature Vampire,2/3,black,flying,lifelink) auto={C(0/0,-7,Loyalty)}:name(-7: Deal 13 damage) damage:13 target(player,creature,planeswalker) && life:13 controller -text=+1: Look at the top card of your library. You may reveal that card and put it into your hand. If you do, you lose life equal to its mana value. -- â??2: Create a 2/3 black Vampire creature token with flying and lifelink. -- â??7: Sorin the Mirthless deals 13 damage to any target. You gain 13 life. +text=+1: Look at the top card of your library. You may reveal that card and put it into your hand. If you do, you lose life equal to its mana value. -- -2: Create a 2/3 black Vampire creature token with flying and lifelink. -- -7: Sorin the Mirthless deals 13 damage to any target. You gain 13 life. mana={2}{B}{B} type=Legendary Planeswalker subtype=Sorin diff --git a/projects/mtg/include/GameStateDeckViewer.h b/projects/mtg/include/GameStateDeckViewer.h index 430079b1f..f8d0694a7 100644 --- a/projects/mtg/include/GameStateDeckViewer.h +++ b/projects/mtg/include/GameStateDeckViewer.h @@ -54,6 +54,7 @@ enum DECK_VIEWER_MENU_ITEMS MENU_ITEM_YES = 20, MENU_ITEM_NO = 21, MENU_ITEM_FILTER_BY = 22, + MENU_ITEM_TOGGLE_VIEW = 23, MENUITEM_MORE_INFO = kInfoMenuID }; diff --git a/projects/mtg/src/GameStateDeckViewer.cpp b/projects/mtg/src/GameStateDeckViewer.cpp index 0c0df6711..45ee8491f 100644 --- a/projects/mtg/src/GameStateDeckViewer.cpp +++ b/projects/mtg/src/GameStateDeckViewer.cpp @@ -53,8 +53,8 @@ GameStateDeckViewer::GameStateDeckViewer(GameApp* parent) : statsPrevButton = NEW InteractiveButton(NULL, kPrevStatsButtonId, Fonts::MAIN_FONT, "Stats", SCREEN_WIDTH_F - 35, SCREEN_HEIGHT_F - 20, JGE_BTN_PREV); toggleDeckButton = NEW InteractiveButton(NULL, kToggleDeckActionId, Fonts::MAIN_FONT, "View Deck", 10, SCREEN_HEIGHT_F - 20, JGE_BTN_PRI); 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_SOUND); - filterButton = NEW InteractiveButton(NULL, kFilterButtonId, Fonts::MAIN_FONT, "Filter", (SCREEN_WIDTH_F - 116), SCREEN_HEIGHT_F - 20, JGE_BTN_CTRL); + 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); //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); @@ -212,6 +212,7 @@ void GameStateDeckViewer::buildEditorMenu() deckMenu->Add(MENU_ITEM_SAVE_RETURN_MAIN_MENU, _("Save & Quit Editor"), _("Save changes. Return to the main menu")); deckMenu->Add(MENU_ITEM_SAVE_AS_AI_DECK, _("Save As AI Deck"), _("All changes are final.")); deckMenu->Add(MENU_ITEM_MAIN_MENU, _("Quit Editor"), _("No changes. Return to the main menu.")); + deckMenu->Add(MENU_ITEM_TOGGLE_VIEW, _("Toggle View"), _("Toggle view grid/carousel.")); deckMenu->Add(MENU_ITEM_EDITOR_CANCEL, _("Cancel"), _("Close menu.")); } @@ -710,7 +711,7 @@ void GameStateDeckViewer::Update(float dt) case JGE_BTN_CANCEL: options[Options::DISABLECARDS].number = !options[Options::DISABLECARDS].number; break; - case JGE_BTN_SOUND: + case JGE_BTN_CTRL: if (last_user_activity > 0.2) { last_user_activity = 0; @@ -770,7 +771,8 @@ void GameStateDeckViewer::Update(float dt) case JGE_BTN_MENU: if(mView->deck() == mySideboard || mView->deck() == myCommandZone || mView->deck() == myDungeonZone) { - toggleSB_CMD_DNG(); + mView->SetDeck(myCollection); + sb_cmd_dng_Button->setText("View SB"); } else { @@ -778,7 +780,7 @@ void GameStateDeckViewer::Update(float dt) buildEditorMenu(); } break; - case JGE_BTN_CTRL: + case JGE_BTN_SOUND: if (mView->deck() == mySideboard || mView->deck() == myCommandZone || mView->deck() == myDungeonZone) break;//SB is for viewing add or remove only else if(!mView->ButtonPressed(JGE_BTN_CTRL)) @@ -1972,6 +1974,11 @@ void GameStateDeckViewer::ButtonPressed(int controllerId, int controlId) if (!filterMenu) rebuildFilters(); filterMenu->Entering(JGE_BTN_NONE); break; + case MENU_ITEM_TOGGLE_VIEW: + mStage = STAGE_WAITING; + last_user_activity = 0; + toggleView(); + break; } break;