diff --git a/projects/mtg/src/GameObserver.cpp b/projects/mtg/src/GameObserver.cpp index 7c404d0bf..cf3bdb3ae 100644 --- a/projects/mtg/src/GameObserver.cpp +++ b/projects/mtg/src/GameObserver.cpp @@ -1098,11 +1098,18 @@ int GameObserver::targetListIsSet(MTGCardInstance * card) { TargetChooserFactory tcf; targetChooser = tcf.createTargetChooser(card); - cardWaitingForTargets = card; if (targetChooser == NULL) { return 1; } } - return (targetChooser->targetListSet()); + if(targetChooser && targetChooser->validTargetsExist()) + { + cardWaitingForTargets = card; + return (targetChooser->targetListSet()); + } + else + targetChooser = NULL; + return 0; + } diff --git a/projects/mtg/src/TargetChooser.cpp b/projects/mtg/src/TargetChooser.cpp index f2a688b2d..18dd2a62d 100644 --- a/projects/mtg/src/TargetChooser.cpp +++ b/projects/mtg/src/TargetChooser.cpp @@ -789,8 +789,8 @@ bool TargetChooser::validTargetsExist(int maxTargets) int maxAmount = 0; Player *p = GameObserver::GetInstance()->players[i]; if (canTarget(p)) return true; - MTGGameZone * zones[] = { p->game->inPlay, p->game->graveyard, p->game->hand, p->game->library, p->game->exile }; - for (int k = 0; k < 5; k++) + MTGGameZone * zones[] = { p->game->inPlay, p->game->graveyard, p->game->hand, p->game->library, p->game->exile, p->game->stack }; + for (int k = 0; k < 6; k++) { MTGGameZone * z = zones[k]; if (targetsZone(z))