diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index ad1b6fd9d..a9e27121a 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -1224,7 +1224,7 @@ toughness=4 name=Agent of Erebos auto=choice target(player) moveTo(exile) all(*|targetedpersonsgraveyard) auto=@movedto(enchantment|mybattlefield):choice target(player) moveTo(exile) all(*|targetedpersonsgraveyard) -text=Constellation — Whenever Agent of Erebos or another enchantment enters the battlefield under your control, exile all cards from target player's graveyard. +text=Constellation � Whenever Agent of Erebos or another enchantment enters the battlefield under your control, exile all cards from target player's graveyard. mana={3}{B} type=Enchantment Creature subtype=Zombie @@ -1701,7 +1701,7 @@ toughness=1 [card] name=Akroan Conscriptor auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):name(gain control of target creature until end of turn) target(other creature|battlefield) moveTo(mybattlefield) and!( transforms((,newability[phaseaction[endofturn sourceinplay] moveTo(ownerbattlefield)],newability[untap],haste)) ueot )! -text=Heroic — Whenever you cast a spell that targets Akroan Conscriptor, gain control of another target creature until end of turn. Untap that creature. It gains haste until end of turn. +text=Heroic � Whenever you cast a spell that targets Akroan Conscriptor, gain control of another target creature until end of turn. Untap that creature. It gains haste until end of turn. mana={4}{R} type=Creature subtype=Human Shaman @@ -1711,7 +1711,7 @@ toughness=2 [card] name=Akroan Crusader auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):token(Soldier,Creature Soldier,1/1,red,haste) controller -text=Heroic — Whenever you cast a spell that targets Akroan Crusader, put a 1/1 red Soldier creature token with haste onto the battlefield. +text=Heroic � Whenever you cast a spell that targets Akroan Crusader, put a 1/1 red Soldier creature token with haste onto the battlefield. mana={R} type=Creature subtype=Human Soldier @@ -1754,7 +1754,7 @@ toughness=1 name=Akroan Line Breaker auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):2/0 ueot auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):intimidate ueot -text=Heroic — Whenever you cast a spell that targets Akroan Line Breaker, Akroan Line Breaker gets +2/+0 and gains intimidate until end of turn. +text=Heroic � Whenever you cast a spell that targets Akroan Line Breaker, Akroan Line Breaker gets +2/+0 and gains intimidate until end of turn. mana={2}{R} type=Creature subtype=Human Warrior @@ -8667,7 +8667,7 @@ toughness=3 [card] name=Bellowing Saddlebrute auto=ifnot raid then life:-4 controller -text=Raid — When Bellowing Saddlebrute enters the battlefield, you lose 4 life unless you attacked with a creature this turn. +text=Raid � When Bellowing Saddlebrute enters the battlefield, you lose 4 life unless you attacked with a creature this turn. mana={3}{B} type=Creature subtype=Orc Warrior @@ -10485,7 +10485,7 @@ toughness=2 name=Bloodcrazed Hoplite auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):counter(1/1,1) auto=@counteradded(1/1) from(this):counter(1/1,-1) target(creature|opponentbattlefield) -text=Heroic — Whenever you cast a spell that targets Bloodcrazed Hoplite, put a +1/+1 counter on it. -- Whenever a +1/+1 counter is placed on Bloodcrazed Hoplite, remove a +1/+1 counter from target creature an opponent controls. +text=Heroic � Whenever you cast a spell that targets Bloodcrazed Hoplite, put a +1/+1 counter on it. -- Whenever a +1/+1 counter is placed on Bloodcrazed Hoplite, remove a +1/+1 counter from target creature an opponent controls. mana={1}{B} type=Creature subtype=Human Soldier @@ -10792,7 +10792,7 @@ toughness=3 name=Bloodsoaked Champion abilities=cantblock autograveyard={1}{B}:moveTo(mybattlefield) restriction{raid} -text=Bloodsoaked Champion can't block. -- Raid — {1}{B}: Return Bloodsoaked Champion from your graveyard to the battlefield. Activate this ability only if you attacked with a creature this turn. +text=Bloodsoaked Champion can't block. -- Raid � {1}{B}: Return Bloodsoaked Champion from your graveyard to the battlefield. Activate this ability only if you attacked with a creature this turn. mana={B} type=Creature subtype=Human Warrior @@ -12159,7 +12159,7 @@ auto={1}{G}{T}:name(+1/+1 counter) counter(1/1,1) target(creature) auto={1}{G}{T}:name(2 damage to flyer) damage:2 target(creature[flying]) auto={1}{G}{T}:name(gain 3 life) life:3 controller auto={1}{G}{T}:name(put up to 4 on bottom) bottomoflibrary target(*|mygraveyard) -text=Attacking creatures you control have deathtouch. -- {1}{G},{T}: Choose one — Put a +1/+1 counter on target creature; or Bow of Nylea deals 2 damage to target creature with flying; or you gain 3 life; or put up to four target cards from your graveyard on the bottom of your library in any order. +text=Attacking creatures you control have deathtouch. -- {1}{G},{T}: Choose one � Put a +1/+1 counter on target creature; or Bow of Nylea deals 2 damage to target creature with flying; or you gain 3 life; or put up to four target cards from your graveyard on the bottom of your library in any order. mana={1}{G}{G} type=Legendary Enchantment Artifact [/card] @@ -18377,7 +18377,7 @@ auto=aslongas(island|mybattlefield) lord(creature|opponentbattlefield) transform auto=aslongas(mountain|mybattlefield) lord(creature|opponentbattlefield) transforms((,newability[attackcost:1])) auto=aslongas(swamp|mybattlefield) lord(creature|opponentbattlefield) transforms((,newability[attackcost:1])) auto=aslongas(plains|mybattlefield) lord(creature|opponentbattlefield) transforms((,newability[attackcost:1])) -text=Domain — Creatures can't attack you unless their controller pays {X} for each creature he or she controls that's attacking you, where X is the number of basic land types among lands you control. +text=Domain � Creatures can't attack you unless their controller pays {X} for each creature he or she controls that's attacking you, where X is the number of basic land types among lands you control. mana={3}{U} type=Enchantment [/card] @@ -19925,7 +19925,7 @@ name=Crater's Claws target=creature,player auto=if type(creature[power=>4]|mybattlefield) then damage:2 auto=damage:X -text=Crater's Claws deals X damage to target creature or player. -- Ferocious — Crater's Claws deals X plus 2 damage to that creature or player instead if you control a creature with power 4 or greater. +text=Crater's Claws deals X damage to target creature or player. -- Ferocious � Crater's Claws deals X plus 2 damage to that creature or player instead if you control a creature with power 4 or greater. mana={R}{X} type=Sorcery [/card] @@ -21940,7 +21940,7 @@ target=creature auto=regenerate auto=draw:1 controller auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then regenerate all(other creature|mybattlefield) -text=Regenerate target creature. Draw a card. (The next time the creature would be destroyed this turn, it isn't. Instead tap it, remove all damage from it, and remove it from combat.) -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, also regenerate each other creature you control. +text=Regenerate target creature. Draw a card. (The next time the creature would be destroyed this turn, it isn't. Instead tap it, remove all damage from it, and remove it from combat.) -- Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, also regenerate each other creature you control. mana={2}{B} type=Instant [/card] @@ -21948,7 +21948,7 @@ type=Instant name=Dark Petition auto=moveto(myhand) notatarget(*|mylibrary) auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then add{B}{B}{B} -text=Search your library for a card and put that card into your hand. Then shuffle your library. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, add {B}{B}{B} to your mana pool. +text=Search your library for a card and put that card into your hand. Then shuffle your library. -- Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, add {B}{B}{B} to your mana pool. mana={3}{B}{B} type=Sorcery [/card] @@ -22548,7 +22548,7 @@ subtype=Aura name=Dawnbringer Charioteers abilities=flying,lifelink auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):counter(1/1,1) -text=Flying, lifelink -- Heroic —- Whenever you cast a spell that targets Dawnbringer Charioteers, put a +1/+1 counter on Dawnbringer Charioteers. +text=Flying, lifelink -- Heroic �- Whenever you cast a spell that targets Dawnbringer Charioteers, put a +1/+1 counter on Dawnbringer Charioteers. mana={2}{W}{W} type=Creature subtype=Human Soldier @@ -25325,7 +25325,7 @@ auto={1}{E(*[instant;sorcery]|mygraveyard)}:name(counter noncreature unless pay auto={1}{E(*[instant;sorcery]|mygraveyard)}:1/1 ueot auto={1}{E(*[instant;sorcery]|mygraveyard)}:tap target(creature) auto={1}{E(*[instant;sorcery]|mygraveyard)}:untap target(creature) -text={1}, Exile an instant or sorcery card from your graveyard: Choose one — -- • Counter target noncreature spell unless its controller pays {2}. -- • Disciple of the Ring gets +1/+1 until end of turn. -- • Tap target creature. -- • Untap target creature. +text={1}, Exile an instant or sorcery card from your graveyard: Choose one � -- � Counter target noncreature spell unless its controller pays {2}. -- � Disciple of the Ring gets +1/+1 until end of turn. -- � Tap target creature. -- � Untap target creature. mana={3}{U}{U} type=Creature subtype=Human Wizard @@ -26024,7 +26024,7 @@ toughness=10 name=Doomwake Giant auto=all(creature|opponentbattlefield) -1/-1 auto=@movedTo(enchantment|myBattlefield):all(creature|opponentbattlefield) -1/-1 -text=Constellation — Whenever Doomwake Giant or another enchantment enters the battlefield under your control, creatures your opponents control get -1/-1 until end of turn. +text=Constellation � Whenever Doomwake Giant or another enchantment enters the battlefield under your control, creatures your opponents control get -1/-1 until end of turn. mana={4}{B} type=Enchantment Creature subtype=Giant @@ -26998,7 +26998,7 @@ type=Sorcery name=Dreadbringer Lampads auto=name(intimidate) target(creature) transforms((,newability[intimidate])) ueot auto=@movedTo(enchantment|myBattlefield):name(intimidate) target(creature) transforms((,newability[intimidate])) ueot -text=Constellation — Whenever Dreadbringer Lampads or another enchantment enters the battlefield under your control, target creature gains intimidate until end of turn. (It can't be blocked except by artifact creatures and/or creatures that share a color with it.) +text=Constellation � Whenever Dreadbringer Lampads or another enchantment enters the battlefield under your control, target creature gains intimidate until end of turn. (It can't be blocked except by artifact creatures and/or creatures that share a color with it.) mana={4}{B} type=Enchantment Creature subtype=Nymph @@ -29010,7 +29010,7 @@ subtype=Shapeshifter name=Eidolon of Blossoms auto=draw:1 auto=@movedTo(enchantment|myBattlefield):draw:1 -text=Constellation — Whenever Eidolon of Blossoms or another enchantment enters the battlefield under your control, draw a card. +text=Constellation � Whenever Eidolon of Blossoms or another enchantment enters the battlefield under your control, draw a card. mana={2}{G}{G} type=Enchantment Creature subtype=Spirit @@ -32187,7 +32187,7 @@ name=Exquisite Firecraft target=creature,player auto=damage:4 auto=aslongas(*[instant;sorcery]|mygraveyard) nofizzle >1 -text=Exquisite Firecraft deals 4 damage to target creature or player. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, Exquisite Firecraft can't be countered by spells or abilities. +text=Exquisite Firecraft deals 4 damage to target creature or player. -- Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, Exquisite Firecraft can't be countered by spells or abilities. mana={1}{R}{R} type=Sorcery [/card] @@ -34124,7 +34124,7 @@ toughness=2 name=Fiery Impulse target=creature auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then damage:3 else damage:2 -text=Fiery Impulse deals 2 damage to target creature. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, Fiery Impulse deals 3 damage to that creature instead. +text=Fiery Impulse deals 2 damage to target creature. -- Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, Fiery Impulse deals 3 damage to that creature instead. mana={R} type=Instant [/card] @@ -36367,7 +36367,7 @@ toughness=1 name=Forgeborn Oreads auto=damage:1 target(creature,player) auto=@movedTo(enchantment|myBattlefield):damage:1 target(creature,player) -text=Constellation — Whenever Forgeborn Oreads or another enchantment enters the battlefield under your control, Forgeborn Oreads deals 1 damage to target creature or player. +text=Constellation � Whenever Forgeborn Oreads or another enchantment enters the battlefield under your control, Forgeborn Oreads deals 1 damage to target creature or player. mana={2}{R}{R} type=Enchantment Creature subtype=Nymph @@ -38091,14 +38091,13 @@ text=Red creatures get +1/+1. -- Whenever a Mountain is tapped for mana, its con mana={4} type=Artifact [/card] -#producecolor looks for the color... maybe needs restriction... [card] name=Gauntlet of Power -auto=choice name(green) all(this) transforms((,newability[lord(creature[green]|battlefield) 1/1],newability[lord(forest[basic]|battlefield) producecolor:green])) forever -auto=choice name(blue) all(this) transforms((,newability[lord(creature[blue]|battlefield) 1/1],newability[lord(island[basic]|battlefield) producecolor:blue])) forever -auto=choice name(red) all(this) transforms((,newability[lord(creature[red]|battlefield) 1/1],newability[lord(mountain[basic]|battlefield) producecolor:red])) forever -auto=choice name(black) all(this) transforms((,newability[lord(creature[black]|battlefield) 1/1],newability[lord(swamp[basic]|battlefield) producecolor:black])) forever -auto=choice name(white) all(this) transforms((,newability[lord(creature[white]|battlefield) 1/1],newability[lord(plains[basic]|battlefield) producecolor:white])) forever +auto=choice name(green) all(this) transforms((,newability[lord(creature[green]|battlefield) 1/1],newability[lord(*[basic]|battlefield) producecolor:green])) forever +auto=choice name(blue) all(this) transforms((,newability[lord(creature[blue]|battlefield) 1/1],newability[lord(*[basic]|battlefield) producecolor:blue])) forever +auto=choice name(red) all(this) transforms((,newability[lord(creature[red]|battlefield) 1/1],newability[lord(*[basic]|battlefield) producecolor:red])) forever +auto=choice name(black) all(this) transforms((,newability[lord(creature[black]|battlefield) 1/1],newability[lord(*[basic]|battlefield) producecolor:black])) forever +auto=choice name(white) all(this) transforms((,newability[lord(creature[white]|battlefield) 1/1],newability[lord(*[basic]|battlefield) producecolor:white])) forever text=As Gauntlet of Power enters the battlefield, choose a color. -- Creatures of the chosen color get +1/+1. -- Whenever a basic land is tapped for mana of the chosen color, its controller adds one mana of that color to his or her mana pool (in addition to the mana the land produces). mana={5} type=Artifact @@ -39247,7 +39246,7 @@ toughness=1 [card] name=Gideon's Phalanx auto=if type(*[instant;sorcery]|mygraveyard)~lessthan~1 then token(Knight,Creature Knight,2/2,white,vigilance)*4 controller else token(Knight,Creature Knight,2/2,white,vigilance)*4 && all(creature|mybattlefield) indestructible ueot -text=Put four 2/2 white Knight creature tokens with vigilance onto the battlefield. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, creatures you control gain indestructible until end of turn. +text=Put four 2/2 white Knight creature tokens with vigilance onto the battlefield. -- Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, creatures you control gain indestructible until end of turn. mana={5}{W}{W} type=Instant [/card] @@ -42699,7 +42698,7 @@ type=Sorcery name=Grim Guardian auto=life:-1 opponent auto=@movedTo(enchantment|myBattlefield):life:-1 opponent -text=Constellation — Whenever Grim Guardian or another enchantment enters the battlefield under your control, each opponent loses 1 life. +text=Constellation � Whenever Grim Guardian or another enchantment enters the battlefield under your control, each opponent loses 1 life. mana={2}{B} type=Enchantment Creature subtype=Zombie @@ -44599,7 +44598,7 @@ toughness=5 name=Harvestguard Alseids auto=name(prevent all damage) target(creature) transforms((,newability[preventalldamage to(this)])) ueot auto=@movedto(enchantment|mybattlefield):name(prevent all damage) target(creature) transforms((,newability[preventalldamage to(this)])) ueot -text=Constellation — Whenever Harvestguard Alseids or another enchantment enters the battlefield under your control, prevent all damage that would be dealt to target creature this turn. +text=Constellation � Whenever Harvestguard Alseids or another enchantment enters the battlefield under your control, prevent all damage that would be dealt to target creature this turn. mana={2}{W} type=Enchantment Creature subtype=Nymph @@ -47469,7 +47468,7 @@ toughness=1 name=Humbler of Mortals auto=all(creature|myBattlefield) trample ueot auto=@movedTo(enchantment|myBattlefield):all(creature|myBattlefield) trample ueot -text=Constellation — Whenever Humbler of Mortals or another enchantment enters the battlefield under your control, creatures you control gain trample until end of turn. +text=Constellation � Whenever Humbler of Mortals or another enchantment enters the battlefield under your control, creatures you control gain trample until end of turn. mana={4}{G}{G} type=Enchantment Creature subtype=Elemental @@ -48280,7 +48279,7 @@ name=Icy Blast target=creature|battlefield auto=tap auto=if type(creature[power>=4]|mybattlefield)~morethan~0 then frozen -text=Tap X target creatures. -- Ferocious — If you control a creature with power 4 or greater, those creatures don't untap during their controllers' next untap steps. +text=Tap X target creatures. -- Ferocious � If you control a creature with power 4 or greater, those creatures don't untap during their controllers' next untap steps. mana={X}{U} type=Instant [/card] @@ -53307,7 +53306,7 @@ toughness=5 [card] name=King Macar, the Gold-Cursed auto=@untapped(this):may moveto(exile) target(creature) && token(-378445) controller -text=Inspired — Whenever King Macar, the Gold-Cursed becomes untapped, you may exile target creature. If you do, put a colorless artifact token named Gold onto the battlefield. It has "Sacrifice this artifact: Add one mana of any color to your mana pool." +text=Inspired � Whenever King Macar, the Gold-Cursed becomes untapped, you may exile target creature. If you do, put a colorless artifact token named Gold onto the battlefield. It has "Sacrifice this artifact: Add one mana of any color to your mana pool." mana={2}{B}{B} type=Legendary Creature subtype=Human @@ -55294,7 +55293,7 @@ toughness=3 name=Kytheon's Tactics auto=all(creature|mybattlefield) 2/1 ueot auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then all(creature|mybattlefield) vigilance ueot -text=Creatures you control get +2/+1 until end of turn. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, those creatures also gain vigilance until end of turn. (Attacking doesn't cause them to tap.) +text=Creatures you control get +2/+1 until end of turn. -- Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, those creatures also gain vigilance until end of turn. (Attacking doesn't cause them to tap.) mana={1}{W}{W} type=Sorcery [/card] @@ -55455,7 +55454,7 @@ toughness=2 [card] name=Lagonna-Band Trailblazer auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):counter(1/1,1) -text=Heroic —- Whenever you cast a spell that targets Lagonna-Band Trailblazer, put a +1/+1 counter on Lagonna-Band Trailblazer. +text=Heroic �- Whenever you cast a spell that targets Lagonna-Band Trailblazer, put a +1/+1 counter on Lagonna-Band Trailblazer. mana={W} type=Creature subtype=Centaur Scout @@ -56360,7 +56359,7 @@ toughness=1 [card] name=Leonin Iconoclast auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):destroy target(Creature[enchantment]|opponentbattlefield) -text=Heroic — Whenever you cast a spell that targets Leonin Iconoclast, destroy target enchantment creature an opponent controls. +text=Heroic � Whenever you cast a spell that targets Leonin Iconoclast, destroy target enchantment creature an opponent controls. mana={3}{W} type=Creature subtype=Cat Monk @@ -61919,7 +61918,7 @@ toughness=2 name=Mercurial Pretender auto=may copy NotATarget(creature) auto=transforms((,newability[{2}{U}{U}:moveto(ownerhand)])) forever -text=You may have Mercurial Pretender enter the battlefield as a copy of any creature you control except it gains “{2}{U}{U}: Return this creature to its owner’s hand.” +text=You may have Mercurial Pretender enter the battlefield as a copy of any creature you control except it gains �{2}{U}{U}: Return this creature to its owner�s hand.� mana={4}{U} type=Creature subtype=Shapeshifter @@ -66913,7 +66912,7 @@ type=Enchantment name=Necromantic Summons target=creature|graveyard auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then transforms((,newability[moveto(mybattlefield)],newability[counter(1/1.2)])) forever else moveto(mybattlefield) -text=Put target creature card from a graveyard onto the battlefield under your control. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, that creature enters the battlefield with two additional +1/+1 counters on it. +text=Put target creature card from a graveyard onto the battlefield under your control. -- Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, that creature enters the battlefield with two additional +1/+1 counters on it. mana={4}{B} type=Sorcery [/card] @@ -68220,7 +68219,7 @@ toughness=3 [card] name=Nissa's Pilgrimage auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then name(fetch to play) notatarget(forest[basic]|mylibrary) transforms((,newability[name(move to hand) notatarget(forest[basic]|mylibrary) moveTo(myhand)],newability[moveTo(myBattlefield) and!(tap)!])) oneshot else name(fetch to play) notatarget(forest[basic]|mylibrary) transforms((,newability[name(move to hand) notatarget(forest[basic]|mylibrary) moveTo(myhand)],newability[moveTo(myBattlefield) and!(tap)!])) oneshot -text=Search your library for up to two basic Forest cards, reveal those cards, and put one onto the battlefield tapped and the rest into your hand. Then shuffle your library. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, search your library for up to three basic Forest cards instead of two. +text=Search your library for up to two basic Forest cards, reveal those cards, and put one onto the battlefield tapped and the rest into your hand. Then shuffle your library. -- Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, search your library for up to three basic Forest cards instead of two. mana={2}{G} type=Sorcery [/card] @@ -68957,7 +68956,7 @@ toughness=7 name=Oakheart Dryads auto=1/1 target(creature) ueot auto=@movedTo(enchantment|myBattlefield):1/1 target(creature) ueot -text=Constellation — Whenever Oakheart Dryads or another enchantment enters the battlefield under your control, target creature gets +1/+1 until end of turn. +text=Constellation � Whenever Oakheart Dryads or another enchantment enters the battlefield under your control, target creature gets +1/+1 until end of turn. mana={2}{G} type=Enchantment Creature subtype=Nymph Dryad @@ -69524,7 +69523,7 @@ name=Ojutai Exemplars auto=@movedto(*[-creature]|mystack):choice name(Tap target creature) tap target(creature|battlefield) auto=@movedto(*[-creature]|mystack):choice name(First Strike and Lifelink) transforms((,newability[first strike ueot],newability[lifelink ueot])) ueot auto=@movedto(*[-creature]|mystack):choice name(Exile and returned tapped) moveto(exile) and!( transforms((,newability[moveto(ownerbattlefield) and!(tap)!])) forever)! -text=Whenever you cast a noncreature spell, choose one — -- • Tap target creature. -- • Ojutai Exemplars gains first strike and lifelink until end of turn. -- • Exile Ojutai Exemplars, then return it to the battlefield tapped under its owner's control. +text=Whenever you cast a noncreature spell, choose one � -- � Tap target creature. -- � Ojutai Exemplars gains first strike and lifelink until end of turn. -- � Exile Ojutai Exemplars, then return it to the battlefield tapped under its owner's control. mana={2}{W}{W} type=Creature subtype=Human Monk @@ -72944,7 +72943,7 @@ toughness=5 [card] name=Pheres-Band Thunderhoof auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):counter(1/1,2) -text=Heroic —- Whenever you cast a spell that targets Pheres-Band Thunderhoof, put two +1/+1 counters on Pheres-Band Thunderhoof. +text=Heroic �- Whenever you cast a spell that targets Pheres-Band Thunderhoof, put two +1/+1 counters on Pheres-Band Thunderhoof. mana={4}{G} type=Creature subtype=Centaur Warrior @@ -78305,7 +78304,7 @@ name=Ravaging Blaze target=creature auto=damage:X auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then damage:x targetcontroller -text=Ravaging Blaze deals X damage to target creature. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, Ravaging Blaze also deals X damage to that creature's controller. +text=Ravaging Blaze deals X damage to target creature. -- Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, Ravaging Blaze also deals X damage to that creature's controller. mana={X}{R}{R} type=Instant [/card] @@ -82348,7 +82347,7 @@ toughness=2 [card] name=Rotfeaster Maggot auto=moveTo(exile) target(creature|graveyard) and!( dynamicability )! -text=When Rotfeaster Maggot enters the battlefield, exile target creature card from a graveyard. You gain life equal to that card’s toughness. +text=When Rotfeaster Maggot enters the battlefield, exile target creature card from a graveyard. You gain life equal to that card�s toughness. mana={4}{B} type=Creature subtype=Insect @@ -84412,7 +84411,7 @@ toughness=1 [card] name=Satyr Hoplite auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):counter(1/1,1) -text=Heroic —- Whenever you cast a spell that targets Satyr Hoplite, put a +1/+1 counter on Satyr Hoplite. +text=Heroic �- Whenever you cast a spell that targets Satyr Hoplite, put a +1/+1 counter on Satyr Hoplite. mana={R} type=Creature subtype=Satyr Soldier @@ -86951,7 +86950,7 @@ name=Send to Sleep target=creature|battlefield auto=tap auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then frozen -text=Tap up to two target creatures. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, those creatures don't untap during their controllers' next untap steps. +text=Tap up to two target creatures. -- Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, those creatures don't untap during their controllers' next untap steps. mana={1}{U} type=Instant [/card] @@ -91169,7 +91168,7 @@ toughness=1 name=Skybind auto=(blink) target(*[-enchantment]) ueot auto=@movedTo(enchantment|myBattlefield):(blink) target(*[-enchantment]) ueot -text=Constellation — Whenever Skybind or another enchantment enters the battlefield under your control, exile target nonenchantment permanent. Return that card to the battlefield under its owner's control at the beginning of the next end step. +text=Constellation � Whenever Skybind or another enchantment enters the battlefield under your control, exile target nonenchantment permanent. Return that card to the battlefield under its owner's control at the beginning of the next end step. mana={3}{W}{W} type=Enchantment [/card] @@ -97628,7 +97627,7 @@ toughness=4 name=Strength from the Fallen auto=target(creature) type:creature:mygraveyard/type:creature:mygraveyard ueot auto=@movedTo(enchantment|myBattlefield):target(creature) type:creature:mygraveyard/type:creature:mygraveyard ueot -text=Constellation — Whenever Strength from the Fallen or another enchantment enters the battlefield under your control, target creature gets +X/+X until end of turn, where X is the number of creature cards in your graveyard. +text=Constellation � Whenever Strength from the Fallen or another enchantment enters the battlefield under your control, target creature gets +X/+X until end of turn, where X is the number of creature cards in your graveyard. mana={1}{G} type=Enchantment [/card] @@ -97900,7 +97899,7 @@ toughness=3 name=Stubborn Denial target=*[-creature]|stack auto=if type(creature[power>=4]|mybattlefield) then fizzle else transforms((,newability[pay[[{1}]] name(pay 1 mana) donothing?fizzle])) forever -text=Counter target noncreature spell unless its controller pays {1}. -- Ferocious — If you control a creature with power 4 or greater, counter that spell instead. +text=Counter target noncreature spell unless its controller pays {1}. -- Ferocious � If you control a creature with power 4 or greater, counter that spell instead. mana={U} type=Instant [/card] @@ -99307,7 +99306,7 @@ other={1}{W} name(Spell Mastery) otherrestriction=type(*[instant;sorcery]|mygraveyard)~morethan~1 target=creature[tapped]|battlefield auto=destroy -text=Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, you may cast Swift Reckoning as though it had flash. (You may cast it any time you could cast an instant.) Destroy target tapped creature. +text=Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, you may cast Swift Reckoning as though it had flash. (You may cast it any time you could cast an instant.) Destroy target tapped creature. mana={1}{W} type=Sorcery [/card] @@ -101717,7 +101716,7 @@ toughness=2 [card] name=Tethmos High Priest auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):moveTo(mybattlefield) target(creature[manacost<=2]|mygraveyard) -text=Heroic — Whenever you cast a spell that targets Tethmos High Priest, return target creature card with converted mana cost 2 or less from your graveyard to the battlefield. +text=Heroic � Whenever you cast a spell that targets Tethmos High Priest, return target creature card with converted mana cost 2 or less from your graveyard to the battlefield. mana={2}{W} type=Creature subtype=Cat Cleric @@ -101945,7 +101944,7 @@ type=Sorcery name=Thassa's Devourer auto=deplete:2 target(player) auto=@movedTo(enchantment|myBattlefield):deplete:2 target(player) -text=Constellation — Whenever Thassa's Devourer or another enchantment enters the battlefield under your control, target player puts the top two cards of his or her library into his or her graveyard. +text=Constellation � Whenever Thassa's Devourer or another enchantment enters the battlefield under your control, target player puts the top two cards of his or her library into his or her graveyard. mana={4}{U} type=Enchantment Creature subtype=Elemental @@ -102652,7 +102651,7 @@ type=Enchantment name=Thoughtrender Lamia auto=ability$!name(discard) target(*|myhand) reject!$ opponent auto=@movedTo(enchantment|myBattlefield):ability$!name(discard) target(*|myhand) reject!$ opponent -text=Constellation — Whenever Thoughtrender Lamia or another enchantment enters the battlefield under your control, each opponent discards a card. +text=Constellation � Whenever Thoughtrender Lamia or another enchantment enters the battlefield under your control, each opponent discards a card. mana={4}{B}{B} type=Enchantment Creature subtype=Lamia @@ -105825,7 +105824,7 @@ toughness=1 [card] name=Triton Cavalry auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):may moveTo(ownerhand) target(enchantment|battlefield) -text=Heroic — Whenever you cast a spell that targets Triton Cavalry, you may return target enchantment to its owner's hand. +text=Heroic � Whenever you cast a spell that targets Triton Cavalry, you may return target enchantment to its owner's hand. mana={3}{U} type=Creature subtype=Merfolk Soldier @@ -107114,7 +107113,7 @@ name=Underworld Coinsmith auto=life:1 auto=@movedTo(enchantment|myBattlefield):life:1 auto={W}{B}{L}:life:-1 opponent -text=Constellation — Whenever Underworld Coinsmith or another enchantment enters the battlefield under your control, you gain 1 life. -- {W}{B}, Pay 1 life: Each opponent loses 1 life. +text=Constellation � Whenever Underworld Coinsmith or another enchantment enters the battlefield under your control, you gain 1 life. -- {W}{B}, Pay 1 life: Each opponent loses 1 life. mana={W}{B} type=Enchantment Creature subtype=Human Cleric @@ -107265,7 +107264,7 @@ name=Unholy Hunger target=creature auto=destroy auto=if type(*[instant;sorcery]|mygraveyard)~morethan~1 then life:2 srccontroller -text=Destroy target creature. -- Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, you gain 2 life. +text=Destroy target creature. -- Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, you gain 2 life. mana={3}{B}{B} type=Instant [/card] @@ -112972,7 +112971,7 @@ type=Sorcery [card] name=Wavecrash Triton auto=@targeted(this) from(*[instant;sorcery;enchantment]|myhand,mygraveyard):target(creature|opponentbattlefield) transforms((,newability[tap],newability[frozen])) oneshot -text=Heroic — Whenever you cast a spell that targets Wavecrash Triton, tap target creature an opponent controls. That creature doesn't untap during its controller's next untap step. +text=Heroic � Whenever you cast a spell that targets Wavecrash Triton, tap target creature an opponent controls. That creature doesn't untap during its controller's next untap step. mana={2}{U} type=Creature subtype=Merfolk Wizard @@ -113846,7 +113845,7 @@ type=Instant name=Whitewater Naiads auto=unblockable target(creature) ueot auto=@movedTo(enchantment|myBattlefield):unblockable target(creature) ueot -text=Constellation — Whenever Whitewater Naiads or another enchantment enters the battlefield under your control, target creature can't be blocked this turn. +text=Constellation � Whenever Whitewater Naiads or another enchantment enters the battlefield under your control, target creature can't be blocked this turn. mana={3}{U}{U} type=Enchantment Creature subtype=Nymph diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index f8c9646b6..6c2eb578b 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -4856,7 +4856,7 @@ public: { if ((isManaProduced->card == source) && isManaProduced->color == Constants::GetColorStringIndex(colorname)) { - source->controller()->getManaPool()->add(Constants::GetColorStringIndex(colorname),1); + source->controller()->getManaPool()->add(Constants::GetColorStringIndex(colorname),1,source,true); } } return 1; diff --git a/projects/mtg/include/ManaCost.h b/projects/mtg/include/ManaCost.h index 6da7300c6..c121c9500 100644 --- a/projects/mtg/include/ManaCost.h +++ b/projects/mtg/include/ManaCost.h @@ -150,7 +150,7 @@ public: ManaPool(Player * player); ManaPool(ManaCost * _manaCost, Player * player); int remove (int color, int value); - int add(int color, int value, MTGCardInstance * source = NULL); + int add(int color, int value, MTGCardInstance * source = NULL, bool extra = false); int add(ManaCost * _cost, MTGCardInstance * source = NULL); int pay (ManaCost * _cost); }; diff --git a/projects/mtg/include/WEvent.h b/projects/mtg/include/WEvent.h index 761662255..677293e0c 100644 --- a/projects/mtg/include/WEvent.h +++ b/projects/mtg/include/WEvent.h @@ -248,6 +248,14 @@ struct WEventCombatStepChange : public WEvent WEventCombatStepChange(CombatStep); }; +//Event when a mana is engaged +//color : color +struct WEventEngageManaExtra : public WEvent { + int color; + MTGCardInstance* card; + ManaPool * destination; + WEventEngageManaExtra(int color, MTGCardInstance* card, ManaPool * destination); +}; //Event when a mana is engaged //color : color diff --git a/projects/mtg/src/GuiMana.cpp b/projects/mtg/src/GuiMana.cpp index 14c73d720..bf8fd7dd0 100644 --- a/projects/mtg/src/GuiMana.cpp +++ b/projects/mtg/src/GuiMana.cpp @@ -346,6 +346,16 @@ int GuiMana::receiveEventPlus(WEvent* e) manas.push_back(NEW ManaIcon(event->color, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, x, y)); return 1; } + else if (WEventEngageManaExtra *event = dynamic_cast(e)) + { + if (event->destination != owner->getManaPool()) + return 0; + if (event->card && event->card->view) + manas.push_back(NEW ManaIcon(event->color, event->card->view->actX, event->card->view->actY, x, y)); + else + manas.push_back(NEW ManaIcon(event->color, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, x, y)); + return 1; + } else return 0; } diff --git a/projects/mtg/src/ManaCost.cpp b/projects/mtg/src/ManaCost.cpp index abe61320a..ffac01ac3 100644 --- a/projects/mtg/src/ManaCost.cpp +++ b/projects/mtg/src/ManaCost.cpp @@ -1119,14 +1119,20 @@ int ManaPool::remove(int color, int value) return result; } -int ManaPool::add(int color, int value, MTGCardInstance * source) +int ManaPool::add(int color, int value, MTGCardInstance * source, bool extra) { if (color == Constants::MTG_COLOR_ARTIFACT) color = Constants::MTG_COLOR_WASTE; int result = ManaCost::add(color, value); for (int i = 0; i < value; ++i) { - WEvent * e = NEW WEventEngageMana(color, source, this); + WEvent * e = NEW WEvent; + + if(extra) + e = NEW WEventEngageManaExtra(color, source, this); + else + e = NEW WEventEngageMana(color, source, this); + player->getObserver()->receiveEvent(e); } return result; diff --git a/projects/mtg/src/WEvent.cpp b/projects/mtg/src/WEvent.cpp index 11ff44b9c..ccd04afb3 100644 --- a/projects/mtg/src/WEvent.cpp +++ b/projects/mtg/src/WEvent.cpp @@ -147,6 +147,35 @@ WEventCreatureBlockerRank::WEventCreatureBlockerRank(MTGCardInstance * card, MTG { } +WEventEngageManaExtra::WEventEngageManaExtra(int color, MTGCardInstance* card, ManaPool * destination) : + WEvent(), color(color), card(card), destination(destination) +{//controller snow + if(color == 1 && card->controller()->getManaPool() == destination && card->hasType("snow")) + card->controller()->snowManaG += 1; + if(color == 2 && card->controller()->getManaPool() == destination && card->hasType("snow")) + card->controller()->snowManaU += 1; + if(color == 3 && card->controller()->getManaPool() == destination && card->hasType("snow")) + card->controller()->snowManaR += 1; + if(color == 4 && card->controller()->getManaPool() == destination && card->hasType("snow")) + card->controller()->snowManaB += 1; + if(color == 5 && card->controller()->getManaPool() == destination && card->hasType("snow")) + card->controller()->snowManaW += 1; + if((color == 0 || color == 6) && card->controller()->getManaPool() == destination && card->hasType("snow")) + card->controller()->snowManaC += 1; + //opponent snow + if(color == 1 && card->controller()->opponent()->getManaPool() == destination && card->hasType("snow")) + card->controller()->opponent()->snowManaG += 1; + if(color == 2 && card->controller()->opponent()->getManaPool() == destination && card->hasType("snow")) + card->controller()->opponent()->snowManaU += 1; + if(color == 3 && card->controller()->opponent()->getManaPool() == destination && card->hasType("snow")) + card->controller()->opponent()->snowManaR += 1; + if(color == 4 && card->controller()->opponent()->getManaPool() == destination && card->hasType("snow")) + card->controller()->opponent()->snowManaB += 1; + if(color == 5 && card->controller()->opponent()->getManaPool() == destination && card->hasType("snow")) + card->controller()->opponent()->snowManaW += 1; + if((color == 0 || color == 6) && card->controller()->opponent()->getManaPool() == destination && card->hasType("snow")) + card->controller()->opponent()->snowManaC += 1; +} WEventEngageMana::WEventEngageMana(int color, MTGCardInstance* card, ManaPool * destination) : WEvent(), color(color), card(card), destination(destination) {//controller snow