Added/fixed primitives and implemented new keywords to count the single color symbols in player's manapool.

This commit is contained in:
valfieri
2020-12-09 19:28:28 +01:00
parent 16e6df9503
commit 68d21ddd23
3 changed files with 105 additions and 93 deletions

View File

@@ -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

View File

@@ -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}

View File

@@ -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
{