diff --git a/projects/mtg/include/MTGDefinitions.h b/projects/mtg/include/MTGDefinitions.h index 1240c25ca..a87e49ef5 100644 --- a/projects/mtg/include/MTGDefinitions.h +++ b/projects/mtg/include/MTGDefinitions.h @@ -220,7 +220,9 @@ class Constants NOLEGEND = 102, CANPLAYFROMGRAVEYARD = 103, TOKENIZER = 104, - NB_BASIC_ABILITIES = 105, + MYGRAVEEXILER = 105, + OPPGRAVEEXILER = 106, + NB_BASIC_ABILITIES = 107, RARITY_S = 'S', //Special Rarity diff --git a/projects/mtg/src/MTGDefinitions.cpp b/projects/mtg/src/MTGDefinitions.cpp index 952f0be75..82ea0ca46 100644 --- a/projects/mtg/src/MTGDefinitions.cpp +++ b/projects/mtg/src/MTGDefinitions.cpp @@ -133,7 +133,9 @@ const char* Constants::MTGBasicAbilities[] = { "lure", "nolegend", "canplayfromgraveyard", - "tokenizer"//parallel lives + "tokenizer",//parallel lives, + "mygraveexiler", + "oppgraveexiler" }; map Constants::MTGBasicAbilitiesMap; diff --git a/projects/mtg/src/MTGGameZones.cpp b/projects/mtg/src/MTGGameZones.cpp index 39fcc1afd..052d4ec51 100644 --- a/projects/mtg/src/MTGGameZones.cpp +++ b/projects/mtg/src/MTGGameZones.cpp @@ -321,6 +321,14 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone return card; //Error check int doCopy = 1; + //Leyline of the Void, Yawgmoth's Agenda... effect... + for(int i = 0; i < 2; ++i) + { + if ((to == g->players[i]->game->graveyard) && ( + g->players[i]->game->battlefield->hasAbility(Constants::MYGRAVEEXILER) || + g->players[i]->opponent()->game->battlefield->hasAbility(Constants::OPPGRAVEEXILER))) + to = g->players[i]->game->exile; + } //When a card is moved from inPlay to inPlay (controller change, for example), it is still the same object if ((to == g->players[0]->game->inPlay || to == g->players[1]->game->inPlay) && (from == g->players[0]->game->inPlay || from == g->players[1]->game->inPlay))