diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestCommander.java b/forge-gui/src/main/java/forge/planarconquest/ConquestCommander.java index 10cace9d431..67c9635f1ed 100644 --- a/forge-gui/src/main/java/forge/planarconquest/ConquestCommander.java +++ b/forge-gui/src/main/java/forge/planarconquest/ConquestCommander.java @@ -8,6 +8,10 @@ public class ConquestCommander { private final PaperCard card; private final Deck deck; + public ConquestCommander(PaperCard card0) { + card = card0; + deck = new Deck(card0.getName()); + } public ConquestCommander(PaperCard card0, DeckGenPool cardPool0, boolean forAi) { card = card0; deck = ConquestUtil.generateDeck(card0, cardPool0, forAi); diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestController.java b/forge-gui/src/main/java/forge/planarconquest/ConquestController.java index d1c484ffcd5..4d309e4788d 100644 --- a/forge-gui/src/main/java/forge/planarconquest/ConquestController.java +++ b/forge-gui/src/main/java/forge/planarconquest/ConquestController.java @@ -439,8 +439,7 @@ public class ConquestController { } } - model.getCollection().addAll(rewards); - model.getNewCards().addAll(rewards); + model.addCardsToCollection(rewards); String message = messagePrefix; if (messageSuffix != null) { @@ -514,8 +513,7 @@ public class ConquestController { } BoosterUtils.sort(rewards); - model.getCollection().addAll(rewards); - model.getNewCards().addAll(rewards); + model.addCardsToCollection(rewards); view.showCards("Booster contained " + count + " new card" + (count != 1 ? "s" : ""), rewards); } @@ -532,8 +530,7 @@ public class ConquestController { BoosterUtils.sort(cards); PaperCard card = SGuiChoose.one("Choose a card from your opponent's deck", cards); - model.getCollection().add(card); - model.getNewCards().add(card); + model.addCardToCollection(card); return true; } diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestData.java b/forge-gui/src/main/java/forge/planarconquest/ConquestData.java index bb6c3917792..058c86efdc9 100644 --- a/forge-gui/src/main/java/forge/planarconquest/ConquestData.java +++ b/forge-gui/src/main/java/forge/planarconquest/ConquestData.java @@ -29,6 +29,7 @@ import forge.util.ItemPool; import java.io.File; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.EnumMap; import java.util.HashMap; @@ -52,9 +53,10 @@ public final class ConquestData { private PaperCard planeswalker; private ISkinImage planeswalkerToken; private ConquestLocation currentLocation; - private final EnumMap planeDataMap = new EnumMap(ConquestPlane.class); + private final EnumMap planeDataMap = new EnumMap(ConquestPlane.class); private final HashSet collection = new HashSet(); + private final List commanders = new ArrayList(); private final HashMap decks = new HashMap(); private final ItemPool decksUsingMyCards = new ItemPool(InventoryItem.class); private final HashSet newCards = new HashSet(); @@ -68,7 +70,14 @@ public final class ConquestData { currentLocation = new ConquestLocation(startingPlane, -1, 0, Region.PORTAL_COL); planeswalker = planeswalker0; planeswalkerToken = PlaneswalkerAchievements.getTrophyImage(planeswalker.getName()); - collection.add(planeswalker); + addCardToCollection(planeswalker); + + //generate deck for starting commander and add all cards to collection + ConquestCommander commander = new ConquestCommander(startingCommander0, startingPlane.getCardPool(), false); + commanders.add(commander); + addCardToCollection(startingCommander0); + addCardsToCollection(commander.getDeck().getMain().toFlatList()); + decks.put(commander.getDeck().getName(), commander.getDeck()); } public String getName() { @@ -115,6 +124,15 @@ public final class ConquestData { return collection; } + public void addCardToCollection(PaperCard card) { + collection.add(card); + newCards.add(card); + } + public void addCardsToCollection(Collection cards) { + collection.addAll(cards); + newCards.addAll(cards); + } + public ConquestDeckMap getDeckStorage() { return new ConquestDeckMap(decks); }