From 281e5f12c062857b362f3d352dfb39aefe1d71dc Mon Sep 17 00:00:00 2001 From: Agetian Date: Sat, 17 Dec 2016 20:12:08 +0000 Subject: [PATCH] - Hopefully a better solution for the LKI problem: add a special flag to show that the card is a temporary copy and should not be considered as being in play --- forge-game/src/main/java/forge/game/card/Card.java | 12 +++++++++++- .../src/main/java/forge/game/card/CardUtil.java | 3 +-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 798690fe5ee..aa7f3b098f8 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -238,6 +238,8 @@ public class Card extends GameEntity implements Comparable { private CardRules cardRules; private final CardView view; + private boolean isTemporaryCopy = false; + // Enumeration for CMC request types public enum SplitCMCMode { CurrentSideCMC, @@ -6704,7 +6706,7 @@ public class Card extends GameEntity implements Comparable { } public boolean isInPlay() { - return isInZone(ZoneType.Battlefield); + return isInZone(ZoneType.Battlefield) && !isTemporaryCopy; } public void onCleanupPhase(final Player turn) { @@ -7097,4 +7099,12 @@ public class Card extends GameEntity implements Comparable { public final Collection getGoaded() { return goad.values(); } + + public final boolean getIsTemporaryCopy() { + return this.isTemporaryCopy; + } + + public final void setIsTemporaryCopy(boolean temp) { + this.isTemporaryCopy = temp; + } } diff --git a/forge-game/src/main/java/forge/game/card/CardUtil.java b/forge-game/src/main/java/forge/game/card/CardUtil.java index 2bf99c5f8e9..ae04e7167ce 100644 --- a/forge-game/src/main/java/forge/game/card/CardUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardUtil.java @@ -323,8 +323,7 @@ public final class CardUtil { newCopy.setZone(in.getZone()); - // copy the timestamp, necessary for the purpose of triggers that test the timestamp of a LKI-copied card. - newCopy.setTimestamp(in.getTimestamp()); + newCopy.setIsTemporaryCopy(true); // signals that this card should not be considered to be in play return newCopy; }