diff --git a/projects/mtg/bin/Res/ai/baka/deck10.txt b/projects/mtg/bin/Res/ai/baka/deck10.txt index d0bfd294b..13e246ccc 100644 --- a/projects/mtg/bin/Res/ai/baka/deck10.txt +++ b/projects/mtg/bin/Res/ai/baka/deck10.txt @@ -1,5 +1,7 @@ #NAME:Howlins -#DESC:Goblin deck +#DESC:High in Jund's mountains. +#DESC:They build up a head of steam +#DESC:before attacking prey down below. #Spark Elemental 129577 129577 diff --git a/projects/mtg/bin/Res/ai/baka/deck22.txt b/projects/mtg/bin/Res/ai/baka/deck22.txt index 807b35071..1435936ec 100644 --- a/projects/mtg/bin/Res/ai/baka/deck22.txt +++ b/projects/mtg/bin/Res/ai/baka/deck22.txt @@ -1,4 +1,7 @@ #NAME:Giants! +#DESC:A giant can brood +#DESC:over a grudge for decades, +#DESC:and woe to those who interrupt him. #Mogg Fanatic 4832 4832 @@ -30,8 +33,11 @@ 146597 146597 #Borderland Behemoth (IS NOT INCLUDED IN OFFICIAL RELEASE !! SHOULD BE REPLACED !!) -153102 -153102 +#153102 +#153102 +#Oathsworn Giant {4}{W}{W} - 3/4 giant - lord creature|myinplay 0/2 vigilance other +89012 +89012 #Pyroclasm 129801 129801 diff --git a/projects/mtg/bin/Res/ai/baka/deck3.txt b/projects/mtg/bin/Res/ai/baka/deck3.txt index 1ed3f9277..9b36dae54 100644 --- a/projects/mtg/bin/Res/ai/baka/deck3.txt +++ b/projects/mtg/bin/Res/ai/baka/deck3.txt @@ -1,4 +1,4 @@ -#NAME:Flashback +#NAME:Savannah #DESC:Ol'good RV green/white #DESC:small creatures deck #2x Black Vise diff --git a/projects/mtg/bin/Res/ai/baka/deck9.txt b/projects/mtg/bin/Res/ai/baka/deck9.txt index e6db7db46..ee565e32b 100644 --- a/projects/mtg/bin/Res/ai/baka/deck9.txt +++ b/projects/mtg/bin/Res/ai/baka/deck9.txt @@ -1,5 +1,9 @@ -#NAME:Disenchant -#DESC:Red/White Deck for AI, Anti Artifact +#NAME:Shatter +#DESC:The scepter of power is fragile +#DESC:in a calloused hand. +#DESC:See you effort reduced +#DESC:to a smoking stack of scrap +#DESC:in one easy step. #2x Shatter 1316 1316 diff --git a/projects/mtg/bin/Res/sets/RAV/todo.dat b/projects/mtg/bin/Res/sets/RAV/todo.dat index 701e31910..2a561351c 100644 --- a/projects/mtg/bin/Res/sets/RAV/todo.dat +++ b/projects/mtg/bin/Res/sets/RAV/todo.dat @@ -593,6 +593,9 @@ subtype=Aura text=Search your library for a Plains, Island, Swamp, or Mountain card and put it into play tapped. Then shuffle your library. id=87970 name=Farseek +target=plains,island,swamp|mylibrary +auto=moveto(myinplay) +auto=tap rarity=C type=Sorcery mana={1}{G} @@ -625,7 +628,7 @@ subtype=Angel toughness=3 [/card] [card] -text=Until end of turn, permanents you control gain "{T}: This permanent deals 1 damage to target creature or player." +text=Until end of turn, permanents you control gain "{T}: This permanent deals 1 damage to target creature or player." id=83912 name=Flame Fusillade rarity=R diff --git a/projects/mtg/bin/Res/sets/USG/_cards.dat b/projects/mtg/bin/Res/sets/USG/_cards.dat index 7fccf2850..b20e7a6bd 100644 --- a/projects/mtg/bin/Res/sets/USG/_cards.dat +++ b/projects/mtg/bin/Res/sets/USG/_cards.dat @@ -474,6 +474,14 @@ subtype=Goblin toughness=1 [/card] [card] +text=Put X 1/1 red Goblin creature tokens into play. +id=8818 +name=Goblin Offensive +rarity=U +type=Sorcery +mana={X}{1}{R}{R} +[/card] +[card] text=Goblin Raider can't block. id=5701 name=Goblin Raider @@ -714,6 +722,15 @@ mana={1}{W} subtype=Aura [/card] [card] +text=Destroy target creature. Its owner gains 4 life. +id=5684 +target=creature +name=Path of Peace +rarity=C +type=Sorcery +mana={3}{W} +[/card] +[card] text=Flying, first strike id=5729 name=Pegasus Charger diff --git a/projects/mtg/bin/Res/sets/USG/todo.dat b/projects/mtg/bin/Res/sets/USG/todo.dat index 44dfc8215..32eb17f4d 100644 --- a/projects/mtg/bin/Res/sets/USG/todo.dat +++ b/projects/mtg/bin/Res/sets/USG/todo.dat @@ -742,15 +742,6 @@ power=1 subtype=Goblin toughness=1 [/card] - -[card] -text=Put X 1/1 red Goblin creature tokens into play. -id=8818 -name=Goblin Offensive -rarity=U -type=Sorcery -mana={X}{1}{R}{R} -[/card] [card] text=Echo {R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) id=5653 @@ -1228,14 +1219,6 @@ mana={2}{W} subtype=Aura [/card] [card] -text=Destroy target creature. Its owner gains 4 life. -id=5684 -name=Path of Peace -rarity=C -type=Sorcery -mana={3}{W} -[/card] -[card] text=Flying Cycling {2} ({2}, Discard this card: Draw a card.) id=5575 name=Pendrell Drake @@ -1695,7 +1678,10 @@ text={T}: Add {1} to your mana pool. {2}{R}, {T}: Shivan Gorge deals 1 dam id=10482 name=Shivan Gorge rarity=R -type=Legendary Land +type=Land +abilities=Legendary +auto={T}:add {1} +auto={2}{R}{T}:damage:1 target(opponent) [/card] [card] text=First strike, haste Echo {2}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) @@ -1758,6 +1744,8 @@ toughness=3 [card] text=Slippery Karst comes into play tapped. {T}: Add {G} to your mana pool. Cycling {2} ({2}, Discard this card: Draw a card.) id=5803 +auto=tap +auto={T}:add {G} name=Slippery Karst rarity=C type=Land @@ -1913,17 +1901,6 @@ type=Artifact mana={1} [/card] [card] -text=Haste (This creature can attack and {T} as soon as it comes under your control.) -id=5759 -name=Thundering Giant -rarity=U -type=Creature -mana={3}{R}{R} -power=4 -subtype=Giant -toughness=3 -[/card] -[card] text=Each player shuffles his or her graveyard and hand into his or her library, then draws seven cards. You untap up to six lands. Remove Time Spiral from the game. id=10423 name=Time Spiral diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index 90d2d757d..79f7d52b8 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -10,6 +10,7 @@ #include "CardGui.h" #include "GameOptions.h" #include "Token.h" +#include "Counters.h" #include "WEvent.h" #include @@ -3249,6 +3250,27 @@ class AStasis:public ActivatedAbility{ //--------------Addon Abra------------------ + + +//Draft for counters +class ACounters: public MTGAbility{ + public: + int counter; + int power; + int toughness; + ACounters(int id, MTGCardInstance * _source, MTGCardInstance * _target, int _power, int _toughness):MTGAbility(id,_source,_target),power(_power),toughness(_toughness){ + _target->counters->addCounter(power, toughness); + } + virtual ostream& toString(ostream& out) const + { + out << "ACounters ::: counter : " << counter + << " ; power : " << power + << " ; toughness : " << toughness + << " ("; + return MTGAbility::toString(out) << ")"; + } +}; + //Basilik class ABasilik:public MTGAbility{ public: diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 0d388a8c8..59504a212 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -760,6 +760,40 @@ int AbilityFactory::magicText(int id, Spell * spell, MTGCardInstance * card){ } } + + //counter + found = s.find("counter("); + if (found != string::npos){ + if (dryMode) { + dryModeResult = BAKA_EFFECT_GOOD; + dryModeResultSet = 1; + break; + } + int end = s.find(")", found); + string spt = s.substr(9,end - 1); + int power, toughness; + if ( parsePowerToughness(spt,&power, &toughness)){ + if (dryMode){ + if (power >=0 && toughness >= 0 ) { + dryModeResult = BAKA_EFFECT_GOOD; + }else{ + dryModeResult = BAKA_EFFECT_BAD; + } + break; + } + if(tc){ + //TODO + + }else{ + game->addObserver(NEW ACounters(id,card,target,power,toughness)); + + } + result++; + continue; + } + } + + //Change Power/Toughness int power, toughness; if ( parsePowerToughness(s,&power, &toughness)){ @@ -1790,6 +1824,27 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){ break; } + +//-- addon Urza Saga--- + case 8818: //Goblin Offensive + { + int x = spell->cost->getConvertedCost() - 3; + ATokenCreator * tok = NEW ATokenCreator(id,card,NEW ManaCost(),"Goblin","creature Goblin",1,1,"Red",0); + for (int i=0; i < x; i++){ + tok->resolve(); + } + break; + } + + case 5684://Path of Peace + { + Player * p = card->target->controller(); + p->game->putInGraveyard(card->target); + p->life+= 4; + break; + } + + //-- addon 10E--- case 129523: //Demon's Horn { @@ -1860,7 +1915,7 @@ void AbilityFactory::addAbilities(int _id, Spell * spell){ } // --- addon Invasion--- - case 23195: //Artifact Mutation (works fine but display is strange if you bury a target from opponent) + case 23195: //Artifact Mutation { card->target->controller()->game->putInGraveyard(card->target); int x = card->target->getManaCost()->getConvertedCost();