diff --git a/.gitattributes b/.gitattributes index 0c5754c0663..1cd08860f19 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11026,6 +11026,7 @@ src/main/java/forge/deck/DeckGeneration.java -text src/main/java/forge/deck/DeckIO.java -text src/main/java/forge/deck/DeckManager.java svneol=native#text/plain src/main/java/forge/deck/DeckRecognizer.java -text +src/main/java/forge/deck/DeckSection.java -text src/main/java/forge/deck/generate/Generate2ColorDeck.java svneol=native#text/plain src/main/java/forge/deck/generate/Generate3ColorDeck.java svneol=native#text/plain src/main/java/forge/deck/generate/Generate5ColorDeck.java svneol=native#text/plain diff --git a/src/main/java/forge/control/home/ControlConstructed.java b/src/main/java/forge/control/home/ControlConstructed.java index 83c65212b30..f2aec532cfe 100644 --- a/src/main/java/forge/control/home/ControlConstructed.java +++ b/src/main/java/forge/control/home/ControlConstructed.java @@ -395,9 +395,8 @@ public class ControlConstructed { // After generating card lists, convert to deck and save. final Deck deck = new Deck(GameType.Constructed); - for (int i = 0; i < cards.size(); i++) { - deck.addMain(cards.get(i).getName()); - } + deck.getMain().add(cards); + Constant.Runtime.HUMAN_DECK[0] = deck; } @@ -409,10 +408,7 @@ public class ControlConstructed { // After generating card lists, convert to deck and save. final Deck deck = new Deck(GameType.Constructed); - - for (int i = 0; i < cards.size(); i++) { - deck.addMain(cards.get(i).getName()); - } + deck.getMain().add(cards); Constant.Runtime.HUMAN_DECK[0] = deck; } @@ -451,10 +447,7 @@ public class ControlConstructed { // After generating card lists, convert to deck and save. final Deck deck = new Deck(GameType.Constructed); - - for (int i = 0; i < cards.size(); i++) { - deck.addMain(cards.get(i).getName()); - } + deck.getMain().add(cards); Constant.Runtime.COMPUTER_DECK[0] = deck; } @@ -462,14 +455,10 @@ public class ControlConstructed { // AI: theme deck generation else if (currentAISelection.getName().equals("lstThemesAI")) { GenerateThemeDeck gen = new GenerateThemeDeck(); - cards = gen.getThemeDeck(ai0[0], 60); // After generating card lists, convert to deck and save. final Deck deck = new Deck(GameType.Constructed); - - for (int i = 0; i < cards.size(); i++) { - deck.addMain(cards.get(i).getName()); - } + deck.getMain().add(gen.getThemeDeck(ai0[0], 60)); Constant.Runtime.COMPUTER_DECK[0] = deck; } diff --git a/src/main/java/forge/control/home/ControlSealed.java b/src/main/java/forge/control/home/ControlSealed.java index db1d3d61cee..6b72198a618 100644 --- a/src/main/java/forge/control/home/ControlSealed.java +++ b/src/main/java/forge/control/home/ControlSealed.java @@ -184,11 +184,11 @@ public class ControlSealed { final ItemPool sDeck = sd.getCardpool(); - deck.addSideboard(sDeck); + deck.getSideboard().addAll(sDeck); for (final String element : Constant.Color.BASIC_LANDS) { for (int j = 0; j < 18; j++) { - deck.addSideboard(element + "|" + sd.getLandSetCode()[0]); + deck.getSideboard().add(element, sd.getLandSetCode()[0]); } } diff --git a/src/main/java/forge/control/match/ControlDock.java b/src/main/java/forge/control/match/ControlDock.java index 80974c55038..8d54ef60078 100644 --- a/src/main/java/forge/control/match/ControlDock.java +++ b/src/main/java/forge/control/match/ControlDock.java @@ -102,9 +102,9 @@ public class ControlDock { public void actionPerformed(final ActionEvent e) { Deck targetDeck; - if (Constant.Runtime.HUMAN_DECK[0].countMain() > 1) { + if (!Constant.Runtime.HUMAN_DECK[0].getMain().isEmpty()) { targetDeck = Constant.Runtime.HUMAN_DECK[0]; - } else if (Constant.Runtime.COMPUTER_DECK[0].countMain() > 1) { + } else if (!Constant.Runtime.COMPUTER_DECK[0].getMain().isEmpty()) { targetDeck = Constant.Runtime.COMPUTER_DECK[0]; } else { return; diff --git a/src/main/java/forge/control/match/ControlWinLose.java b/src/main/java/forge/control/match/ControlWinLose.java index ce2e420c3bf..6c6f988f26b 100644 --- a/src/main/java/forge/control/match/ControlWinLose.java +++ b/src/main/java/forge/control/match/ControlWinLose.java @@ -98,7 +98,7 @@ public class ControlWinLose { //remove compy's ante cards form his deck for (Card c : compAntes) { CardPrinted toRemove = CardDb.instance().getCard(c); - cDeck.removeMain(toRemove, 1); + cDeck.getMain().remove(toRemove); } Constant.Runtime.COMPUTER_DECK[0] = cDeck; @@ -106,8 +106,7 @@ public class ControlWinLose { List o = GuiUtils.getChoicesOptional("Select cards to add to your deck", compAntes.toArray()); if (null != o) { for (Card c : o) { - CardPrinted toAdd = CardDb.instance().getCard(c); - hDeck.addMain(toAdd, 1); + hDeck.getMain().add(c); } } @@ -117,7 +116,7 @@ public class ControlWinLose { //remove compy's ante cards form his deck for (Card c : humanAntes) { CardPrinted toRemove = CardDb.instance().getCard(c); - hDeck.removeMain(toRemove, 1); + hDeck.getMain().remove(toRemove); } Constant.Runtime.HUMAN_DECK[0] = hDeck; } diff --git a/src/main/java/forge/deck/Deck.java b/src/main/java/forge/deck/Deck.java index 0051a33111e..347d700eadb 100644 --- a/src/main/java/forge/deck/Deck.java +++ b/src/main/java/forge/deck/Deck.java @@ -21,10 +21,6 @@ import java.io.Serializable; import forge.PlayerType; import forge.game.GameType; -import forge.item.CardDb; -import forge.item.CardPrinted; -import forge.item.ItemPool; -import forge.item.ItemPoolView; /** *

