From 7878252692d7052720652208bf4a96db2c370cd5 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Fri, 4 Sep 2015 23:45:16 +0800 Subject: [PATCH] support for Rest in Peace tokens are not cards... a little dirty... --- projects/mtg/bin/Res/sets/primitives/mtg.txt | 2 +- projects/mtg/src/MTGGameZones.cpp | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/projects/mtg/bin/Res/sets/primitives/mtg.txt b/projects/mtg/bin/Res/sets/primitives/mtg.txt index cf3f881e9..6ef4b64b7 100644 --- a/projects/mtg/bin/Res/sets/primitives/mtg.txt +++ b/projects/mtg/bin/Res/sets/primitives/mtg.txt @@ -98565,7 +98565,7 @@ type=Instant [/card] [card] name=Tidal Influence -restrction=one of a kind +restriction=one of a kind auto=counter(0/0,1,Tide) auto=@each my upkeep:all(tidal influence[counter{0/0.4.Tide}]) removeallcounters(0/0,1,Tide) auto=@each my upkeep:counter(0/0,1,Tide) diff --git a/projects/mtg/src/MTGGameZones.cpp b/projects/mtg/src/MTGGameZones.cpp index d4fd3139a..04dd8d629 100644 --- a/projects/mtg/src/MTGGameZones.cpp +++ b/projects/mtg/src/MTGGameZones.cpp @@ -322,6 +322,9 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone int doCopy = 1; bool shufflelibrary = card->basicAbilities[(int)Constants::SHUFFLELIBRARYDEATH]; + bool ripToken = false; + if (g->players[0]->game->battlefield->hasName("Rest in Peace")||g->players[1]->game->battlefield->hasName("Rest in Peace")) + ripToken = true; //Darksteel Colossus, Legacy Weapon ... top priority since we replace destination directly automatically... for(int i = 0; i < 2; ++i) { @@ -338,7 +341,12 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone 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; + { + if ((card->isToken && ripToken)) + to = g->players[i]->game->exile; + if (!card->isToken) + 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