From 3c31e29a4886ba90e6be99d9d73f7d12964507d5 Mon Sep 17 00:00:00 2001 From: Sloth Date: Sun, 18 Aug 2013 10:45:20 +0000 Subject: [PATCH] - Tokens leaving the battlefield will now also create LKI copies. --- src/main/java/forge/CardUtil.java | 3 -- src/main/java/forge/game/GameAction.java | 43 +++++++++++++----------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/main/java/forge/CardUtil.java b/src/main/java/forge/CardUtil.java index a30d77706ff..08bbb14628a 100644 --- a/src/main/java/forge/CardUtil.java +++ b/src/main/java/forge/CardUtil.java @@ -111,9 +111,6 @@ public final class CardUtil { * @return a copy of C with LastKnownInfo stuff retained. */ public static Card getLKICopy(final Card in) { - if (in.isToken()) { - return in; - } final Card newCopy = new Card(in.getUniqueNumber()); newCopy.setCurSetCode(in.getCurSetCode()); diff --git a/src/main/java/forge/game/GameAction.java b/src/main/java/forge/game/GameAction.java index de59b677e66..2d8ffcadf91 100644 --- a/src/main/java/forge/game/GameAction.java +++ b/src/main/java/forge/game/GameAction.java @@ -155,31 +155,36 @@ public class GameAction { } // Don't copy Tokens, copy only cards leaving the battlefield - if (c.isToken() || suppress || toBattlefield || !fromBattlefield) { + if (suppress || !fromBattlefield) { lastKnownInfo = c; copied = c; } else { lastKnownInfo = CardUtil.getLKICopy(c); - if (c.isCloned()) { - c.switchStates(CardCharacteristicName.Cloner, CardCharacteristicName.Original); - c.setState(CardCharacteristicName.Original); - c.clearStates(CardCharacteristicName.Cloner); - if (c.isFlipCard()) { - c.clearStates(CardCharacteristicName.Flipped); + if (!c.isToken()) { + if (c.isCloned()) { + c.switchStates(CardCharacteristicName.Cloner, CardCharacteristicName.Original); + c.setState(CardCharacteristicName.Original); + c.clearStates(CardCharacteristicName.Cloner); + if (c.isFlipCard()) { + c.clearStates(CardCharacteristicName.Flipped); + } } - } - copied = CardFactory.copyCard(c, false); - copied.setUnearthed(c.isUnearthed()); - copied.setTapped(false); - for (final Trigger trigger : copied.getTriggers()) { - trigger.setHostCard(copied); - } - for (final TriggerReplacementBase repl : copied.getReplacementEffects()) { - repl.setHostCard(copied); - } - if (c.getName().equals("Skullbriar, the Walking Grave")) { - copied.setCounters(c.getCounters()); + + copied = CardFactory.copyCard(c, false); + copied.setUnearthed(c.isUnearthed()); + copied.setTapped(false); + for (final Trigger trigger : copied.getTriggers()) { + trigger.setHostCard(copied); + } + for (final TriggerReplacementBase repl : copied.getReplacementEffects()) { + repl.setHostCard(copied); + } + if (c.getName().equals("Skullbriar, the Walking Grave")) { + copied.setCounters(c.getCounters()); + } + } else { //Token + copied = c; } }