Support generating starting deck based on commander

This commit is contained in:
drdev
2015-12-06 20:18:00 +00:00
parent 020b09375b
commit 3a9a1f1f09
3 changed files with 27 additions and 8 deletions

View File

@@ -8,6 +8,10 @@ public class ConquestCommander {
private final PaperCard card; private final PaperCard card;
private final Deck deck; private final Deck deck;
public ConquestCommander(PaperCard card0) {
card = card0;
deck = new Deck(card0.getName());
}
public ConquestCommander(PaperCard card0, DeckGenPool cardPool0, boolean forAi) { public ConquestCommander(PaperCard card0, DeckGenPool cardPool0, boolean forAi) {
card = card0; card = card0;
deck = ConquestUtil.generateDeck(card0, cardPool0, forAi); deck = ConquestUtil.generateDeck(card0, cardPool0, forAi);

View File

@@ -439,8 +439,7 @@ public class ConquestController {
} }
} }
model.getCollection().addAll(rewards); model.addCardsToCollection(rewards);
model.getNewCards().addAll(rewards);
String message = messagePrefix; String message = messagePrefix;
if (messageSuffix != null) { if (messageSuffix != null) {
@@ -514,8 +513,7 @@ public class ConquestController {
} }
BoosterUtils.sort(rewards); BoosterUtils.sort(rewards);
model.getCollection().addAll(rewards); model.addCardsToCollection(rewards);
model.getNewCards().addAll(rewards);
view.showCards("Booster contained " + count + " new card" + (count != 1 ? "s" : ""), rewards); view.showCards("Booster contained " + count + " new card" + (count != 1 ? "s" : ""), rewards);
} }
@@ -532,8 +530,7 @@ public class ConquestController {
BoosterUtils.sort(cards); BoosterUtils.sort(cards);
PaperCard card = SGuiChoose.one("Choose a card from your opponent's deck", cards); PaperCard card = SGuiChoose.one("Choose a card from your opponent's deck", cards);
model.getCollection().add(card); model.addCardToCollection(card);
model.getNewCards().add(card);
return true; return true;
} }

View File

@@ -29,6 +29,7 @@ import forge.util.ItemPool;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.EnumMap; import java.util.EnumMap;
import java.util.HashMap; import java.util.HashMap;
@@ -52,9 +53,10 @@ public final class ConquestData {
private PaperCard planeswalker; private PaperCard planeswalker;
private ISkinImage planeswalkerToken; private ISkinImage planeswalkerToken;
private ConquestLocation currentLocation; private ConquestLocation currentLocation;
private final EnumMap<ConquestPlane, ConquestPlaneData> planeDataMap = new EnumMap<ConquestPlane, ConquestPlaneData>(ConquestPlane.class);
private final EnumMap<ConquestPlane, ConquestPlaneData> planeDataMap = new EnumMap<ConquestPlane, ConquestPlaneData>(ConquestPlane.class);
private final HashSet<PaperCard> collection = new HashSet<PaperCard>(); private final HashSet<PaperCard> collection = new HashSet<PaperCard>();
private final List<ConquestCommander> commanders = new ArrayList<ConquestCommander>();
private final HashMap<String, Deck> decks = new HashMap<String, Deck>(); private final HashMap<String, Deck> decks = new HashMap<String, Deck>();
private final ItemPool<InventoryItem> decksUsingMyCards = new ItemPool<InventoryItem>(InventoryItem.class); private final ItemPool<InventoryItem> decksUsingMyCards = new ItemPool<InventoryItem>(InventoryItem.class);
private final HashSet<PaperCard> newCards = new HashSet<PaperCard>(); private final HashSet<PaperCard> newCards = new HashSet<PaperCard>();
@@ -68,7 +70,14 @@ public final class ConquestData {
currentLocation = new ConquestLocation(startingPlane, -1, 0, Region.PORTAL_COL); currentLocation = new ConquestLocation(startingPlane, -1, 0, Region.PORTAL_COL);
planeswalker = planeswalker0; planeswalker = planeswalker0;
planeswalkerToken = PlaneswalkerAchievements.getTrophyImage(planeswalker.getName()); 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() { public String getName() {
@@ -115,6 +124,15 @@ public final class ConquestData {
return collection; return collection;
} }
public void addCardToCollection(PaperCard card) {
collection.add(card);
newCards.add(card);
}
public void addCardsToCollection(Collection<PaperCard> cards) {
collection.addAll(cards);
newCards.addAll(cards);
}
public ConquestDeckMap getDeckStorage() { public ConquestDeckMap getDeckStorage() {
return new ConquestDeckMap(decks); return new ConquestDeckMap(decks);
} }