(loser.getCardsIn(ZoneType.Ante));
Deck cDeck = match.getPlayersDeck(loser.getLobbyPlayer());
+ Deck oDeck = match.getPlayersOriginalDeck(loser.getLobbyPlayer());
for (Card c : compAntes) {
CardPrinted toRemove = CardDb.instance().getCard(c);
cDeck.getMain().remove(toRemove);
+ if ( cDeck != oDeck )
+ oDeck.getMain().remove(toRemove);
}
}
diff --git a/src/main/java/forge/gui/match/QuestWinLose.java b/src/main/java/forge/gui/match/QuestWinLose.java
index d3bf19d9e63..3b44d079dfd 100644
--- a/src/main/java/forge/gui/match/QuestWinLose.java
+++ b/src/main/java/forge/gui/match/QuestWinLose.java
@@ -119,10 +119,6 @@ public class QuestWinLose extends ControlWinLose {
qData.getCards().resetNewList();
QuestController qc = Singletons.getModel().getQuest();
- if (match.isMatchOver()) {
- restoreQuestDeckEdits();
- }
-
LobbyPlayer questPlayer = Singletons.getControl().getLobby().getQuestPlayer();
if (isAnte) {
//do per-game actions
@@ -246,18 +242,6 @@ public class QuestWinLose extends ControlWinLose {
new QuestWinLoseCardViewer(antesWon), QuestWinLose.CONSTRAINTS_CARDS);
}
- /**
- *
- * restoreQuestDeckEdits
- *
- * Reverts the persistent sideboard changes in quest decks.
- */
- private void restoreQuestDeckEdits() {
- for (LobbyPlayer p : Singletons.getModel().getMatch().getPlayers().keySet()) {
- Singletons.getModel().getMatch().getPlayersDeck(p).clearDeckEdits();
- }
- }
-
/**
*
* actionOnQuit.
diff --git a/src/main/java/forge/item/ItemPool.java b/src/main/java/forge/item/ItemPool.java
index 3a90bf2e643..937fbdcea2d 100644
--- a/src/main/java/forge/item/ItemPool.java
+++ b/src/main/java/forge/item/ItemPool.java
@@ -187,8 +187,8 @@ public class ItemPool extends ItemPoolView {
* @param card
* a T
*/
- public void remove(final T card) {
- this.remove(card, 1);
+ public boolean remove(final T card) {
+ return this.remove(card, 1);
}
/**
@@ -200,10 +200,10 @@ public class ItemPool extends ItemPoolView {
* @param amount
* a int
*/
- public void remove(final T card, final int amount) {
+ public boolean remove(final T card, final int amount) {
final int count = this.count(card);
if ((count == 0) || (amount <= 0)) {
- return;
+ return false;
}
if (count <= amount) {
this.getCards().remove(card);
@@ -211,6 +211,7 @@ public class ItemPool extends ItemPoolView {
this.getCards().put(card, count - amount);
}
this.setListInSync(false);
+ return true;
}
/**
diff --git a/src/main/java/forge/quest/QuestUtilCards.java b/src/main/java/forge/quest/QuestUtilCards.java
index a87c9fbab4e..65b78433c5c 100644
--- a/src/main/java/forge/quest/QuestUtilCards.java
+++ b/src/main/java/forge/quest/QuestUtilCards.java
@@ -336,7 +336,6 @@ public final class QuestUtilCards {
final int leftInPool = this.qa.getCardPool().count(card);
// remove sold cards from all decks:
for (final Deck deck : this.qc.getMyDecks()) {
- deck.clearDeckEdits();
deck.getMain().remove(card, deck.getMain().count(card) - leftInPool);
}
}
diff --git a/src/main/java/forge/quest/io/QuestDataIO.java b/src/main/java/forge/quest/io/QuestDataIO.java
index dfb5315b680..c3facf0fffc 100644
--- a/src/main/java/forge/quest/io/QuestDataIO.java
+++ b/src/main/java/forge/quest/io/QuestDataIO.java
@@ -57,7 +57,6 @@ import forge.Singletons;
import forge.card.CardEdition;
import forge.deck.DeckSection;
import forge.error.ErrorViewer;
-import forge.game.GameType;
import forge.quest.data.GameFormatQuest;
import forge.item.BoosterPack;
import forge.item.CardDb;
@@ -99,7 +98,6 @@ public class QuestDataIO {
final XStream xStream = isIgnoring ? new IgnoringXStream() : new XStream();
xStream.registerConverter(new ItemPoolToXml());
xStream.registerConverter(new DeckSectionToXml());
- xStream.registerConverter(new GameTypeToXml());
xStream.registerConverter(new GameFormatQuestToXml());
xStream.registerConverter(new QuestModeToXml());
xStream.autodetectAnnotations(true);
@@ -447,25 +445,6 @@ public class QuestDataIO {
}
}
- private static class GameTypeToXml implements Converter {
- @SuppressWarnings("rawtypes")
- @Override
- public boolean canConvert(final Class clasz) {
- return clasz.equals(GameType.class);
- }
-
- @Override
- public void marshal(final Object source, final HierarchicalStreamWriter writer, final MarshallingContext context) {
- // not used
- }
-
- @Override
- public Object unmarshal(final HierarchicalStreamReader reader, final UnmarshallingContext context) {
- final String value = reader.getValue();
- return GameType.smartValueOf(value, GameType.Quest);
- }
- }
-
private static class QuestModeToXml implements Converter {
@SuppressWarnings("rawtypes")
@Override
diff --git a/src/main/java/forge/util/FileSection.java b/src/main/java/forge/util/FileSection.java
index 6cbb800a810..9da9d84d6b3 100644
--- a/src/main/java/forge/util/FileSection.java
+++ b/src/main/java/forge/util/FileSection.java
@@ -156,7 +156,7 @@ public class FileSection {
*/
@SuppressWarnings("unchecked")
public static Map> parseSections(final List source) {
- final Map> result = new HashMap>();
+ final Map> result = new TreeMap>(String.CASE_INSENSITIVE_ORDER);
String currentSection = "";
List currentList = null;