diff --git a/projects/mtg/bin/Res/sets/primitives/borderline.txt b/projects/mtg/bin/Res/sets/primitives/borderline.txt index 7091574ab..d6f25cf56 100644 --- a/projects/mtg/bin/Res/sets/primitives/borderline.txt +++ b/projects/mtg/bin/Res/sets/primitives/borderline.txt @@ -16795,6 +16795,13 @@ mana={1}{R} type=Instant [/card] [card] +name=Fist of Suns +auto=lord(*|myrestrictedcastingzone) transforms((,newability[{W}{U}{B}{R}{G}:name(Pay with 5 colors mana) name(Pay with 5 colors mana) activate castcard(normal)])) +text=You may pay {W}{U}{B}{R}{G} rather than pay the mana cost for spells that you cast. +mana={3} +type=Artifact +[/card] +[card] name=Five-Finger Discount target=*[-land]|battlefield auto=moveto(myhand) and!( transforms((,newability[anytypeofmana])) forever)! @@ -19347,7 +19354,7 @@ toughness=2 [/card] [card] name=Gnarlroot Trapper -auto={this(variable{type:elf:myrestrictedcastingzone}>0) T}{L:1}:add{G} +auto=this(variable{type:elf:myrestrictedcastingzone}>0) {T}{L:1}:add{G} auto={T}:target(elf[attacking]|mybattlefield) transforms((,newability[deathtouch])) ueot text={T}, Pay 1 life: Add {G} to your mana pool. Spend this mana only to cast an Elf creature spell. -- {T}: Target attacking Elf you control gains deathtouch until end of turn. (Any amount of damage it deals to a creature is enough to destroy it.) mana={B} @@ -20360,6 +20367,16 @@ mana={3}{R} type=Sorcery [/card] [card] +name=Graxiplon +auto=this(variable{oppsametypecreatures}<3) unblockable +text=Graxiplon is unblockable unless defending player controls three or more creatures that share a creature type. +mana={5}{U} +type=Creature +subtype=Beast +power=3 +toughness=4 +[/card] +[card] name=Grazing Whiptail abilities=reach text=Reach @@ -25296,7 +25313,7 @@ toughness=3 [card] name=Jodah, Archmage Eternal abilities=flying -auto={W}{U}{B}{R}{G}:target(*|myrestrictedcastingzone) activate castcard(normal) +auto=lord(*|myrestrictedcastingzone) transforms((,newability[{W}{U}{B}{R}{G}:name(Pay with 5 colors mana) name(Pay with 5 colors mana) activate castcard(normal)])) text=Flying -- You may pay {W}{U}{B}{R}{G} rather than pay the mana cost for spells that you cast. mana={1}{U}{R}{W} type=Legendary Creature diff --git a/projects/mtg/bin/Res/sets/primitives/unsupported.txt b/projects/mtg/bin/Res/sets/primitives/unsupported.txt index 52db66d14..f68835a86 100644 --- a/projects/mtg/bin/Res/sets/primitives/unsupported.txt +++ b/projects/mtg/bin/Res/sets/primitives/unsupported.txt @@ -4115,12 +4115,6 @@ mana={3}{G} type=Instant [/card] [card] -name=Fist of Suns -text=You may pay {W}{U}{B}{R}{G} rather than pay the mana cost for spells that you cast. -mana={3} -type=Artifact -[/card] -[card] name=Fistful of Force text=Target creature gets +2/+2 until end of turn. Clash with an opponent. If you win, that creature gets an additional +2/+2 and gains trample until end of turn. (Each clashing player reveals the top card of his or her library, then puts that card on the top or bottom. A player wins if his or her card had a higher converted mana cost.) mana={1}{G} @@ -5062,15 +5056,6 @@ power=* toughness=* [/card] [card] -name=Graxiplon -text=Graxiplon is unblockable unless defending player controls three or more creatures that share a creature type. -mana={5}{U} -type=Creature -subtype=Beast -power=3 -toughness=4 -[/card] -[card] name=Greater Gargadon text=Suspend 10—{R} -- Sacrifice an artifact, creature, or land: Remove a time counter from Greater Gargadon. Activate this ability only if Greater Gargadon is suspended. mana={9}{R} diff --git a/projects/mtg/src/WParsedInt.cpp b/projects/mtg/src/WParsedInt.cpp index e074cfd6d..0a6c4dc1c 100644 --- a/projects/mtg/src/WParsedInt.cpp +++ b/projects/mtg/src/WParsedInt.cpp @@ -853,7 +853,7 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card) } } } - else if (s.find("cardcounttype") != string::npos)//Count Total Creatures of specific type + else if (s.find("cardcounttype") != string::npos)//Count Total cards of specific type { intValue = 0; bool different_names = (s.find("diffcardcounttype")!=string::npos)?true:false; @@ -878,6 +878,31 @@ void WParsedInt::init(string s, Spell * spell, MTGCardInstance * card) } } } + else if (s.find("sametypecreatures") != string::npos)//Count the greatest number creatures that share same subtype (creatures with changeling counts as +1 for all creature types) + { + intValue = 0; + bool opponent = (s.find("oppsametypecreatures")!=string::npos)?true:false; + vector list; + vector values = MTGAllCards::getCreatureValuesById(); + for (size_t i = 0; i < values.size(); ++i){ + list.push_back(0); + if(opponent){ + for (int j = card->controller()->opponent()->game->inPlay->nb_cards - 1; j >= 0; --j){ + if (card->controller()->opponent()->game->inPlay->cards[j]->hasType(values[i]) || card->controller()->opponent()->game->inPlay->cards[j]->has(Constants::CHANGELING)){ + list[i]++; + } + } + } else { + for (int j = card->controller()->game->inPlay->nb_cards - 1; j >= 0; --j){ + if (card->controller()->game->inPlay->cards[j]->hasType(values[i]) || card->controller()->game->inPlay->cards[j]->has(Constants::CHANGELING)){ + list[i]++; + } + } + } + if (list[i] > intValue) + intValue = list[i]; + } + } else if (s == "cursedscrollresult")//Return 1 if the cursed scroll has to give damage (calculated randomly basing on the number of unique cards in the player hand)... { intValue = 0;