diff --git a/src/forge/GameAction.java b/src/forge/GameAction.java index 78588cfeb42..e3eeb712b72 100644 --- a/src/forge/GameAction.java +++ b/src/forge/GameAction.java @@ -32,6 +32,13 @@ public class GameAction { //Card lastKnownInfo = getLastKnownInformation(c); Card lastKnownInfo = c; + if(c.hasKeyword("If CARDNAME would leave the battlefield, exile it instead of putting it anywhere else.") && + !zone.is(Constant.Zone.Exile)) { + PlayerZone removed = AllZone.getZone(Constant.Zone.Exile, c.getOwner()); + c.removeExtrinsicKeyword("If CARDNAME would leave the battlefield, exile it instead of putting it anywhere else."); + return moveTo(removed, c); + } + if(prev != null){ if (prev.is(Constant.Zone.Battlefield) && c.isCreature()) AllZone.Combat.removeFromCombat(c); @@ -263,6 +270,12 @@ public class GameAction { PlayerZone p = AllZone.getZone(c); PlayerZone library = AllZone.getZone(Constant.Zone.Library, c.getOwner()); + if(c.hasKeyword("If CARDNAME would leave the battlefield, exile it instead of putting it anywhere else.")) { + PlayerZone removed = AllZone.getZone(Constant.Zone.Exile, c.getOwner()); + c.removeExtrinsicKeyword("If CARDNAME would leave the battlefield, exile it instead of putting it anywhere else."); + return moveTo(removed, c); + } + if(p != null) p.remove(c);