diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index d8698d6e0..d2172cb6e 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -18343,8 +18343,9 @@ toughness=2 [/card] [card] name=Crypt Incursion -auto=@movedto(creature|exile) from(graveyard):life:3 -auto=choice target(player) moveTo(exile) all(creature|targetedpersonsgraveyard) +target=player +auto=@movedto(creature|exile) from(targetedPersonsGraveyard):life:3 +auto=moveTo(exile) all(creature|targetedPersonsGraveyard) text=Exile all creature cards from target player's graveyard. -- You gain 3 life for each card exiled this way. mana={2}{B} type=Instant diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index 029ddc5ef..06ff33f25 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -745,7 +745,8 @@ TriggeredAbility * AbilityFactory::parseTrigger(string s, string, int id, Spell fromTc = tcf.createTargetChooser(starget, card); fromTc->targetter = NULL; //avoid protection from } - TriggeredAbility * mover = NEW TrCardAddedToZone(observer, id, card, (TargetZoneChooser *) toTc, toTcCard, (TargetZoneChooser *) fromTc, fromTcCard,once,sourceUntapped,isSuspended); + TriggeredAbility * mover = NEW TrCardAddedToZone(observer, id, card, (TargetZoneChooser *) toTc, + toTcCard, (TargetZoneChooser *) fromTc, fromTcCard, once, sourceUntapped, isSuspended); if(neverRemove) { mover->forcedAlive = 1; diff --git a/projects/mtg/src/TargetChooser.cpp b/projects/mtg/src/TargetChooser.cpp index 7d7e75dce..ef8d205b6 100644 --- a/projects/mtg/src/TargetChooser.cpp +++ b/projects/mtg/src/TargetChooser.cpp @@ -151,6 +151,7 @@ TargetChooser * TargetChooserFactory::createTargetChooser(string s, MTGCardInsta } zones[nbzones] = MTGGameZone::MY_BATTLEFIELD; + // First, check if it defines multiple zones if (zoneName.compare("*") == 0) { zones[nbzones++] = MTGGameZone::ALL_ZONES; @@ -191,6 +192,11 @@ TargetChooser * TargetChooserFactory::createTargetChooser(string s, MTGCardInsta zones[nbzones++] = MTGGameZone::MY_STACK; zones[nbzones++] = MTGGameZone::OPPONENT_STACK; } + else if (zoneName.compare("exile") == 0) + { + zones[nbzones++] = MTGGameZone::MY_EXILE; + zones[nbzones++] = MTGGameZone::OPPONENT_EXILE; + } else { int zone = MTGGameZone::zoneStringToId(zoneName);