From cbd0e36f9733c005bfc4a5c4b922a58eee9e0151 Mon Sep 17 00:00:00 2001 From: fwannmacher Date: Mon, 25 Jul 2016 17:55:38 -0300 Subject: [PATCH] - Fixed Issue #2100 --- .../sets/eldritchmoon/NephaliaAcademy.java | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/NephaliaAcademy.java b/Mage.Sets/src/mage/sets/eldritchmoon/NephaliaAcademy.java index 2e5b922462f..5e0698b150f 100644 --- a/Mage.Sets/src/mage/sets/eldritchmoon/NephaliaAcademy.java +++ b/Mage.Sets/src/mage/sets/eldritchmoon/NephaliaAcademy.java @@ -28,6 +28,7 @@ package mage.sets.eldritchmoon; import java.util.UUID; +import mage.MageObject; import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.ReplacementEffectImpl; @@ -44,6 +45,8 @@ import mage.constants.Zone; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; +import mage.game.permanent.PermanentCard; +import mage.game.stack.Spell; import mage.players.Player; /** @@ -118,11 +121,25 @@ class NephaliaAcademyEffect extends ReplacementEffectImpl { @Override public boolean replaceEvent(GameEvent event, Ability source, Game game) { if (event.getType().equals(GameEvent.EventType.DISCARD_CARD)) { - // only save card info + // only save card info if it's an opponent effect Card card = game.getCard(event.getTargetId()); if (card != null) { - cardId = card.getId(); - zoneChangeCounter = game.getState().getZoneChangeCounter(cardId); + boolean isAnOpponentEffect = false; + MageObject object = game.getObject(event.getSourceId()); + if (object instanceof PermanentCard) { + isAnOpponentEffect = game.getOpponents(source.getControllerId()).contains(((PermanentCard) object).getControllerId()); + } + else if (object instanceof Spell) { + isAnOpponentEffect = game.getOpponents(source.getControllerId()).contains(((Spell) object).getControllerId()); + } + else if (object instanceof Card) { + isAnOpponentEffect = game.getOpponents(source.getControllerId()).contains(((Card) object).getOwnerId()); + } + + if (isAnOpponentEffect) { + cardId = card.getId(); + zoneChangeCounter = game.getState().getZoneChangeCounter(cardId); + } } return false; } @@ -133,7 +150,7 @@ class NephaliaAcademyEffect extends ReplacementEffectImpl { cardId = null; zoneChangeCounter = 0; if (controller.chooseUse(outcome, "Put " + card.getIdName() + " on top of your library instead?", source, game)) { - + Cards cardsToLibrary = new CardsImpl(card); // reveal the card then put it on top of your library controller.revealCards(card.getName(), cardsToLibrary, game);