diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestCommander.java b/forge-gui/src/main/java/forge/planarconquest/ConquestCommander.java index b06b9ede009..e682fcf3db7 100644 --- a/forge-gui/src/main/java/forge/planarconquest/ConquestCommander.java +++ b/forge-gui/src/main/java/forge/planarconquest/ConquestCommander.java @@ -1,7 +1,6 @@ package forge.planarconquest; import forge.deck.Deck; -import forge.deck.generation.DeckGenPool; import forge.item.InventoryItem; import forge.item.PaperCard; import forge.model.FModel; @@ -17,11 +16,8 @@ public class ConquestCommander implements InventoryItem, IXmlWritable { private Deck deck; - public ConquestCommander(PaperCard card0) { - this(card0, new Deck(card0.getName()), null); - } - public ConquestCommander(PaperCard card0, DeckGenPool cardPool0, boolean forAi) { - this(card0, ConquestUtil.generateDeck(card0, cardPool0, forAi), null); + public ConquestCommander(PaperCard card0, Deck deck0) { + this(card0, deck0, null); } private ConquestCommander(PaperCard card0, Deck deck0, ConquestRecord record0) { card = card0; diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestData.java b/forge-gui/src/main/java/forge/planarconquest/ConquestData.java index b4f7972fb9e..3790c7e6e86 100644 --- a/forge-gui/src/main/java/forge/planarconquest/ConquestData.java +++ b/forge-gui/src/main/java/forge/planarconquest/ConquestData.java @@ -20,6 +20,9 @@ package forge.planarconquest; import forge.achievement.PlaneswalkerAchievements; import forge.assets.ISkinImage; import forge.card.CardDb; +import forge.card.CardRules; +import forge.deck.Deck; +import forge.deck.generation.DeckGenPool; import forge.item.InventoryItem; import forge.item.PaperCard; import forge.itemmanager.ColumnDef; @@ -42,6 +45,7 @@ import java.util.Map; import java.util.Map.Entry; import com.google.common.base.Function; +import com.google.common.base.Predicate; public final class ConquestData { private static final String XML_FILE = "data.xml"; @@ -68,12 +72,11 @@ public final class ConquestData { aetherShards = FModel.getConquestPreferences().getPrefInt(CQPref.AETHER_START_SHARDS); currentLocation = new ConquestLocation(startingPlane0, 0, 0, 0); setPlaneswalker(startingPlaneswalker0); - unlockCard(startingPlaneswalker0); - //generate deck for starting commander and add all cards to collection - ConquestCommander commander = new ConquestCommander(startingCommander0, startingPlane0.getCardPool(), false); - commanders.add(commander); + //unlock starting commander, starting planeswalker, and all cards in generated deck unlockCard(startingCommander0); + unlockCard(startingPlaneswalker0); + ConquestCommander commander = getSelectedCommander(); for (Entry entry : commander.getDeck().getMain()) { PaperCard card = entry.getKey(); if (!card.getRules().getType().isBasicLand()) { //ignore basic lands @@ -174,6 +177,29 @@ public final class ConquestData { public void unlockCard(PaperCard card) { if (unlockedCards.add(card)) { newCards.add(card); + + //add card to available commanders if eligible + if (card.getRules().canBeCommander()) { + Deck deck; + if (commanders.isEmpty()) { //generate deck for starting commander + DeckGenPool pool = new DeckGenPool(getCurrentPlane().getCardPool().getAllCards(new Predicate() { + @Override + public boolean apply(PaperCard pc) { + CardRules rules = pc.getRules(); + if (rules.canBeCommander() || rules.getType().isPlaneswalker()) { + return false; //prevent including additional commanders or planeswalkers in starting deck + } + return true; + } + })); + deck = ConquestUtil.generateDeck(card, pool, false); + selectedCommanderIndex = 0; + } + else { //create blank deck for subsequent commanders + deck = new Deck(card.getName()); + } + commanders.add(new ConquestCommander(card, deck)); + } } } public void unlockCards(Iterable cards) { diff --git a/forge-gui/src/main/java/forge/properties/ForgePreferences.java b/forge-gui/src/main/java/forge/properties/ForgePreferences.java index 981990c99cd..f5dc6796c3b 100644 --- a/forge-gui/src/main/java/forge/properties/ForgePreferences.java +++ b/forge-gui/src/main/java/forge/properties/ForgePreferences.java @@ -17,7 +17,6 @@ */ package forge.properties; -import forge.ai.AiProfileUtil; import forge.game.GameLogEntryType; public class ForgePreferences extends PreferencesStore { diff --git a/forge-gui/src/main/java/forge/quest/QuestUtil.java b/forge-gui/src/main/java/forge/quest/QuestUtil.java index 15fd676168e..050d7aa1b4a 100644 --- a/forge-gui/src/main/java/forge/quest/QuestUtil.java +++ b/forge-gui/src/main/java/forge/quest/QuestUtil.java @@ -22,7 +22,6 @@ import com.google.common.collect.ImmutableMap; import forge.FThreads; import forge.GuiBase; import forge.LobbyPlayer; -import forge.ai.LobbyPlayerAi; import forge.assets.FSkinProp; import forge.card.CardDb.SetPreference; import forge.card.CardEdition;