diff --git a/projects/mtg/bin/Res/sets/EVE/todo.dat b/projects/mtg/bin/Res/sets/EVE/todo.dat index 0936668f3..17fb2b7da 100644 --- a/projects/mtg/bin/Res/sets/EVE/todo.dat +++ b/projects/mtg/bin/Res/sets/EVE/todo.dat @@ -521,7 +521,7 @@ mana={1}{U} [/card] [card] text=Flying {U}, Sacrifice Glen Elendra Archmage: Counter target noncreature spell. Persist (When this creature is put into a graveyard from play, if it had no -1/-1 counters on it, return it to play under its owner's control with a -1/-1 counter on it.) -abilities=flying +abilities=flying,persist id=157977 auto={U}{S}:fizzle(*[-creature]|stack) name=Glen Elendra Archmage diff --git a/projects/mtg/bin/Res/sets/MIR/_cards.dat b/projects/mtg/bin/Res/sets/MIR/_cards.dat index 86065cab4..e916cece5 100644 --- a/projects/mtg/bin/Res/sets/MIR/_cards.dat +++ b/projects/mtg/bin/Res/sets/MIR/_cards.dat @@ -134,12 +134,12 @@ rarity=C [/card] [card] text=Add {B}{B}{B} to your mana pool. -id=3285 +auto=Add{B}{B}{B} +id=3285 name=Dark Ritual -alias=1149 -type=Mana Source -mana={B} rarity=C +type=Instant +mana={B} [/card] [card] text=Swampwalk {B}: Dirtwater Wraith gets +1/+0 until end of turn. diff --git a/projects/mtg/bin/Res/sets/RAV/todo.dat b/projects/mtg/bin/Res/sets/RAV/todo.dat index 3f270229a..7a6072e8b 100644 --- a/projects/mtg/bin/Res/sets/RAV/todo.dat +++ b/projects/mtg/bin/Res/sets/RAV/todo.dat @@ -881,6 +881,7 @@ rarity=U type=Enchantment mana={1}{U}{U} [/card] +#Hammerfist giant requires a serious update of the targetChooser code before it can work. [card] text={T}: Hammerfist Giant deals 4 damage to each creature without flying and each player. id=83712 diff --git a/projects/mtg/bin/Res/sets/USG/_cards.dat b/projects/mtg/bin/Res/sets/USG/_cards.dat index bb4e3da12..148913857 100644 --- a/projects/mtg/bin/Res/sets/USG/_cards.dat +++ b/projects/mtg/bin/Res/sets/USG/_cards.dat @@ -146,7 +146,7 @@ id=5597 name=Bog Raiders color=Black rarity=C -mana={3}{B} +mana={2}{B} type=Creature subtype=Zombie power=3 diff --git a/projects/mtg/bin/Res/test/_tests.txt b/projects/mtg/bin/Res/test/_tests.txt index 4cf9f6fac..c75619a70 100644 --- a/projects/mtg/bin/Res/test/_tests.txt +++ b/projects/mtg/bin/Res/test/_tests.txt @@ -30,7 +30,9 @@ ascendant_evincar.txt ascendant_evincar2.txt ascendant_evincar3.txt ashen_firebeast.txt +ashen_firebeast2.txt blessed_wine.txt +bloodfire_colossus.txt bottle_gnomes.txt boggart_arsonists.txt brass_man.txt @@ -68,6 +70,7 @@ goblin_balloon_brigade.txt goblin_balloon_brigade2.txt goblin_king.txt gravedigger.txt +#hammerfist_giant.txt hannas_custody.txt hymn_of_rebirth.txt icatian_priest.txt @@ -81,6 +84,7 @@ lifeforce.txt living_lands.txt lord_of_the_pit.txt lord_of_the_pit2.txt +master_of_etherium.txt nantuko_husk.txt Nevinyrrals_Disk.txt Nevinyrrals_Disk2.txt @@ -123,4 +127,4 @@ zombify.txt #Momir Basic Tests ######################## momir/keldon_warlord.txt -momir/overcost.txt +momir/overcost.txt \ No newline at end of file diff --git a/projects/mtg/bin/Res/test/ashen_firebeast2.txt b/projects/mtg/bin/Res/test/ashen_firebeast2.txt new file mode 100644 index 000000000..094e0b306 --- /dev/null +++ b/projects/mtg/bin/Res/test/ashen_firebeast2.txt @@ -0,0 +1,18 @@ +#Bug:Ashen firebeast crashes the game if used more than once +[INIT] +FIRSTMAIN +[PLAYER1] +inplay:air elemental,grizzly bears,ashen firebeast +manapool:{2}{R}{R} +[PLAYER2] +[DO] +ashen firebeast +ashen firebeast +[ASSERT] +FIRSTMAIN +[PLAYER1] +graveyard:grizzly bears +inplay:air elemental,ashen firebeast +manapool:{0} +[PLAYER2] +[END] \ No newline at end of file diff --git a/projects/mtg/bin/Res/test/bloodfire_colossus.txt b/projects/mtg/bin/Res/test/bloodfire_colossus.txt new file mode 100644 index 000000000..159f749a7 --- /dev/null +++ b/projects/mtg/bin/Res/test/bloodfire_colossus.txt @@ -0,0 +1,18 @@ +#Bug: Bloodfire colossus doesn't damage players +[INIT] +FIRSTMAIN +[PLAYER1] +inplay:air elemental,grizzly bears,bloodfire colossus +manapool:{R} +[PLAYER2] +[DO] +bloodfire colossus +[ASSERT] +FIRSTMAIN +[PLAYER1] +graveyard:bloodfire colossus,air elemental,grizzly bears +manapool:{0} +life:14 +[PLAYER2] +life:14 +[END] \ No newline at end of file diff --git a/projects/mtg/bin/Res/test/hammerfist_giant.txt b/projects/mtg/bin/Res/test/hammerfist_giant.txt new file mode 100644 index 000000000..a8bbfedeb --- /dev/null +++ b/projects/mtg/bin/Res/test/hammerfist_giant.txt @@ -0,0 +1,35 @@ +#Bug: Hammerfist_giant does damage when it comes into play +[INIT] +FIRSTMAIN +[PLAYER1] +hand:Hammerfist giant +inplay:air elemental,grizzly bears +manapool:{4}{R}{R} +[PLAYER2] +[DO] +hammerfist giant +next +#combat begin +next +#attackers +air elemental +grizzly bears +next +#blockers +next +#damage +next +#combat end +next +#main phase 2 +hammerfist giant +[ASSERT] +SECONDMAIN +[PLAYER1] +inplay:air elemental,hammerfist giant +graveyard:grizzly bears +manapool:{0} +life:16 +[PLAYER2] +life:10 +[END] \ No newline at end of file diff --git a/projects/mtg/bin/Res/test/master_of_etherium.txt b/projects/mtg/bin/Res/test/master_of_etherium.txt new file mode 100644 index 000000000..8db92e735 --- /dev/null +++ b/projects/mtg/bin/Res/test/master_of_etherium.txt @@ -0,0 +1,22 @@ +#Bug: Master of Etherium gets wrong bonuses +[INIT] +COMBATATTACKERS +[PLAYER1] +inplay:Master of Etherium,Black Vise,The Rack +[PLAYER2] +[DO] +Master of Etherium +next +#bloquers +next +#damage +next +#end +[ASSERT] +COMBATEND +[PLAYER1] +inplay:Master of Etherium,Black Vise,The Rack +manapool:{0} +[PLAYER2] +life:17 +[END] \ No newline at end of file diff --git a/projects/mtg/bin/Res/test/tranquil_domain.txt b/projects/mtg/bin/Res/test/tranquil_domain.txt index 26b1373a6..5c455a5f0 100644 --- a/projects/mtg/bin/Res/test/tranquil_domain.txt +++ b/projects/mtg/bin/Res/test/tranquil_domain.txt @@ -2,13 +2,13 @@ [INIT] FIRSTMAIN [PLAYER1] -hand:3414,3425, +hand:3414,135267 inplay:1250,3566,143024 -manapool:{2}{R} +manapool:{3}{G} [PLAYER2] [DO] #play aura on grizzly -3425 +135267 1250 #play tranquil domain 3566 @@ -17,7 +17,7 @@ manapool:{2}{R} FIRSTMAIN [PLAYER1] graveyard:3414,143024 -inplay:1250,3566,3425 +inplay:1250,3566,135267 manapool:{0} [PLAYER2] [END] \ No newline at end of file diff --git a/projects/mtg/src/GameStateDuel.cpp b/projects/mtg/src/GameStateDuel.cpp index bd6d727a7..dad85bb27 100644 --- a/projects/mtg/src/GameStateDuel.cpp +++ b/projects/mtg/src/GameStateDuel.cpp @@ -288,6 +288,7 @@ void GameStateDuel::Update(float dt) difficulty = "(easy)"; } sprintf(deckDesc, "%s %s",mtgd->meta_name.c_str(), _(difficulty).c_str()); + deckDesc[16] = 0; opponentMenu->Add(nbAIDecks,deckDesc,mtgd->meta_desc); delete mtgd; } diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 7b14adc02..04418e4c8 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -32,6 +32,7 @@ int AbilityFactory::countCards(TargetChooser * tc, Player * player, int option){ } int AbilityFactory::destroyAllInPlay(TargetChooser * tc, int bury){ + MTGCardInstance * source = tc->source; tc->source = NULL; // This is to prevent protection from... as objects that destroy all do not actually target GameObserver * game = GameObserver::GetInstance(); for (int i = 0; i < 2 ; i++){ @@ -46,6 +47,7 @@ int AbilityFactory::destroyAllInPlay(TargetChooser * tc, int bury){ } } } + tc->source = source; //restore source return 1; } @@ -54,6 +56,7 @@ int AbilityFactory::damageAll(TargetChooser * tc, int damage){ tc->source = NULL; // This is to prevent protection from... as objects that destroy all do not actually target GameObserver * g = GameObserver::GetInstance(); for (int i = 0; i < 2 ; i++){ + if (tc->canTarget(g->players[i])) g->mLayers->stackLayer()->addDamage(source,g->players[i], damage); for (int j = g->players[i]->game->inPlay->nb_cards-1; j >=0 ; j--){ MTGCardInstance * current = g->players[i]->game->inPlay->cards[j]; if (tc->canTarget(current)){ @@ -61,6 +64,7 @@ int AbilityFactory::damageAll(TargetChooser * tc, int damage){ } } } + tc->source = source; //restore source return 1; } @@ -78,6 +82,7 @@ int AbilityFactory::moveAll(TargetChooser * tc, string destinationZone){ } } } + tc->source = source; //restore source return 1; } diff --git a/projects/mtg/src/ShopItem.cpp b/projects/mtg/src/ShopItem.cpp index efb8403f0..323011e48 100644 --- a/projects/mtg/src/ShopItem.cpp +++ b/projects/mtg/src/ShopItem.cpp @@ -60,7 +60,7 @@ void ShopItem::Render(){ thumb = card->getThumb(); if (nameCount){ char buffer[512]; - sprintf(buffer, "%s /%i/", card->name.c_str(), nameCount ); + sprintf(buffer, "%s (%i)", card->name.c_str(), nameCount ); mText = buffer; }else{ mText = card->name;