From c733b3e2d90e6b997900221a44b43ddb32e15c87 Mon Sep 17 00:00:00 2001 From: myk Date: Mon, 4 Mar 2013 10:15:19 +0000 Subject: [PATCH] remove cards from deck sideboards properly when selling in spell shop --- src/main/java/forge/quest/QuestUtilCards.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/forge/quest/QuestUtilCards.java b/src/main/java/forge/quest/QuestUtilCards.java index c75e9392a5e..bc7c4ec744b 100644 --- a/src/main/java/forge/quest/QuestUtilCards.java +++ b/src/main/java/forge/quest/QuestUtilCards.java @@ -350,11 +350,13 @@ public final class QuestUtilCards { int nToRemoveFromThisDeck = cntInMain + cntInSb - leftInPool; if ( nToRemoveFromThisDeck <= 0 ) continue; // this is not the deck you are looking for - int nToRemoveFromSb = cntInSb - nToRemoveFromThisDeck; - if( nToRemoveFromSb > 0 ) { + int nToRemoveFromSb = Math.min(cntInSb, nToRemoveFromThisDeck); + if (nToRemoveFromSb > 0) { deck.get(DeckSection.Sideboard).remove(card, nToRemoveFromSb); - nToRemoveFromThisDeck -= cntInSb; // actual removed count should be, but I take upper bound here - if ( nToRemoveFromThisDeck <= 0 ) continue; // done here + nToRemoveFromThisDeck -= nToRemoveFromSb; + if (0 >= nToRemoveFromThisDeck) { + continue; // done here + } } deck.getMain().remove(card, nToRemoveFromThisDeck);