@@ -33,8 +29,7 @@ import forge.item.ItemPoolView; * * The set of MTG legal cards that become player's library when the game starts. * Any other data is not part of a deck and should be stored elsewhere. Current - * fields allowed for deck metadata are Name, Title, Description, Difficulty, - * Icon, Deck Type. + * fields allowed for deck metadata are Name, Title, Description and Deck Type. * * @author Forge * @version $Id$ @@ -54,8 +49,8 @@ public final class Deck implements Comparable, Serializable { private boolean customPool = false; - private ItemPool main; - private ItemPool sideboard; + private final DeckSection main; + private final DeckSection sideboard; // gameType is from Constant.GameType, like GameType.Regular /** @@ -64,8 +59,8 @@ public final class Deck implements Comparable, Serializable { *

*/ public Deck() { - this.main = new ItemPool(CardPrinted.class); - this.sideboard = new ItemPool(CardPrinted.class); + this.main = new DeckSection(); + this.sideboard = new DeckSection(); } /** @@ -81,28 +76,6 @@ public final class Deck implements Comparable, Serializable { this.setDeckType(type); } - /** - *

- * Getter for the field main. - *

- * - * @return a {@link java.util.List} object. - */ - public ItemPoolView getMain() { - return this.main.getView(); - } - - /** - *

- * Getter for the field sideboard. - *

- * - * @return a {@link java.util.List} object. - */ - public ItemPoolView getSideboard() { - return this.sideboard.getView(); - } - /** *

* getDeckType. @@ -177,169 +150,6 @@ public final class Deck implements Comparable, Serializable { return this.comment; } - /** - *

- * addMain. - *

- * - * @param cardName - * a {@link java.lang.String} object. - */ - public void addMain(final String cardName) { - this.addMain(CardDb.instance().getCard(cardName)); - } - - /** - * Adds the main. - * - * @param card - * the card - */ - public void addMain(final CardPrinted card) { - this.main.add(card); - } - - /** - * Adds the main. - * - * @param card - * the card - * @param amount - * the amount - */ - public void addMain(final CardPrinted card, final int amount) { - this.main.add(card, amount); - } - - /** - * Adds the main. - * - * @param list - * the list - */ - public void addMain(final ItemPoolView list) { - this.main.addAll(list); - } - - /** - * Sets the main. - * - * @param cards - * the new main - */ - public void setMain(final Iterable cards) { - this.main = new ItemPool(cards, CardPrinted.class); - } - - /** - * Removes the main. - * - * @param card - * the card - */ - public void removeMain(final CardPrinted card) { - this.main.remove(card); - } - - /** - * Removes the main. - * - * @param card - * the card - * @param amount - * the amount - */ - public void removeMain(final CardPrinted card, final int amount) { - this.main.remove(card, amount); - } - - /** - * Count main. - * - * @return the int - */ - public int countMain() { - return this.main.countAll(); - } - - /** - *

- * addSideboard. - *

- * - * @param cardName - * a {@link java.lang.String} object. - */ - public void addSideboard(final String cardName) { - this.addSideboard(CardDb.instance().getCard(cardName)); - } - - /** - * Adds the sideboard. - * - * @param card - * the card - */ - public void addSideboard(final CardPrinted card) { - this.sideboard.add(card); - } - - /** - * Adds the sideboard. - * - * @param card - * the card - * @param amount - * the amount - */ - public void addSideboard(final CardPrinted card, final int amount) { - this.sideboard.add(card, amount); - } - - /** - * Adds the sideboard. - * - * @param cards - * the cards - */ - public void addSideboard(final ItemPoolView cards) { - this.sideboard.addAll(cards); - } - - /** - * Sets the sideboard. - * - * @param cards - * the new sideboard - */ - public void setSideboard(final Iterable cards) { - this.sideboard = new ItemPool(cards, CardPrinted.class); - } - - /** - *

- * countSideboard. - *

- * - * @return a int. - */ - public int countSideboard() { - return this.sideboard.countAll(); - } - - /** - *

- * removeSideboard. - *

- * - * @param card - * the card - * - */ - public void removeFromSideboard(final CardPrinted card) { - this.sideboard.remove(card); - } - /** *

* isDraft. @@ -415,21 +225,6 @@ public final class Deck implements Comparable, Serializable { return false; } - /** - * Clear sideboard. - */ - public void clearSideboard() { - this.sideboard.clear(); - } - - /** - * Clear main. - */ - public void clearMain() { - this.main.clear(); - - } - /** * Gets the player type. * @@ -467,4 +262,26 @@ public final class Deck implements Comparable, Serializable { public void setCustomPool(final boolean cp) { this.customPool = cp; } + + /** + *

+ * Getter for the field main. + *

+ * + * @return a {@link java.util.List} object. + */ + public DeckSection getMain() { + return this.main; + } + + /** + *

+ * Getter for the field sideboard. + *

+ * + * @return a {@link java.util.List} object. + */ + public DeckSection getSideboard() { + return this.sideboard; + } } diff --git a/src/main/java/forge/deck/DeckGeneration.java b/src/main/java/forge/deck/DeckGeneration.java index fa651a0bab8..05a86cd55a4 100644 --- a/src/main/java/forge/deck/DeckGeneration.java +++ b/src/main/java/forge/deck/DeckGeneration.java @@ -20,7 +20,6 @@ package forge.deck; import java.util.ArrayList; import java.util.Random; -import forge.CardList; import forge.Constant; import forge.PlayerType; import forge.deck.generate.Generate2ColorDeck; @@ -98,12 +97,8 @@ public abstract class DeckGeneration { */ private static Deck generateConstructedDeck() { final GenerateConstructedDeck gen = new GenerateConstructedDeck(); - final CardList name = gen.generateDeck(); final Deck deck = new Deck(GameType.Constructed); - - for (int i = 0; i < 60; i++) { - deck.addMain(name.get(i).getName()); - } + deck.getMain().add(gen.generateDeck()); return deck; } @@ -116,12 +111,8 @@ public abstract class DeckGeneration { */ private static Deck generateConstructed3ColorDeck() { final GenerateConstructedMultiColorDeck gen = new GenerateConstructedMultiColorDeck(); - final CardList name = gen.generate3ColorDeck(); final Deck deck = new Deck(GameType.Constructed); - - for (int i = 0; i < 60; i++) { - deck.addMain(name.get(i).getName()); - } + deck.getMain().add(gen.generate3ColorDeck()); return deck; } @@ -134,12 +125,8 @@ public abstract class DeckGeneration { */ private static Deck generateConstructed5ColorDeck() { final GenerateConstructedMultiColorDeck gen = new GenerateConstructedMultiColorDeck(); - final CardList name = gen.generate5ColorDeck(); final Deck deck = new Deck(GameType.Constructed); - - for (int i = 0; i < 60; i++) { - deck.addMain(name.get(i).getName()); - } + deck.getMain().add(gen.generate5ColorDeck()); return deck; } @@ -164,12 +151,8 @@ public abstract class DeckGeneration { stDeck = o.toString(); } - final CardList td = gen.getThemeDeck(stDeck, 60); final Deck deck = new Deck(GameType.Constructed); - - for (int i = 0; i < td.size(); i++) { - deck.addMain(td.get(i).getName()); - } + deck.getMain().add(gen.getThemeDeck(stDeck, 60)); return deck; } @@ -217,14 +200,9 @@ public abstract class DeckGeneration { c2 = colors.get(r.nextInt(colors.size() - 1) + 1); } final Generate2ColorDeck gen = new Generate2ColorDeck(c1, c2); - final CardList d = gen.get2ColorDeck(60, p); final Deck deck = new Deck(GameType.Constructed); - - for (int i = 0; i < d.size(); i++) { - deck.addMain(d.get(i).getName()); - } - + deck.getMain().add(gen.get2ColorDeck(60, p)); return deck; } @@ -282,16 +260,9 @@ public abstract class DeckGeneration { c3 = colors.get(r.nextInt(colors.size() - 1) + 1); } final Generate3ColorDeck gen = new Generate3ColorDeck(c1, c2, c3); - final CardList d = gen.get3ColorDeck(60, p); - final Deck deck = new Deck(GameType.Constructed); - - for (int i = 0; i < d.size(); i++) { - deck.addMain(d.get(i).getName()); - } - + deck.getMain().add(gen.get3ColorDeck(60, p)); return deck; - } /** @@ -315,14 +286,8 @@ public abstract class DeckGeneration { // colors.add("green"); final Generate5ColorDeck gen = new Generate5ColorDeck("white", "blue", "black", "red", "green"); - final CardList d = gen.get5ColorDeck(60, p); - final Deck deck = new Deck(GameType.Constructed); - - for (int i = 0; i < d.size(); i++) { - deck.addMain(d.get(i).getName()); - } - + deck.getMain().add(gen.get5ColorDeck(60, p)); return deck; } diff --git a/src/main/java/forge/deck/DeckIO.java b/src/main/java/forge/deck/DeckIO.java index 6b2286a2a27..a709f4140e5 100644 --- a/src/main/java/forge/deck/DeckIO.java +++ b/src/main/java/forge/deck/DeckIO.java @@ -138,8 +138,8 @@ public class DeckIO { } else { DeckIO.readDeckMetadata(sections.get("metadata"), d); } - d.setMain(DeckIO.readCardList(sections.get("main"))); - d.setSideboard(DeckIO.readCardList(sections.get("sideboard"))); + d.getMain().set(DeckIO.readCardList(sections.get("main"))); + d.getSideboard().set(DeckIO.readCardList(sections.get("sideboard"))); return d; } diff --git a/src/main/java/forge/deck/DeckSection.java b/src/main/java/forge/deck/DeckSection.java new file mode 100644 index 00000000000..f2abac020b8 --- /dev/null +++ b/src/main/java/forge/deck/DeckSection.java @@ -0,0 +1,43 @@ +package forge.deck; + +import forge.Card; +import forge.CardList; +import forge.item.*; + +/** + * TODO: Write javadoc for this type. + * + */ +public class DeckSection extends ItemPool { + + public DeckSection() { + super(CardPrinted.class); + } + /** + * Clear main. + */ + public void clearMain() { + this.clear(); + + } + + public void set(final Iterable cardNames) { + this.clear(); + this.addAllCards(CardDb.instance().getCards(cardNames)); + } + + public void add(final Card card){ + this.add(CardDb.instance().getCard(card)); + } + + public void add(final String cardName, final String setCode) + { + add(CardDb.instance().getCard(cardName, setCode)); + } + + public void add(final CardList cardList) { + for(Card c : cardList) + add(c); + } + +} diff --git a/src/main/java/forge/game/limited/BoosterDraftAI.java b/src/main/java/forge/game/limited/BoosterDraftAI.java index 6be955b37b1..07daa5ed422 100644 --- a/src/main/java/forge/game/limited/BoosterDraftAI.java +++ b/src/main/java/forge/game/limited/BoosterDraftAI.java @@ -601,17 +601,10 @@ public class BoosterDraftAI { aiPlayables.remove(c); } if (outList.size() == 40) { - for (i = 0; i < outList.size(); i++) { - out.addMain(outList.get(i).getName() + "|" + outList.get(i).getCurSetCode()); - } + out.getMain().add(outList); + out.getSideboard().add(aiPlayables); + out.getSideboard().add(dList); - for (i = 0; i < aiPlayables.size(); i++) { - out.addSideboard(aiPlayables.get(i).getName() + "|" + aiPlayables.get(i).getCurSetCode()); - } - - for (i = 0; i < dList.size(); i++) { - out.addSideboard(dList.get(i).getName() + "|" + dList.get(i).getCurSetCode()); - } } else { throw new RuntimeException("BoosterDraftAI : buildDeck() error, decksize not 40"); } diff --git a/src/main/java/forge/game/limited/SealedDeck.java b/src/main/java/forge/game/limited/SealedDeck.java index 015f027f94c..bb7d11a71f1 100644 --- a/src/main/java/forge/game/limited/SealedDeck.java +++ b/src/main/java/forge/game/limited/SealedDeck.java @@ -437,13 +437,10 @@ public class SealedDeck { || deck.get(i).getName().equals("Forest")) { System.out.println("Heyo!"); } - aiDeck.addMain(deck.get(i).getName() + "|" + deck.get(i).getCurSetCode()); - } - - for (i = 0; i < aiCardpool.size(); i++) { - aiDeck.addSideboard(aiCardpool.get(i).getName() + "|" + aiCardpool.get(i).getCurSetCode()); + aiDeck.getMain().add(deck.get(i)); } + aiDeck.getSideboard().add(aiCardpool); return aiDeck; } diff --git a/src/main/java/forge/gui/deckeditor/DeckEditorBase.java b/src/main/java/forge/gui/deckeditor/DeckEditorBase.java index eb9f1b5e082..c14ebac7dbe 100644 --- a/src/main/java/forge/gui/deckeditor/DeckEditorBase.java +++ b/src/main/java/forge/gui/deckeditor/DeckEditorBase.java @@ -243,11 +243,11 @@ public abstract class DeckEditorBase extends JFrame implements DeckDisplay { @Override public final Deck getDeck() { final Deck deck = new Deck(this.gameType); - deck.addMain(ItemPool.createFrom(this.getBottom(), CardPrinted.class)); + deck.getMain().addAll(this.getBottom()); // if sealed or draft, move "top" to sideboard if (this.gameType.isLimited() && (this.gameType != GameType.Quest)) { - deck.addSideboard(ItemPool.createFrom(this.getTop(), CardPrinted.class)); + deck.getSideboard().addAll(this.getTop()); } return deck; } // getDeck() diff --git a/src/main/java/forge/gui/deckeditor/DeckEditorDraft.java b/src/main/java/forge/gui/deckeditor/DeckEditorDraft.java index 046b2b58499..c48e7dde59c 100644 --- a/src/main/java/forge/gui/deckeditor/DeckEditorDraft.java +++ b/src/main/java/forge/gui/deckeditor/DeckEditorDraft.java @@ -50,7 +50,6 @@ import forge.gui.GuiUtils; import forge.item.CardDb; import forge.item.CardPrinted; import forge.item.InventoryItem; -import forge.item.ItemPool; import forge.item.ItemPoolView; import forge.properties.ForgeProps; import forge.properties.NewConstants.Lang.GuiBoosterDraft; @@ -300,17 +299,15 @@ public class DeckEditorDraft extends DeckEditorBase { Constant.Runtime.HUMAN_DECK[0] = deck; // add sideboard to deck - final ItemPoolView list = ItemPool.createFrom(this.getBottomTableWithCards().getCards(), - CardPrinted.class); - deck.addSideboard(list); + deck.getSideboard().addAll(this.getBottomTableWithCards().getCards()); final String landSet = IBoosterDraft.LAND_SET_CODE[0]; final int landsCount = 20; - deck.addSideboard(CardDb.instance().getCard("Forest", landSet), landsCount); - deck.addSideboard(CardDb.instance().getCard("Mountain", landSet), landsCount); - deck.addSideboard(CardDb.instance().getCard("Swamp", landSet), landsCount); - deck.addSideboard(CardDb.instance().getCard("Island", landSet), landsCount); - deck.addSideboard(CardDb.instance().getCard("Plains", landSet), landsCount); + deck.getSideboard().add(CardDb.instance().getCard("Forest", landSet), landsCount); + deck.getSideboard().add(CardDb.instance().getCard("Mountain", landSet), landsCount); + deck.getSideboard().add(CardDb.instance().getCard("Swamp", landSet), landsCount); + deck.getSideboard().add(CardDb.instance().getCard("Island", landSet), landsCount); + deck.getSideboard().add(CardDb.instance().getCard("Plains", landSet), landsCount); return deck; } // getPlayersDeck() diff --git a/src/main/java/forge/gui/deckeditor/DeckEditorQuestMenu.java b/src/main/java/forge/gui/deckeditor/DeckEditorQuestMenu.java index 84367de04f8..d0994337623 100644 --- a/src/main/java/forge/gui/deckeditor/DeckEditorQuestMenu.java +++ b/src/main/java/forge/gui/deckeditor/DeckEditorQuestMenu.java @@ -579,7 +579,7 @@ public class DeckEditorQuestMenu extends JMenuBar { private Deck cardPoolToDeck(final ItemPoolView list) { // put CardPool into Deck main final Deck deck = new Deck(GameType.Sealed); - deck.addMain(ItemPool.createFrom(list, CardPrinted.class)); + deck.getMain().addAll(list); return deck; } diff --git a/src/main/java/forge/gui/deckeditor/DeckImport.java b/src/main/java/forge/gui/deckeditor/DeckImport.java index b3768e6cd86..c3052e1b986 100644 --- a/src/main/java/forge/gui/deckeditor/DeckImport.java +++ b/src/main/java/forge/gui/deckeditor/DeckImport.java @@ -219,9 +219,9 @@ public class DeckImport extends JDialog { } final CardPrinted crd = t.getCard(); if (isMain) { - result.addMain(crd, t.getNumber()); + result.getMain().add(crd, t.getNumber()); } else { - result.addSideboard(crd, t.getNumber()); + result.getSideboard().add(crd, t.getNumber()); } } return result; diff --git a/src/main/java/forge/item/ItemPool.java b/src/main/java/forge/item/ItemPool.java index f36c6fba46d..4f5366ba313 100644 --- a/src/main/java/forge/item/ItemPool.java +++ b/src/main/java/forge/item/ItemPool.java @@ -29,7 +29,7 @@ import java.util.Map.Entry; * @param * an Object */ -public final class ItemPool extends ItemPoolView { +public class ItemPool extends ItemPoolView { // Constructors here /** @@ -43,22 +43,6 @@ public final class ItemPool extends ItemPoolView { super(cls); } - /** - * - * ItemPool Constructor. - * - * @param names - * a String - * @param cls - * a T - */ - @SuppressWarnings("unchecked") - // conversion here must be safe - public ItemPool(final Iterable names, final Class cls) { - super(cls); - this.addAllCards((Iterable) CardDb.instance().getCards(names)); - } - /** * createFrom method. * diff --git a/src/main/java/forge/quest/data/QuestData.java b/src/main/java/forge/quest/data/QuestData.java index 620928deaaa..11bcc2f64dc 100644 --- a/src/main/java/forge/quest/data/QuestData.java +++ b/src/main/java/forge/quest/data/QuestData.java @@ -589,7 +589,7 @@ public final class QuestData { "QuestData : getDeckFromMap(String deckName) error, deck name not found - %s", deckName); } final Deck d = this.getMyDecks().get(deckName); - d.clearSideboard(); + d.getSideboard().clear(); return d; } diff --git a/src/main/java/forge/quest/data/QuestUtilCards.java b/src/main/java/forge/quest/data/QuestUtilCards.java index 2d227b981af..62a69c306f7 100644 --- a/src/main/java/forge/quest/data/QuestUtilCards.java +++ b/src/main/java/forge/quest/data/QuestUtilCards.java @@ -261,7 +261,7 @@ public final class QuestUtilCards { final int leftInPool = this.q.getCardPool().count(card); // remove sold cards from all decks: for (final Deck deck : this.q.getMyDecks().values()) { - deck.removeMain(card, deck.getMain().count(card) - leftInPool); + deck.getMain().remove(card, deck.getMain().count(card) - leftInPool); } }