From fb8f4c3c67075f9811af25ff62361c381a914fff Mon Sep 17 00:00:00 2001 From: magenoxx Date: Mon, 26 Mar 2012 09:20:30 +0400 Subject: [PATCH] Test for Exiled and fix. --- .../test/cards/triggers/OblivionRingTest.java | 21 +++++++++++++++++++ .../mage/game/permanent/PermanentCard.java | 1 + 2 files changed, 22 insertions(+) diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/OblivionRingTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/OblivionRingTest.java index 20c0eddfe13..5f3ed2d1d4a 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/OblivionRingTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/OblivionRingTest.java @@ -56,4 +56,25 @@ public class OblivionRingTest extends CardTestPlayerBase { assertPermanentCount(playerA, "Oblivion Ring", 0); assertPermanentCount(playerB, "Craw Wurm", 1); } + + @Test + public void testWithOblivionRingExile() { + addCard(Constants.Zone.BATTLEFIELD, playerA, "Plains", 3); + addCard(Constants.Zone.HAND, playerA, "Oblivion Ring"); + addCard(Constants.Zone.BATTLEFIELD, playerB, "Craw Wurm"); + + addCard(Constants.Zone.BATTLEFIELD, playerB, "Plains", 3); + addCard(Constants.Zone.HAND, playerB, "Revoke Existence"); + + castSpell(1, Constants.PhaseStep.PRECOMBAT_MAIN, playerA, "Oblivion Ring"); + castSpell(2, Constants.PhaseStep.PRECOMBAT_MAIN, playerB, "Revoke Existence", "Oblivion Ring"); + + setStopAt(2, Constants.PhaseStep.END_TURN); + execute(); + + assertLife(playerA, 20); + assertLife(playerB, 20); + assertPermanentCount(playerA, "Oblivion Ring", 0); + assertPermanentCount(playerB, "Craw Wurm", 1); + } } diff --git a/Mage/src/mage/game/permanent/PermanentCard.java b/Mage/src/mage/game/permanent/PermanentCard.java index 39a228fddac..8b07605187e 100644 --- a/Mage/src/mage/game/permanent/PermanentCard.java +++ b/Mage/src/mage/game/permanent/PermanentCard.java @@ -221,6 +221,7 @@ public class PermanentCard extends PermanentImpl { if (controller != null && controller.removeFromBattlefield(this, game)) { ZoneChangeEvent event = new ZoneChangeEvent(this, sourceId, ownerId, fromZone, Zone.EXILED); if (!game.replaceEvent(event)) { + game.rememberLKI(objectId, Zone.BATTLEFIELD, this); if (exileId == null) { game.getExile().getPermanentExile().add(card); } else {