- fix a bug with Arcanis the omnipotent (see tests)
This commit is contained in:
wagic.the.homebrew@gmail.com
2009-07-05 11:38:12 +00:00
parent 59bc3123e2
commit 79d0a09de1
4 changed files with 62 additions and 14 deletions

View File

@@ -26,6 +26,8 @@ animate_dead.txt
animate_dead2.txt
animate_dead3.txt
ankh_of_mishra.txt
arcanis_the_omnipotent.txt
arcanis_the_omnipotent2.txt
ardakar_wastes.txt
ascendant_evincar.txt
ascendant_evincar2.txt

View File

@@ -0,0 +1,18 @@
#Bug: Arcanis the Omnipotent: draws 3 cards when comes into play, then can<61>ft use <20>gDraw<61>h ability
[INIT]
FIRSTMAIN
[PLAYER1]
hand:Arcanis the Omnipotent
library:swamp,plains,mountain
manapool:{3}{U}{U}{U}
[PLAYER2]
[DO]
Arcanis the Omnipotent
[ASSERT]
FIRSTMAIN
[PLAYER1]
inplay:Arcanis the Omnipotent
library:swamp,plains,mountain
manapool:{0}
[PLAYER2]
[END]

View File

@@ -0,0 +1,28 @@
#Bug: Arcanis the Omnipotent: draws 3 cards when comes into play, then can<61>ft use <20>gDraw<61>h ability
[INIT]
FIRSTMAIN
[PLAYER1]
hand:Arcanis the Omnipotent
library:swamp,plains,mountain,forest
manapool:{3}{U}{U}{U}
[PLAYER2]
[DO]
Arcanis the Omnipotent
eot
eot
#untap
next
#upkeep
next
#draw
next
#main
Arcanis the Omnipotent
[ASSERT]
FIRSTMAIN
[PLAYER1]
inplay:Arcanis the Omnipotent
hand:swamp,plains,mountain,forest
manapool:{0}
[PLAYER2]
[END]

View File

@@ -733,20 +733,20 @@ int AbilityFactory::magicText(int id, Spell * spell, MTGCardInstance * card){
int multiplier = countCards(lordTargets);
game->mLayers->stackLayer()->addDraw(card->controller(),multiplier);;
}else{
if (trigger){
DrawEvent * action = NEW DrawEvent(card->controller(),nbcards);
game->addObserver(NEW GenericTriggeredAbility(id, card,trigger,action));
}else{
if (tc){
//TODO ?
}else{
if (!cost){
game->mLayers->stackLayer()->addDraw(card->controller(),nbcards);
}else{
game->addObserver(NEW ADrawer(id,card,cost,nbcards,doTap));
}
}
}
if (trigger){
DrawEvent * action = NEW DrawEvent(card->controller(),nbcards);
game->addObserver(NEW GenericTriggeredAbility(id, card,trigger,action));
}else{
if (tc){
//TODO ?
}else{
if (cost || doTap){
game->addObserver(NEW ADrawer(id,card,cost,nbcards,doTap));
}else{
game->mLayers->stackLayer()->addDraw(card->controller(),nbcards);
}
}
}
}
result++;
continue;