diff --git a/projects/mtg/bin/Res/sets/MRQ/_cards.dat b/projects/mtg/bin/Res/sets/MRQ/_cards.dat index 9cc31d9c8..6de8b88aa 100644 --- a/projects/mtg/bin/Res/sets/MRQ/_cards.dat +++ b/projects/mtg/bin/Res/sets/MRQ/_cards.dat @@ -759,7 +759,7 @@ text=Target noncreature artifact becomes an artifact creature with power and tou id=19573 name=Karn's Touch target=artifact[-creature] -auto=becomes(Creature,manacost/manacost) +auto=becomes(Creature,manacost/manacost) ueot rarity=R mana={U}{U} type=Instant diff --git a/projects/mtg/bin/Res/test/_tests.txt b/projects/mtg/bin/Res/test/_tests.txt index a0d92a825..bfe45b149 100644 --- a/projects/mtg/bin/Res/test/_tests.txt +++ b/projects/mtg/bin/Res/test/_tests.txt @@ -238,6 +238,7 @@ immaculate_magistrate.txt instill_energy_i166.txt jodahs_avenger.txt jump.txt +karns_touch_i233.txt keldon_warlord.txt keldon_warlord2.txt kird_ape.txt diff --git a/projects/mtg/bin/Res/test/bugs/karns_touch_i233.txt b/projects/mtg/bin/Res/test/karns_touch_i233.txt similarity index 83% rename from projects/mtg/bin/Res/test/bugs/karns_touch_i233.txt rename to projects/mtg/bin/Res/test/karns_touch_i233.txt index f6af7fd60..7c0b36aab 100644 --- a/projects/mtg/bin/Res/test/bugs/karns_touch_i233.txt +++ b/projects/mtg/bin/Res/test/karns_touch_i233.txt @@ -18,7 +18,7 @@ Jayemdae Tome [ASSERT] firstmain [PLAYER1] -graveyard:Karn's Touch,Swords to Plowshares,Jayemdae Tome +graveyard:Karn's Touch,Swords to Plowshares life:24 [PLAYER2] [END] diff --git a/projects/mtg/include/AllAbilities.h b/projects/mtg/include/AllAbilities.h index db03ab705..69015149d 100644 --- a/projects/mtg/include/AllAbilities.h +++ b/projects/mtg/include/AllAbilities.h @@ -2292,17 +2292,25 @@ public: class ABecomesUEOT: public InstantAbility{ public: ABecomes * ability; + vector clones; ABecomesUEOT(int id, MTGCardInstance * source, MTGCardInstance * target, string types, WParsedPT * wpt, string abilities):InstantAbility(id,source,target){ ability = NEW ABecomes(id,source,target,types,wpt,abilities); } int resolve(){ - ability->addToGame(); + ABecomes * a = ability->clone(); + a->target = this->target; + a->forceDestroy = -1; //Prevent the effect from getting destroyed because its source is not inplay + a->addToGame(); + clones.push_back(a); return 1; } int destroy(){ - ability->destroy(); + for (size_t i = 0; i < clones.size(); ++i){ + clones[i]->forceDestroy = 0; + } + clones.clear(); return 1; }