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 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);

View File

@@ -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;
}

View File

@@ -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<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 List<ConquestCommander> commanders = new ArrayList<ConquestCommander>();
private final HashMap<String, Deck> decks = new HashMap<String, Deck>();
private final ItemPool<InventoryItem> decksUsingMyCards = new ItemPool<InventoryItem>(InventoryItem.class);
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);
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<PaperCard> cards) {
collection.addAll(cards);
newCards.addAll(cards);
}
public ConquestDeckMap getDeckStorage() {
return new ConquestDeckMap(decks);
}