diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index fa0543729..55c559fc2 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -31420,6 +31420,17 @@ power=4 toughness=4 [/card] [card] +name=Omnath, Locus of Mana +auto=mypoolsave(green) +anyzone=mygreenpoolcountplus1plusend/mygreenpoolcountplus1plusend cdaactive +text=Green mana doesn't empty from your mana pool as steps and phases end. -- Omnath, Locus of Mana gets +1/+1 for each green mana in your mana pool. +mana={2}{G} +type=Legendary Creature +subtype=Elemental +power=1 +toughness=1 +[/card] +[card] name=Omnath, Locus of the Roil target=creature,opponent auto=damage:type:elemental:mybattlefield @@ -32359,6 +32370,14 @@ power=3 toughness=2 [/card] [card] +name=Pale Moon +auto=lord(land|mybattlefield) loseabilities && transforms((,newability[producecolor:land])) ueot +auto=lord(land|opponentbattlefield) loseabilities && transforms((,newability[producecolor:land])) ueot +text=Until end of turn, if a player taps a nonbasic land for mana, it produces colorless mana instead of any other type. +mana={1}{U} +type=Instant +[/card] +[card] name=Palisade Giant abilities=cantlifelose auto=@damageof(player):life:thatmuch controller && damage:thatmuch all(this) @@ -32585,6 +32604,33 @@ type=Enchantment subtype=Aura [/card] [card] +name=Parting Thoughts +auto=if type(creature[-counter{1/1.1}]|battlefield)~morethan~0 then choice name(Destroy creature with no counters 1/1) target(creature[-counter{1/1.1}]|battlefield) destroy +auto=if type(creature[counter{1/1.1}]|battlefield)~morethan~0 then choice name(Destroy creature with 1 counter 1/1) target(creature[counter{1/1.1}]|battlefield) transforms((,newability[destroy],newability[draw:1 controller],newability[life:-1 controller])) forever +auto=if type(creature[counter{1/1.2}]|battlefield)~morethan~0 then choice name(Destroy creature with 2 counters 1/1) target(creature[counter{1/1.2}]|battlefield) transforms((,newability[destroy],newability[draw:2 controller],newability[life:-2 controller])) forever +auto=if type(creature[counter{1/1.3}]|battlefield)~morethan~0 then choice name(Destroy creature with 3 counters 1/1) target(creature[counter{1/1.3}]|battlefield) transforms((,newability[destroy],newability[draw:3 controller],newability[life:-3 controller])) forever +auto=if type(creature[counter{1/1.4}]|battlefield)~morethan~0 then choice name(Destroy creature with 4 counters 1/1) target(creature[counter{1/1.4}]|battlefield) transforms((,newability[destroy],newability[draw:4 controller],newability[life:-4 controller])) forever +auto=if type(creature[counter{1/1.5}]|battlefield)~morethan~0 then choice name(Destroy creature with 5 counters 1/1) target(creature[counter{1/1.5}]|battlefield) transforms((,newability[destroy],newability[draw:5 controller],newability[life:-5 controller])) forever +auto=if type(creature[counter{1/1.6}]|battlefield)~morethan~0 then choice name(Destroy creature with 6 counters 1/1) target(creature[counter{1/1.6}]|battlefield) transforms((,newability[destroy],newability[draw:6 controller],newability[life:-6 controller])) forever +auto=if type(creature[counter{1/1.7}]|battlefield)~morethan~0 then choice name(Destroy creature with 7 counters 1/1) target(creature[counter{1/1.7}]|battlefield) transforms((,newability[destroy],newability[draw:7 controller],newability[life:-7 controller])) forever +auto=if type(creature[counter{1/1.8}]|battlefield)~morethan~0 then choice name(Destroy creature with 8 counters 1/1) target(creature[counter{1/1.8}]|battlefield) transforms((,newability[destroy],newability[draw:8 controller],newability[life:-8 controller])) forever +auto=if type(creature[counter{1/1.9}]|battlefield)~morethan~0 then choice name(Destroy creature with 9 counters 1/1) target(creature[counter{1/1.9}]|battlefield) transforms((,newability[destroy],newability[draw:9 controller],newability[life:-9 controller])) forever +auto=if type(creature[counter{1/1.10}]|battlefield)~morethan~0 then choice name(Destroy creature with 10 counters 1/1) target(creature[counter{1/1.10}]|battlefield) transforms((,newability[destroy],newability[draw:10 controller],newability[life:-10 controller])) forever +auto=if type(creature[counter{1/1.11}]|battlefield)~morethan~0 then choice name(Destroy creature with 11 counters 1/1) target(creature[counter{1/1.11}]|battlefield) transforms((,newability[destroy],newability[draw:11 controller],newability[life:-11 controller])) forever +auto=if type(creature[counter{1/1.12}]|battlefield)~morethan~0 then choice name(Destroy creature with 12 counters 1/1) target(creature[counter{1/1.12}]|battlefield) transforms((,newability[destroy],newability[draw:12 controller],newability[life:-12 controller])) forever +auto=if type(creature[counter{1/1.13}]|battlefield)~morethan~0 then choice name(Destroy creature with 13 counters 1/1) target(creature[counter{1/1.13}]|battlefield) transforms((,newability[destroy],newability[draw:13 controller],newability[life:-13 controller])) forever +auto=if type(creature[counter{1/1.14}]|battlefield)~morethan~0 then choice name(Destroy creature with 14 counters 1/1) target(creature[counter{1/1.14}]|battlefield) transforms((,newability[destroy],newability[draw:14 controller],newability[life:-14 controller])) forever +auto=if type(creature[counter{1/1.15}]|battlefield)~morethan~0 then choice name(Destroy creature with 15 counters 1/1) target(creature[counter{1/1.15}]|battlefield) transforms((,newability[destroy],newability[draw:15 controller],newability[life:-15 controller])) forever +auto=if type(creature[counter{1/1.16}]|battlefield)~morethan~0 then choice name(Destroy creature with 16 counters 1/1) target(creature[counter{1/1.16}]|battlefield) transforms((,newability[destroy],newability[draw:16 controller],newability[life:-16 controller])) forever +auto=if type(creature[counter{1/1.17}]|battlefield)~morethan~0 then choice name(Destroy creature with 17 counters 1/1) target(creature[counter{1/1.17}]|battlefield) transforms((,newability[destroy],newability[draw:17 controller],newability[life:-17 controller])) forever +auto=if type(creature[counter{1/1.18}]|battlefield)~morethan~0 then choice name(Destroy creature with 18 counters 1/1) target(creature[counter{1/1.18}]|battlefield) transforms((,newability[destroy],newability[draw:18 controller],newability[life:-18 controller])) forever +auto=if type(creature[counter{1/1.19}]|battlefield)~morethan~0 then choice name(Destroy creature with 19 counters 1/1) target(creature[counter{1/1.19}]|battlefield) transforms((,newability[destroy],newability[draw:19 controller],newability[life:-19 controller])) forever +auto=if type(creature[counter{1/1.20}]|battlefield)~morethan~0 then choice name(Destroy creature with 20 counters 1/1) target(creature[counter{1/1.20}]|battlefield) transforms((,newability[destroy],newability[draw:20 controller],newability[life:-20 controller])) forever +text=Destroy target creature. You draw X cards and you lose X life, where X is the number of counters on that creature. +mana={2}{B} +type=Sorcery +[/card] +[card] name=Pashalik Mons auto=@movedto(other creature[goblin]|graveyard) from(mybattlefield):damage:1 target(creature,player) auto=@movedto(this|graveyard) from(mybattlefield):damage:1 target(creature,player) @@ -32691,6 +32737,14 @@ mana={W} type=Instant [/card] [card] +name=Peace Talks +auto=lord(creature|battlefield) transforms((,newability[cantattack])) uynt +auto=lord(*|battlefield) transforms((,newability[shroud],newability[controllershroud])) uynt +text=This turn and next turn, creatures can't attack, and players and permanents can't be the targets of spells or activated abilities. +mana={1}{W} +type=Sorcery +[/card] +[card] name=Peer into the Abyss auto=choice name(Target opponent) draw:halfuptype:*:opponentlibrary opponent && life:-halfupopponentlifetotal opponent auto=choice name(Target controller) draw:halfuptype:*:mylibrary controller && life:-halfuplifetotal controller @@ -45227,6 +45281,13 @@ power=3 toughness=2 [/card] [card] +name=Sylvan Library +auto=@each my draw:may thisforeach(variable{2}) name(Draw 2 cards) name(Draw 2 cards) draw:1 && ability$!name(Pay life or discard) choice name(Pay Life) life:-4 controller _ choice name(Put on top of library) target(*|myhand) moveto(mylibrary)!$ controller +text=At the beginning of your draw step, you may draw two additional cards. If you do, choose two cards in your hand drawn this turn. For each of those cards, pay 4 life or put the card on top of your library. +mana={1}{G} +type=Enchantment +[/card] +[card] name=Sylvan Offering auto=token(Treefolk,Creature Treefolk,X/X,green,tnum:2) opponent auto=token(Treefolk,Creature Treefolk,X/X,green,tnum:2) controller @@ -48978,7 +49039,7 @@ toughness=* [card] name=Tymna the Weaver abilities=lifelink,partner -auto=@each my endofturn restriction{compare(oplifelost)~morethan~0}:may pay({L:1}) draw:1 controller +auto=@each my secondmain restriction{compare(odcountminusodnoncountminusend)~morethan~0}:may pay({L:1}) draw:1 controller text=Lifelink -- At the beginning of your postcombat main phase, you may pay X life, where X is the number of opponents that were dealt combat damage this turn. If you do, draw X cards. -- Partner (You can have two commanders if both have partner.) mana={1}{W}{B} type=Legendary Creature diff --git a/projects/mtg/bin/Res/sets/primitives/unsupported.txt b/projects/mtg/bin/Res/sets/primitives/unsupported.txt index 4a847c5e9..49f6d6b55 100644 --- a/projects/mtg/bin/Res/sets/primitives/unsupported.txt +++ b/projects/mtg/bin/Res/sets/primitives/unsupported.txt @@ -9578,15 +9578,6 @@ mana={6} type=Artifact [/card] [card] -name=Omnath, Locus of Mana -text=Green mana doesn't empty from your mana pool as steps and phases end. -- Omnath, Locus of Mana gets +1/+1 for each green mana in your mana pool. -mana={2}{G} -type=Legendary Creature -subtype=Elemental -power=1 -toughness=1 -[/card] -[card] name=Onakke Catacomb text=All creatures are black and have deathtouch. -- Whenever you roll {K}, creatures you control get +1/+0 and gain first strike until end of turn. type=Plane @@ -9829,12 +9820,6 @@ power=0 toughness=3 [/card] [card] -name=Pale Moon -text=Until end of turn, if a player taps a nonbasic land for mana, it produces colorless mana instead of any other type. -mana={1}{U} -type=Instant -[/card] -[card] name=Paliano Vanguard text=Draft Paliano Vanguard face up. -- As you draft a creature card, you may reveal it, note its creature types, then turn Paliano Vanguard face down. -- Other creatures you control of a type you noted for cards named Paliano Vanguard get +1/+1. mana={1}{W} @@ -9908,12 +9893,6 @@ power=4 toughness=4 [/card] [card] -name=Parting Thoughts -text=Destroy target creature. You draw X cards and you lose X life, where X is the number of counters on that creature. -mana={2}{B} -type=Sorcery -[/card] -[card] name=Party Crasher text=Haste -- You can attack with Party Crasher once each combat during each opponent's turn. mana={4}{R} @@ -9929,12 +9908,6 @@ mana={3}{B}{B} type=Sorcery [/card] [card] -name=Peace Talks -text=This turn and next turn, creatures can't attack, and players and permanents can't be the targets of spells or activated abilities. -mana={1}{W} -type=Sorcery -[/card] -[card] name=Penance text=Put a card from your hand on top of your library: The next time a black or red source of your choice would deal damage this turn, prevent that damage. mana={2}{W} @@ -13370,12 +13343,6 @@ mana={G} type=Enchantment [/card] [card] -name=Sylvan Library -text=At the beginning of your draw step, you may draw two additional cards. If you do, choose two cards in your hand drawn this turn. For each of those cards, pay 4 life or put the card on top of your library. -mana={1}{G} -type=Enchantment -[/card] -[card] name=Symbol Status text=Put a 1/1 colorless Expansion-Symbol creature token into play for each different expansion symbol among permanents you control. mana={2}{G}{G} diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index 6e73806a2..1e8bdd4cb 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -709,57 +709,33 @@ private: if(card && card->thatmuch > intValue) intValue = card->thatmuch; } - else if (s == "oplifelost") + else if (s == "lifelost" || s == "oplifelost") { - intValue = target->controller()->opponent()->lifeLostThisTurn; + intValue = (s == "lifelost")?intValue = target->controller()->lifeLostThisTurn:target->controller()->opponent()->lifeLostThisTurn; } - else if (s == "lifelost") + else if (s == "lifegain" || s == "oplifegain") { - intValue = target->controller()->lifeLostThisTurn; + intValue = (s == "lifegain")?intValue = target->controller()->lifeGainedThisTurn:target->controller()->opponent()->lifeGainedThisTurn; } - else if (s == "oplifegain") + else if (s == "pdcount" || s == "odcount") { - intValue = target->controller()->opponent()->lifeGainedThisTurn; + intValue = (s == "pdcount")?target->controller()->damageCount:target->controller()->opponent()->damageCount; } - else if (s == "lifegain") + else if (s == "pdnoncount" || s == "odnoncount") { - intValue = target->controller()->lifeGainedThisTurn; + intValue = (s == "pdnoncount")?target->controller()->nonCombatDamage:target->controller()->opponent()->nonCombatDamage; } - else if (s == "pdcount") + else if (s == "mypoisoncount" || s == "opponentpoisoncount") { - intValue = target->controller()->damageCount; - } - else if (s == "odcount") - { - intValue = target->controller()->opponent()->damageCount; - } - else if (s == "pdnoncount") - { - intValue = target->controller()->nonCombatDamage; - } - else if (s == "odnoncount") - { - intValue = target->controller()->opponent()->nonCombatDamage; - } - else if (s == "mypoisoncount") - { - intValue = target->controller()->poisonCount; - } - else if (s == "opponentpoisoncount") - { - intValue = target->controller()->opponent()->poisonCount; + intValue = (s == "mypoisoncount")?target->controller()->poisonCount:intValue = target->controller()->opponent()->poisonCount; } else if (s == "opponentlifetotal") { intValue = target->controller()->opponent()->life; } - else if (s == "pdrewcount") + else if (s == "pdrewcount" || s == "odrewcount") { - intValue = target->controller()->drawCounter; - } - else if (s == "odrewcount") - { - intValue = target->controller()->opponent()->drawCounter; + intValue = (s == "pdrewcount")?target->controller()->drawCounter:target->controller()->opponent()->drawCounter; } else if (s == "epicactivated") { @@ -769,13 +745,33 @@ private: {//this is just to count the number of snow mana produced ... just for debugging purposes... intValue = target->controller()->snowManaG + target->controller()->snowManaU +target->controller()->snowManaR + target->controller()->snowManaB + target->controller()->snowManaW + target->controller()->snowManaC; } - else if (s == "mypoolcount") + else if (s == "mypoolcount" || s == "opponentpoolcount") {//manapool - intValue = target->controller()->getManaPool()->getConvertedCost(); + intValue = (s == "mypoolcount")?target->controller()->getManaPool()->getConvertedCost():target->controller()->opponent()->getManaPool()->getConvertedCost(); } - else if (s == "opponentpoolcount") - {//manapool opponent - intValue = target->controller()->opponent()->getManaPool()->getConvertedCost(); + else if (s == "mygreenpoolcount" || s == "opponentgreenpoolcount") + { + intValue = (s == "mygreenpoolcount")?target->controller()->getManaPool()->getManaSymbols(Constants::MTG_COLOR_GREEN):target->controller()->opponent()->getManaPool()->getManaSymbols(Constants::MTG_COLOR_GREEN); + } + else if (s == "myredpoolcount" || s == "opponentredpoolcount") + { + intValue = (s == "myredpoolcount")?target->controller()->getManaPool()->getManaSymbols(Constants::MTG_COLOR_RED):target->controller()->opponent()->getManaPool()->getManaSymbols(Constants::MTG_COLOR_RED); + } + else if (s == "mybluepoolcount" || s == "opponentbluepoolcount") + { + intValue = (s == "mybluepoolcount")?target->controller()->getManaPool()->getManaSymbols(Constants::MTG_COLOR_BLUE):target->controller()->opponent()->getManaPool()->getManaSymbols(Constants::MTG_COLOR_BLUE); + } + else if (s == "mywhitepoolcount" || s == "opponentwhitepoolcount") + { + intValue = (s == "mywhitepoolcount")?target->controller()->getManaPool()->getManaSymbols(Constants::MTG_COLOR_WHITE):target->controller()->opponent()->getManaPool()->getManaSymbols(Constants::MTG_COLOR_WHITE); + } + else if (s == "myblackpoolcount" || s == "opponentblackpoolcount") + { + intValue = (s == "myblackpoolcount")?target->controller()->getManaPool()->getManaSymbols(Constants::MTG_COLOR_BLACK):target->controller()->opponent()->getManaPool()->getManaSymbols(Constants::MTG_COLOR_BLACK); + } + else if (s == "mycolorlesspoolcount" || s == "opponentcolorlesspoolcount") + { + intValue = (s == "mycolorlesspoolcount")?target->controller()->getManaPool()->getManaSymbols(Constants::MTG_COLOR_ARTIFACT):target->controller()->opponent()->getManaPool()->getManaSymbols(Constants::MTG_COLOR_ARTIFACT); } else if (s == "p" || s == "power") { @@ -785,21 +781,13 @@ private: { intValue = target->getCurrentToughness(); } - else if (s == "countedamount") + else if (s == "countedamount" || s == "countedbamount") { - intValue = target->CountedObjects; + intValue = (s == "countedamount")?target->CountedObjects:target->CountedObjectsB; } - else if (s == "countedbamount") + else if (s == "kicked" || s == "handsize") { - intValue = target->CountedObjectsB; - } - else if (s == "kicked") - { - intValue = target->kicked; - } - else if (s == "handsize") - { - intValue = target->controller()->handsize; + intValue = (s == "kicked")?target->kicked:target->controller()->handsize; } else if (s == "olandg") { @@ -875,13 +863,9 @@ private: if ( target->controller()->opponent() == target->getObserver()->currentPlayer) intValue = 1; } - else if (s == "phandcount") + else if (s == "phandcount" || s == "ohandcount") { - intValue = target->controller()->game->hand->nb_cards; - } - else if (s == "ohandcount") - { - intValue = target->controller()->opponent()->game->hand->nb_cards; + intValue = (s == "phandcount")?target->controller()->game->hand->nb_cards:target->controller()->opponent()->game->hand->nb_cards; } else if (s == "urzatron")//Urza lands {