Add Draft and Sealed decks to Deck Manager

This commit is contained in:
drdev
2015-04-25 14:29:24 +00:00
parent 6a8c0ddece
commit 1018eb2db4
9 changed files with 51 additions and 6 deletions

View File

@@ -351,6 +351,8 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
case NET_DECK:
updateNetDecks();
break;
default:
break; //other deck types not currently supported here
}
}

View File

@@ -85,7 +85,7 @@ public enum CSubmenuDraft implements ICDoc {
final VSubmenuDraft view = VSubmenuDraft.SINGLETON_INSTANCE;
final JButton btnStart = view.getBtnStart();
view.getLstDecks().setPool(DeckProxy.getDraftDecks(FModel.getDecks().getDraft()));
view.getLstDecks().setPool(DeckProxy.getAllDraftDecks());
view.getLstDecks().setup(ItemManagerConfig.DRAFT_DECKS);
if (!view.getLstDecks().getPool().isEmpty()) {

View File

@@ -83,7 +83,7 @@ public enum CSubmenuSealed implements ICDoc {
@Override
public void update() {
final VSubmenuSealed view = VSubmenuSealed.SINGLETON_INSTANCE;
view.getLstDecks().setPool(DeckProxy.getAllSealedDecks(FModel.getDecks().getSealed()));
view.getLstDecks().setPool(DeckProxy.getAllSealedDecks());
view.getLstDecks().setup(ItemManagerConfig.SEALED_DECKS);
SwingUtilities.invokeLater(new Runnable() {

View File

@@ -130,6 +130,8 @@ public class FDeckChooser extends FScreen {
case COMMANDER_DECK:
case SCHEME_DECKS:
case PLANAR_DECKS:
case DRAFT_DECKS:
case SEALED_DECKS:
break;
default:
setSelectedDeckType(DeckType.CONSTRUCTED_DECK);
@@ -226,6 +228,12 @@ public class FDeckChooser extends FScreen {
case PLANAR_DECKS:
lstDecks.setSelectedString(DeckPreferences.getPlanarDeck());
break;
case DRAFT_DECKS:
lstDecks.setSelectedString(DeckPreferences.getDraftDeck());
break;
case SEALED_DECKS:
lstDecks.setSelectedString(DeckPreferences.getSealedDeck());
break;
default:
lstDecks.setSelectedString(DeckPreferences.getCurrentDeck());
break;
@@ -248,6 +256,8 @@ public class FDeckChooser extends FScreen {
case COMMANDER_DECK:
case SCHEME_DECKS:
case PLANAR_DECKS:
case DRAFT_DECKS:
case SEALED_DECKS:
editDeck(deck);
break;
default:
@@ -289,6 +299,10 @@ public class FDeckChooser extends FScreen {
return EditorType.Archenemy;
case PLANAR_DECKS:
return EditorType.Planechase;
case DRAFT_DECKS:
return EditorType.Draft;
case SEALED_DECKS:
return EditorType.Sealed;
default:
return EditorType.Constructed;
}
@@ -315,6 +329,12 @@ public class FDeckChooser extends FScreen {
case Planechase:
DeckPreferences.setPlanarDeck(deck.getName());
break;
case Draft:
DeckPreferences.setDraftDeck(deck.getName());
break;
case Sealed:
DeckPreferences.setSealedDeck(deck.getName());
break;
default:
DeckPreferences.setCurrentDeck(deck.getName());
break;
@@ -350,6 +370,8 @@ public class FDeckChooser extends FScreen {
cmbDeckTypes.addItem(DeckType.COMMANDER_DECK);
cmbDeckTypes.addItem(DeckType.SCHEME_DECKS);
cmbDeckTypes.addItem(DeckType.PLANAR_DECKS);
cmbDeckTypes.addItem(DeckType.DRAFT_DECKS);
cmbDeckTypes.addItem(DeckType.SEALED_DECKS);
cmbDeckTypes.addItem(DeckType.PRECONSTRUCTED_DECK);
cmbDeckTypes.addItem(DeckType.QUEST_OPPONENT_DECK);
cmbDeckTypes.addItem(DeckType.NET_DECK);
@@ -456,6 +478,14 @@ public class FDeckChooser extends FScreen {
pool = DeckProxy.getAllPlanarDecks();
config = ItemManagerConfig.PLANAR_DECKS;
break;
case DRAFT_DECKS:
pool = DeckProxy.getAllDraftDecks();
config = ItemManagerConfig.DRAFT_DECKS;
break;
case SEALED_DECKS:
pool = DeckProxy.getAllSealedDecks();
config = ItemManagerConfig.SEALED_DECKS;
break;
case COLOR_DECK:
maxSelections = 3;
pool = ColorDeckGenerator.getColorDecks(lstDecks, isAi);

View File

@@ -1414,6 +1414,15 @@ public class FDeckEditor extends TabPageScreen<FDeckEditor> {
case Constructed:
DeckPreferences.setCurrentDeck(deckStr);
break;
case Commander:
DeckPreferences.setCommanderDeck(deckStr);
break;
case Archenemy:
DeckPreferences.setSchemeDeck(deckStr);
break;
case Planechase:
DeckPreferences.setPlanarDeck(deckStr);
break;
case Draft:
DeckPreferences.setDraftDeck(deckStr);
break;

View File

@@ -46,7 +46,7 @@ public class LoadDraftScreen extends LaunchScreen {
@Override
public void onActivate() {
lstDecks.setPool(DeckProxy.getDraftDecks(FModel.getDecks().getDraft()));
lstDecks.setPool(DeckProxy.getAllDraftDecks());
lstDecks.setSelectedString(DeckPreferences.getDraftDeck());
}

View File

@@ -43,7 +43,7 @@ public class LoadSealedScreen extends LaunchScreen {
@Override
public void onActivate() {
lstDecks.setPool(DeckProxy.getAllSealedDecks(FModel.getDecks().getSealed()));
lstDecks.setPool(DeckProxy.getAllSealedDecks());
lstDecks.setSelectedString(DeckPreferences.getSealedDeck());
}

View File

@@ -441,8 +441,9 @@ public class DeckProxy implements InventoryItem {
}
@SuppressWarnings("unchecked")
public static List<DeckProxy> getAllSealedDecks(IStorage<DeckGroup> sealed) {
public static List<DeckProxy> getAllSealedDecks() {
final List<DeckProxy> humanDecks = new ArrayList<DeckProxy>();
final IStorage<DeckGroup> sealed = FModel.getDecks().getSealed();
// Since AI decks are tied directly to the human choice,
// they're just mapped in a parallel map and grabbed when the game starts.
@@ -463,8 +464,9 @@ public class DeckProxy implements InventoryItem {
}
@SuppressWarnings("unchecked")
public static List<DeckProxy> getDraftDecks(IStorage<DeckGroup> draft) {
public static List<DeckProxy> getAllDraftDecks() {
ArrayList<DeckProxy> decks = new ArrayList<DeckProxy>();
IStorage<DeckGroup> draft = FModel.getDecks().getDraft();
for (DeckGroup d : draft) {
decks.add(new DeckProxy(d, "Draft", ((Function<IHasName, Deck>)(Object)DeckGroup.FN_HUMAN_DECK), GameType.Draft, draft));
}

View File

@@ -6,6 +6,8 @@ public enum DeckType {
COMMANDER_DECK ("Commander Decks"),
SCHEME_DECKS ("Scheme Decks"),
PLANAR_DECKS ("Planar Decks"),
DRAFT_DECKS ("Draft Decks"),
SEALED_DECKS ("Sealed Decks"),
PRECONSTRUCTED_DECK("Preconstructed Decks"),
QUEST_OPPONENT_DECK ("Quest Opponent Decks"),
COLOR_DECK ("Random Color Decks"),