From d3aef40bb364bb61254678a8e9f3c5a19019368d Mon Sep 17 00:00:00 2001 From: swordshine Date: Mon, 8 Jul 2013 01:05:11 +0000 Subject: [PATCH] - Fixed a bug when searching a card in the library and put it on the top --- src/main/java/forge/game/GameAction.java | 32 ++++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/main/java/forge/game/GameAction.java b/src/main/java/forge/game/GameAction.java index 0595074a4de..bd7ae284dc5 100644 --- a/src/main/java/forge/game/GameAction.java +++ b/src/main/java/forge/game/GameAction.java @@ -647,22 +647,8 @@ public class GameAction { c.setState(CardCharacteristicName.Original); } - if ((libPosition == -1) || (libPosition > library.size())) { - libPosition = library.size(); - } - - Card lastKnownInfo = c; - if (p != null && p.is(ZoneType.Battlefield)) { - lastKnownInfo = CardUtil.getLKICopy(c); - c.clearCounters(); // remove all counters - if (!c.isToken()) { - library.add(CardFactory.copyCard(c), libPosition); - } - } else { - c.clearCounters(); // remove all counters - library.add(c, libPosition); - } - + Card lastKnownInfo = p != null && p.is(ZoneType.Battlefield) ? CardUtil.getLKICopy(c) : c; + // Remove first to avoid bugs when searching a card in library and put it on the top if (p != null) { if (p.is(ZoneType.Battlefield) && c.isCreature() && game.getCombat() != null) { game.getCombat().saveLKI(lastKnownInfo); @@ -670,6 +656,20 @@ public class GameAction { } p.remove(c); } + c.clearCounters(); // remove all counters + + if ((libPosition == -1) || (libPosition > library.size())) { + libPosition = library.size(); + } + + if (p != null && p.is(ZoneType.Battlefield)) { + if (!c.isToken()) { + library.add(CardFactory.copyCard(c), libPosition); + } + } else { + library.add(c, libPosition); + } + final HashMap runParams = new HashMap(); runParams.put("Card", lastKnownInfo);