mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
Support opening Deck Editor from home screen directly
Cleanup logic that builds deck lists
This commit is contained in:
@@ -17,6 +17,7 @@ public enum GameType {
|
|||||||
QuestDraft (DeckFormat.Limited, true, true, true, "Quest Draft", ""),
|
QuestDraft (DeckFormat.Limited, true, true, true, "Quest Draft", ""),
|
||||||
PlanarConquest (DeckFormat.PlanarConquest, true, false, false, "Planar Conquest", ""),
|
PlanarConquest (DeckFormat.PlanarConquest, true, false, false, "Planar Conquest", ""),
|
||||||
Constructed (DeckFormat.Constructed, false, true, true, "Constructed", ""),
|
Constructed (DeckFormat.Constructed, false, true, true, "Constructed", ""),
|
||||||
|
DeckEditor (DeckFormat.Constructed, false, true, true, "Deck Editor", ""),
|
||||||
Vanguard (DeckFormat.Vanguard, true, true, true, "Vanguard", "Each player has a special \"Avatar\" card that affects the game."),
|
Vanguard (DeckFormat.Vanguard, true, true, true, "Vanguard", "Each player has a special \"Avatar\" card that affects the game."),
|
||||||
Commander (DeckFormat.Commander, false, false, false, "Commander", "Each player has a legendary \"General\" card which can be cast at any time and determines deck colors."),
|
Commander (DeckFormat.Commander, false, false, false, "Commander", "Each player has a legendary \"General\" card which can be cast at any time and determines deck colors."),
|
||||||
TinyLeaders (DeckFormat.TinyLeaders, false, false, false, "Tiny Leaders", "Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. Each card must have CMC less than 4."),
|
TinyLeaders (DeckFormat.TinyLeaders, false, false, false, "Tiny Leaders", "Each player has a legendary \"General\" card which can be cast at any time and determines deck colors. Each card must have CMC less than 4."),
|
||||||
|
|||||||
@@ -131,14 +131,7 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener {
|
|||||||
private void updateColors() {
|
private void updateColors() {
|
||||||
lstDecks.setAllowMultipleSelections(true);
|
lstDecks.setAllowMultipleSelections(true);
|
||||||
|
|
||||||
String[] colors = new String[] { "Random 1", "Random 2", "Random 3",
|
lstDecks.setPool(ColorDeckGenerator.getColorDecks(lstDecks, isAi));
|
||||||
"White", "Blue", "Black", "Red", "Green" };
|
|
||||||
ArrayList<DeckProxy> decks = new ArrayList<DeckProxy>();
|
|
||||||
for (int i = 0; i < colors.length; i++) {
|
|
||||||
decks.add(new ColorDeckGenerator(colors[i], i, lstDecks, isAi));
|
|
||||||
}
|
|
||||||
|
|
||||||
lstDecks.setPool(decks);
|
|
||||||
lstDecks.setup(ItemManagerConfig.STRING_ONLY);
|
lstDecks.setup(ItemManagerConfig.STRING_ONLY);
|
||||||
|
|
||||||
btnRandom.setText("Random Colors");
|
btnRandom.setText("Random Colors");
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import forge.Forge;
|
|||||||
import forge.deck.Deck;
|
import forge.deck.Deck;
|
||||||
import forge.deck.FDeckEditor.EditorType;
|
import forge.deck.FDeckEditor.EditorType;
|
||||||
import forge.deck.io.DeckPreferences;
|
import forge.deck.io.DeckPreferences;
|
||||||
|
import forge.error.BugReporter;
|
||||||
import forge.game.GameType;
|
import forge.game.GameType;
|
||||||
import forge.game.player.RegisteredPlayer;
|
import forge.game.player.RegisteredPlayer;
|
||||||
import forge.itemmanager.DeckManager;
|
import forge.itemmanager.DeckManager;
|
||||||
@@ -79,6 +80,11 @@ public class FDeckChooser extends FScreen {
|
|||||||
lstDecks.setItemActivateHandler(new FEventHandler() {
|
lstDecks.setItemActivateHandler(new FEventHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
|
if (lstDecks.getGameType() == GameType.DeckEditor) {
|
||||||
|
//for Deck Editor, edit deck instead of accepting
|
||||||
|
editSelectedDeck();
|
||||||
|
return;
|
||||||
|
}
|
||||||
accept();
|
accept();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -149,11 +155,29 @@ public class FDeckChooser extends FScreen {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
btnRandom.setCommand(new FEventHandler() {
|
||||||
|
@Override
|
||||||
|
public void handleEvent(FEvent e) {
|
||||||
|
if (lstDecks.getGameType() == GameType.DeckEditor) {
|
||||||
|
//for Deck Editor, play deck instead of randomly selecting deck
|
||||||
|
editSelectedDeck();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (selectedDeckType == DeckType.COLOR_DECK) {
|
||||||
|
DeckgenUtil.randomSelectColors(lstDecks);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
DeckgenUtil.randomSelect(lstDecks);
|
||||||
|
}
|
||||||
|
accept();
|
||||||
|
}
|
||||||
|
});
|
||||||
switch (lstDecks.getGameType()) {
|
switch (lstDecks.getGameType()) {
|
||||||
case Constructed:
|
case Constructed:
|
||||||
break; //delay initialize for constructed until saved decks can be reloaded
|
break; //delay initialize for constructed until saved decks can be reloaded
|
||||||
case Commander:
|
case Commander:
|
||||||
case Gauntlet:
|
case Gauntlet:
|
||||||
|
case DeckEditor:
|
||||||
initialize(null, DeckType.CUSTOM_DECK);
|
initialize(null, DeckType.CUSTOM_DECK);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -174,7 +198,7 @@ public class FDeckChooser extends FScreen {
|
|||||||
public void onActivate() {
|
public void onActivate() {
|
||||||
if (needRefreshOnActivate) {
|
if (needRefreshOnActivate) {
|
||||||
needRefreshOnActivate = false;
|
needRefreshOnActivate = false;
|
||||||
updateCustom();
|
refreshDecksList(DeckType.CUSTOM_DECK, true, null);
|
||||||
switch (lstDecks.getGameType()) {
|
switch (lstDecks.getGameType()) {
|
||||||
case Commander:
|
case Commander:
|
||||||
lstDecks.setSelectedString(DeckPreferences.getCommanderDeck());
|
lstDecks.setSelectedString(DeckPreferences.getCommanderDeck());
|
||||||
@@ -271,6 +295,12 @@ public class FDeckChooser extends FScreen {
|
|||||||
cmbDeckTypes.addItem(DeckType.RANDOM_DECK);
|
cmbDeckTypes.addItem(DeckType.RANDOM_DECK);
|
||||||
cmbDeckTypes.addItem(DeckType.NET_DECK);
|
cmbDeckTypes.addItem(DeckType.NET_DECK);
|
||||||
break;
|
break;
|
||||||
|
case DeckEditor:
|
||||||
|
cmbDeckTypes.addItem(DeckType.CUSTOM_DECK);
|
||||||
|
cmbDeckTypes.addItem(DeckType.PRECONSTRUCTED_DECK);
|
||||||
|
cmbDeckTypes.addItem(DeckType.QUEST_OPPONENT_DECK);
|
||||||
|
cmbDeckTypes.addItem(DeckType.NET_DECK);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
cmbDeckTypes.addItem(DeckType.CUSTOM_DECK);
|
cmbDeckTypes.addItem(DeckType.CUSTOM_DECK);
|
||||||
cmbDeckTypes.addItem(DeckType.RANDOM_DECK);
|
cmbDeckTypes.addItem(DeckType.RANDOM_DECK);
|
||||||
@@ -321,6 +351,129 @@ public class FDeckChooser extends FScreen {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void refreshDecksList(DeckType deckType, boolean forceRefresh, FEvent e) {
|
||||||
|
if (selectedDeckType == deckType && !forceRefresh) { return; }
|
||||||
|
selectedDeckType = deckType;
|
||||||
|
|
||||||
|
if (e == null) {
|
||||||
|
refreshingDeckType = true;
|
||||||
|
cmbDeckTypes.setSelectedItem(deckType);
|
||||||
|
refreshingDeckType = false;
|
||||||
|
}
|
||||||
|
if (deckType == null) { return; }
|
||||||
|
|
||||||
|
int maxSelections = 1;
|
||||||
|
Iterable<DeckProxy> pool;
|
||||||
|
ItemManagerConfig config;
|
||||||
|
|
||||||
|
switch (deckType) {
|
||||||
|
case CUSTOM_DECK:
|
||||||
|
switch (lstDecks.getGameType()) {
|
||||||
|
case Commander:
|
||||||
|
pool = DeckProxy.getAllCommanderDecks();
|
||||||
|
config = ItemManagerConfig.COMMANDER_DECKS;
|
||||||
|
break;
|
||||||
|
case Archenemy:
|
||||||
|
pool = DeckProxy.getAllSchemeDecks();
|
||||||
|
config = ItemManagerConfig.SCHEME_DECKS;
|
||||||
|
break;
|
||||||
|
case Planechase:
|
||||||
|
pool = DeckProxy.getAllPlanarDecks();
|
||||||
|
config = ItemManagerConfig.PLANAR_DECKS;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
pool = DeckProxy.getAllConstructedDecks();
|
||||||
|
config = ItemManagerConfig.CONSTRUCTED_DECKS;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case COLOR_DECK:
|
||||||
|
maxSelections = 3;
|
||||||
|
pool = ColorDeckGenerator.getColorDecks(lstDecks, isAi);
|
||||||
|
config = ItemManagerConfig.STRING_ONLY;
|
||||||
|
break;
|
||||||
|
case THEME_DECK:
|
||||||
|
pool = DeckProxy.getAllThemeDecks();
|
||||||
|
config = ItemManagerConfig.STRING_ONLY;
|
||||||
|
break;
|
||||||
|
case QUEST_OPPONENT_DECK:
|
||||||
|
pool = DeckProxy.getAllQuestEventAndChallenges();
|
||||||
|
config = ItemManagerConfig.QUEST_EVENT_DECKS;
|
||||||
|
break;
|
||||||
|
case PRECONSTRUCTED_DECK:
|
||||||
|
pool = DeckProxy.getAllPreconstructedDecks(QuestController.getPrecons());
|
||||||
|
config = ItemManagerConfig.PRECON_DECKS;
|
||||||
|
break;
|
||||||
|
case RANDOM_DECK:
|
||||||
|
pool = RandomDeckGenerator.getRandomDecks(lstDecks, isAi);
|
||||||
|
config = ItemManagerConfig.STRING_ONLY;
|
||||||
|
break;
|
||||||
|
case NET_DECK:
|
||||||
|
if (netDeckCategory != null) {
|
||||||
|
cmbDeckTypes.setText(netDeckCategory.getDeckType());
|
||||||
|
}
|
||||||
|
pool = DeckProxy.getNetDecks(netDeckCategory);
|
||||||
|
config = ItemManagerConfig.NET_DECKS;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
BugReporter.reportBug("Unsupported deck type: " + deckType);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
lstDecks.setSelectionSupport(1, maxSelections);
|
||||||
|
lstDecks.setPool(pool);
|
||||||
|
lstDecks.setup(config);
|
||||||
|
|
||||||
|
if (config == ItemManagerConfig.STRING_ONLY) {
|
||||||
|
//hide edit/view buttons for string-only lists
|
||||||
|
btnNewDeck.setWidth(getWidth() - 2 * PADDING);
|
||||||
|
btnEditDeck.setVisible(false);
|
||||||
|
btnViewDeck.setVisible(false);
|
||||||
|
btnRandom.setWidth(btnNewDeck.getWidth());
|
||||||
|
|
||||||
|
btnNewDeck.setText("Generate New Deck");
|
||||||
|
switch (deckType) {
|
||||||
|
case COLOR_DECK:
|
||||||
|
btnRandom.setText("Random Colors");
|
||||||
|
break;
|
||||||
|
case THEME_DECK:
|
||||||
|
btnRandom.setText("Random Theme");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
btnRandom.setText("Random Deck");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
btnNewDeck.setWidth(btnEditDeck.getWidth());
|
||||||
|
btnEditDeck.setVisible(true);
|
||||||
|
btnViewDeck.setVisible(true);
|
||||||
|
btnRandom.setWidth(btnNewDeck.getWidth());
|
||||||
|
|
||||||
|
btnNewDeck.setText("New Deck");
|
||||||
|
|
||||||
|
if (lstDecks.getGameType() == GameType.DeckEditor) {
|
||||||
|
//handle special case of Deck Editor screen where this button will start a game with the deck
|
||||||
|
btnRandom.setText("Test Deck");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
btnRandom.setText("Random Deck");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
btnRandom.setLeft(getWidth() - PADDING - btnRandom.getWidth());
|
||||||
|
|
||||||
|
if (e != null) { //set default list selection if from combo box change event
|
||||||
|
if (deckType == DeckType.COLOR_DECK) {
|
||||||
|
// default selection = basic two color deck
|
||||||
|
lstDecks.setSelectedIndices(new Integer[]{0, 1});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
lstDecks.setSelectedIndex(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doLayout(float startY, float width, float height) {
|
protected void doLayout(float startY, float width, float height) {
|
||||||
float x = PADDING;
|
float x = PADDING;
|
||||||
@@ -362,193 +515,6 @@ public class FDeckChooser extends FScreen {
|
|||||||
|
|
||||||
public DeckManager getLstDecks() { return lstDecks; }
|
public DeckManager getLstDecks() { return lstDecks; }
|
||||||
|
|
||||||
private void updateCustom() {
|
|
||||||
lstDecks.setSelectionSupport(1, 1);
|
|
||||||
|
|
||||||
switch (lstDecks.getGameType()) {
|
|
||||||
case Commander:
|
|
||||||
lstDecks.setPool(DeckProxy.getAllCommanderDecks());
|
|
||||||
lstDecks.setup(ItemManagerConfig.COMMANDER_DECKS);
|
|
||||||
break;
|
|
||||||
case Archenemy:
|
|
||||||
lstDecks.setPool(DeckProxy.getAllSchemeDecks());
|
|
||||||
lstDecks.setup(ItemManagerConfig.SCHEME_DECKS);
|
|
||||||
break;
|
|
||||||
case Planechase:
|
|
||||||
lstDecks.setPool(DeckProxy.getAllPlanarDecks());
|
|
||||||
lstDecks.setup(ItemManagerConfig.PLANAR_DECKS);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
lstDecks.setPool(DeckProxy.getAllConstructedDecks());
|
|
||||||
lstDecks.setup(ItemManagerConfig.CONSTRUCTED_DECKS);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
btnNewDeck.setText("New Deck");
|
|
||||||
btnNewDeck.setWidth(btnEditDeck.getWidth());
|
|
||||||
btnEditDeck.setVisible(true);
|
|
||||||
|
|
||||||
btnViewDeck.setVisible(true);
|
|
||||||
btnRandom.setText("Random Deck");
|
|
||||||
btnRandom.setWidth(btnNewDeck.getWidth());
|
|
||||||
btnRandom.setLeft(getWidth() - PADDING - btnRandom.getWidth());
|
|
||||||
btnRandom.setCommand(new FEventHandler() {
|
|
||||||
@Override
|
|
||||||
public void handleEvent(FEvent e) {
|
|
||||||
DeckgenUtil.randomSelect(lstDecks);
|
|
||||||
accept();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateColors() {
|
|
||||||
lstDecks.setSelectionSupport(1, 3); //TODO: Consider supporting more than 3 color random decks
|
|
||||||
|
|
||||||
String[] colors = new String[] { "Random 1", "Random 2", "Random 3",
|
|
||||||
"White", "Blue", "Black", "Red", "Green" };
|
|
||||||
ArrayList<DeckProxy> decks = new ArrayList<DeckProxy>();
|
|
||||||
for (int i = 0; i < colors.length; i++) {
|
|
||||||
decks.add(new ColorDeckGenerator(colors[i], i, lstDecks, isAi));
|
|
||||||
}
|
|
||||||
|
|
||||||
lstDecks.setPool(decks);
|
|
||||||
lstDecks.setup(ItemManagerConfig.STRING_ONLY);
|
|
||||||
|
|
||||||
btnNewDeck.setText("Generate New Deck");
|
|
||||||
btnNewDeck.setWidth(getWidth() - 2 * PADDING);
|
|
||||||
btnEditDeck.setVisible(false);
|
|
||||||
|
|
||||||
btnViewDeck.setVisible(false);
|
|
||||||
btnRandom.setText("Random Colors");
|
|
||||||
btnRandom.setWidth(btnNewDeck.getWidth());
|
|
||||||
btnRandom.setLeft(getWidth() - PADDING - btnRandom.getWidth());
|
|
||||||
btnRandom.setCommand(new FEventHandler() {
|
|
||||||
@Override
|
|
||||||
public void handleEvent(FEvent e) {
|
|
||||||
DeckgenUtil.randomSelectColors(lstDecks);
|
|
||||||
accept();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateThemes() {
|
|
||||||
lstDecks.setSelectionSupport(1, 1);
|
|
||||||
|
|
||||||
lstDecks.setPool(DeckProxy.getAllThemeDecks());
|
|
||||||
lstDecks.setup(ItemManagerConfig.STRING_ONLY);
|
|
||||||
|
|
||||||
btnNewDeck.setText("Generate New Deck");
|
|
||||||
btnNewDeck.setWidth(getWidth() - 2 * PADDING);
|
|
||||||
btnEditDeck.setVisible(false);
|
|
||||||
|
|
||||||
btnViewDeck.setVisible(false);
|
|
||||||
btnRandom.setText("Random Theme");
|
|
||||||
btnRandom.setWidth(btnNewDeck.getWidth());
|
|
||||||
btnRandom.setLeft(getWidth() - PADDING - btnRandom.getWidth());
|
|
||||||
btnRandom.setCommand(new FEventHandler() {
|
|
||||||
@Override
|
|
||||||
public void handleEvent(FEvent e) {
|
|
||||||
DeckgenUtil.randomSelect(lstDecks);
|
|
||||||
accept();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateRandom() {
|
|
||||||
lstDecks.setSelectionSupport(1, 1);
|
|
||||||
|
|
||||||
lstDecks.setPool(RandomDeckGenerator.getRandomDecks(lstDecks, isAi));
|
|
||||||
lstDecks.setup(ItemManagerConfig.STRING_ONLY);
|
|
||||||
|
|
||||||
btnNewDeck.setText("Generate New Deck");
|
|
||||||
btnNewDeck.setWidth(getWidth() - 2 * PADDING);
|
|
||||||
btnEditDeck.setVisible(false);
|
|
||||||
|
|
||||||
btnViewDeck.setVisible(false);
|
|
||||||
btnRandom.setText("Random Deck");
|
|
||||||
btnRandom.setWidth(btnNewDeck.getWidth());
|
|
||||||
btnRandom.setLeft(getWidth() - PADDING - btnRandom.getWidth());
|
|
||||||
btnRandom.setCommand(new FEventHandler() {
|
|
||||||
@Override
|
|
||||||
public void handleEvent(FEvent e) {
|
|
||||||
DeckgenUtil.randomSelect(lstDecks);
|
|
||||||
accept();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updatePrecons() {
|
|
||||||
lstDecks.setSelectionSupport(1, 1);
|
|
||||||
|
|
||||||
lstDecks.setPool(DeckProxy.getAllPreconstructedDecks(QuestController.getPrecons()));
|
|
||||||
lstDecks.setup(ItemManagerConfig.PRECON_DECKS);
|
|
||||||
|
|
||||||
btnNewDeck.setText("New Deck");
|
|
||||||
btnNewDeck.setWidth(btnEditDeck.getWidth());
|
|
||||||
btnEditDeck.setVisible(true);
|
|
||||||
|
|
||||||
btnViewDeck.setVisible(true);
|
|
||||||
btnRandom.setText("Random Deck");
|
|
||||||
btnRandom.setWidth(btnNewDeck.getWidth());
|
|
||||||
btnRandom.setLeft(getWidth() - PADDING - btnRandom.getWidth());
|
|
||||||
btnRandom.setCommand(new FEventHandler() {
|
|
||||||
@Override
|
|
||||||
public void handleEvent(FEvent e) {
|
|
||||||
DeckgenUtil.randomSelect(lstDecks);
|
|
||||||
accept();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateQuestEvents() {
|
|
||||||
lstDecks.setSelectionSupport(1, 1);
|
|
||||||
|
|
||||||
lstDecks.setPool(DeckProxy.getAllQuestEventAndChallenges());
|
|
||||||
lstDecks.setup(ItemManagerConfig.QUEST_EVENT_DECKS);
|
|
||||||
|
|
||||||
btnNewDeck.setText("New Deck");
|
|
||||||
btnNewDeck.setWidth(btnEditDeck.getWidth());
|
|
||||||
btnEditDeck.setVisible(true);
|
|
||||||
|
|
||||||
btnViewDeck.setVisible(true);
|
|
||||||
btnRandom.setText("Random Deck");
|
|
||||||
btnRandom.setWidth(btnNewDeck.getWidth());
|
|
||||||
btnRandom.setLeft(getWidth() - PADDING - btnRandom.getWidth());
|
|
||||||
btnRandom.setCommand(new FEventHandler() {
|
|
||||||
@Override
|
|
||||||
public void handleEvent(FEvent e) {
|
|
||||||
DeckgenUtil.randomSelect(lstDecks);
|
|
||||||
accept();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateNetDecks() {
|
|
||||||
if (netDeckCategory != null) {
|
|
||||||
cmbDeckTypes.setText(netDeckCategory.getDeckType());
|
|
||||||
}
|
|
||||||
lstDecks.setSelectionSupport(1, 1);
|
|
||||||
|
|
||||||
lstDecks.setPool(DeckProxy.getNetDecks(netDeckCategory));
|
|
||||||
lstDecks.setup(ItemManagerConfig.NET_DECKS);
|
|
||||||
|
|
||||||
btnNewDeck.setText("New Deck");
|
|
||||||
btnNewDeck.setWidth(btnEditDeck.getWidth());
|
|
||||||
btnEditDeck.setVisible(true);
|
|
||||||
|
|
||||||
btnViewDeck.setVisible(true);
|
|
||||||
btnRandom.setText("Random Deck");
|
|
||||||
btnRandom.setWidth(btnNewDeck.getWidth());
|
|
||||||
btnRandom.setLeft(getWidth() - PADDING - btnRandom.getWidth());
|
|
||||||
btnRandom.setCommand(new FEventHandler() {
|
|
||||||
@Override
|
|
||||||
public void handleEvent(FEvent e) {
|
|
||||||
DeckgenUtil.randomSelect(lstDecks);
|
|
||||||
accept();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public Deck getDeck() {
|
public Deck getDeck() {
|
||||||
DeckProxy proxy = lstDecks.getSelectedItem();
|
DeckProxy proxy = lstDecks.getSelectedItem();
|
||||||
if (proxy == null) { return null; }
|
if (proxy == null) { return null; }
|
||||||
@@ -587,52 +553,6 @@ public class FDeckChooser extends FScreen {
|
|||||||
isAi = isAiDeck;
|
isAi = isAiDeck;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshDecksList(DeckType deckType, boolean forceRefresh, FEvent e) {
|
|
||||||
if (selectedDeckType == deckType && !forceRefresh) { return; }
|
|
||||||
selectedDeckType = deckType;
|
|
||||||
|
|
||||||
if (e == null) {
|
|
||||||
refreshingDeckType = true;
|
|
||||||
cmbDeckTypes.setSelectedItem(deckType);
|
|
||||||
refreshingDeckType = false;
|
|
||||||
}
|
|
||||||
if (deckType == null) { return; }
|
|
||||||
|
|
||||||
switch (deckType) {
|
|
||||||
case CUSTOM_DECK:
|
|
||||||
updateCustom();
|
|
||||||
break;
|
|
||||||
case COLOR_DECK:
|
|
||||||
updateColors();
|
|
||||||
break;
|
|
||||||
case THEME_DECK:
|
|
||||||
updateThemes();
|
|
||||||
break;
|
|
||||||
case QUEST_OPPONENT_DECK:
|
|
||||||
updateQuestEvents();
|
|
||||||
break;
|
|
||||||
case PRECONSTRUCTED_DECK:
|
|
||||||
updatePrecons();
|
|
||||||
break;
|
|
||||||
case RANDOM_DECK:
|
|
||||||
updateRandom();
|
|
||||||
break;
|
|
||||||
case NET_DECK:
|
|
||||||
updateNetDecks();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (e != null) { //set default list selection if from combo box change event
|
|
||||||
if (deckType == DeckType.COLOR_DECK) {
|
|
||||||
// default selection = basic two color deck
|
|
||||||
lstDecks.setSelectedIndices(new Integer[]{0, 1});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
lstDecks.setSelectedIndex(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private final String SELECTED_DECK_DELIMITER = "::";
|
private final String SELECTED_DECK_DELIMITER = "::";
|
||||||
|
|
||||||
public void saveState() {
|
public void saveState() {
|
||||||
|
|||||||
@@ -7,12 +7,22 @@ import forge.itemmanager.IItemManager;
|
|||||||
|
|
||||||
|
|
||||||
public class ColorDeckGenerator extends DeckProxy implements Comparable<ColorDeckGenerator> {
|
public class ColorDeckGenerator extends DeckProxy implements Comparable<ColorDeckGenerator> {
|
||||||
|
public static List<DeckProxy> getColorDecks(IItemManager<DeckProxy> lstDecks0, boolean isAi0) {
|
||||||
|
String[] colors = new String[] { "Random 1", "Random 2", "Random 3",
|
||||||
|
"White", "Blue", "Black", "Red", "Green" };
|
||||||
|
ArrayList<DeckProxy> decks = new ArrayList<DeckProxy>();
|
||||||
|
for (int i = 0; i < colors.length; i++) {
|
||||||
|
decks.add(new ColorDeckGenerator(colors[i], i, lstDecks0, isAi0));
|
||||||
|
}
|
||||||
|
return decks;
|
||||||
|
}
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
private int index;
|
private int index;
|
||||||
private final IItemManager<DeckProxy> lstDecks;
|
private final IItemManager<DeckProxy> lstDecks;
|
||||||
private final boolean isAi;
|
private final boolean isAi;
|
||||||
|
|
||||||
public ColorDeckGenerator(String name0, int index0, IItemManager<DeckProxy> lstDecks0, boolean isAi0) {
|
private ColorDeckGenerator(String name0, int index0, IItemManager<DeckProxy> lstDecks0, boolean isAi0) {
|
||||||
super();
|
super();
|
||||||
name = name0;
|
name = name0;
|
||||||
index = index0;
|
index = index0;
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class RandomDeckGenerator extends DeckProxy implements Comparable<RandomD
|
|||||||
private final IHasGameType lstDecks;
|
private final IHasGameType lstDecks;
|
||||||
private final boolean isAi;
|
private final boolean isAi;
|
||||||
|
|
||||||
public RandomDeckGenerator(String name0, RandomDeckType type0, IHasGameType lstDecks0, boolean isAi0) {
|
private RandomDeckGenerator(String name0, RandomDeckType type0, IHasGameType lstDecks0, boolean isAi0) {
|
||||||
super();
|
super();
|
||||||
name = name0;
|
name = name0;
|
||||||
type = type0;
|
type = type0;
|
||||||
|
|||||||
Reference in New Issue
Block a user