diff --git a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java index 2c8b5b40eaf..48ea79c9fa6 100644 --- a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java +++ b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java @@ -383,6 +383,11 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { updateMatrix(FModel.getFormats().getStandard()); } break; + case PIONEER_CARDGEN_DECK: + if(FModel.isdeckGenMatrixLoaded()) { + updateMatrix(FModel.getFormats().getPioneer()); + } + break; case MODERN_CARDGEN_DECK: if(FModel.isdeckGenMatrixLoaded()) { updateMatrix(FModel.getFormats().getModern()); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java b/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java index cc24940921c..aebb0936bec 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java @@ -223,6 +223,7 @@ public class VLobby implements ILobbyView { DeckType selectedDeckType = deckChooser.getSelectedDeckType(); switch (selectedDeckType){ case STANDARD_CARDGEN_DECK: + case PIONEER_CARDGEN_DECK: case MODERN_CARDGEN_DECK: case LEGACY_CARDGEN_DECK: case VINTAGE_CARDGEN_DECK: diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletQuick.java b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletQuick.java index 237d7124593..d32dd9d2011 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletQuick.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletQuick.java @@ -72,6 +72,7 @@ public enum CSubmenuGauntletQuick implements ICDoc { if (view.getBoxColorDecks().isSelected()) { allowedDeckTypes.add(DeckType.COLOR_DECK); } if (view.getBoxStandardColorDecks().isSelected()) { allowedDeckTypes.add(DeckType.STANDARD_COLOR_DECK); } if (view.getBoxStandardGenDecks().isSelected()) { allowedDeckTypes.add(DeckType.STANDARD_CARDGEN_DECK); } + if (view.getBoxPioneerGenDecks().isSelected()) { allowedDeckTypes.add(DeckType.PIONEER_CARDGEN_DECK); } if (view.getBoxModernGenDecks().isSelected()) { allowedDeckTypes.add(DeckType.MODERN_CARDGEN_DECK); } if (view.getBoxLegacyGenDecks().isSelected()) { allowedDeckTypes.add(DeckType.LEGACY_CARDGEN_DECK); } if (view.getBoxVintageGenDecks().isSelected()) { allowedDeckTypes.add(DeckType.VINTAGE_CARDGEN_DECK); } diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletQuick.java b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletQuick.java index 53d8b4ef1f7..b73bd4e1f32 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletQuick.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletQuick.java @@ -56,6 +56,7 @@ public enum VSubmenuGauntletQuick implements IVSubmenu { private final JCheckBox boxColorDecks = new FCheckBox(DeckType.COLOR_DECK.toString()); private final JCheckBox boxStandardColorDecks = new FCheckBox(DeckType.STANDARD_COLOR_DECK.toString()); private final JCheckBox boxStandardCardgenDecks = new FCheckBox(DeckType.STANDARD_CARDGEN_DECK.toString()); + private final JCheckBox boxPioneerCardgenDecks = new FCheckBox(DeckType.PIONEER_CARDGEN_DECK.toString()); private final JCheckBox boxModernCardgenDecks = new FCheckBox(DeckType.MODERN_CARDGEN_DECK.toString()); private final JCheckBox boxLegacyCardgenDecks = new FCheckBox(DeckType.LEGACY_CARDGEN_DECK.toString()); private final JCheckBox boxVintageCardgenDecks = new FCheckBox(DeckType.VINTAGE_CARDGEN_DECK.toString()); @@ -88,11 +89,13 @@ public enum VSubmenuGauntletQuick implements IVSubmenu { boxStandardColorDecks.setSelected(true); if(FModel.isdeckGenMatrixLoaded()) { boxStandardCardgenDecks.setSelected(true); + boxPioneerCardgenDecks.setSelected(true); boxModernCardgenDecks.setSelected(true); boxLegacyCardgenDecks.setSelected(true); boxVintageCardgenDecks.setSelected(true); }else{ boxStandardCardgenDecks.setSelected(false); + boxPioneerCardgenDecks.setSelected(false); boxModernCardgenDecks.setSelected(false); boxLegacyCardgenDecks.setSelected(false); boxVintageCardgenDecks.setSelected(false); @@ -121,6 +124,7 @@ public enum VSubmenuGauntletQuick implements IVSubmenu { pnlOptions.add(boxColorDecks, "w 96%!, h 30px!, gap 2% 0 0 5px"); if(FModel.isdeckGenMatrixLoaded()) { pnlOptions.add(boxStandardCardgenDecks, "w 96%!, h 30px!, gap 2% 0 0 5px"); + pnlOptions.add(boxPioneerCardgenDecks, "w 96%!, h 30px!, gap 2% 0 0 5px"); pnlOptions.add(boxModernCardgenDecks, "w 96%!, h 30px!, gap 2% 0 0 5px"); pnlOptions.add(boxLegacyCardgenDecks, "w 96%!, h 30px!, gap 2% 0 0 5px"); pnlOptions.add(boxVintageCardgenDecks, "w 96%!, h 30px!, gap 2% 0 0 5px"); @@ -221,6 +225,9 @@ public enum VSubmenuGauntletQuick implements IVSubmenu { public JCheckBox getBoxModernGenDecks() { return boxModernCardgenDecks; } + public JCheckBox getBoxPioneerGenDecks() { + return boxPioneerCardgenDecks; + } public JCheckBox getBoxLegacyGenDecks() { return boxLegacyCardgenDecks; } diff --git a/forge-gui-mobile/src/forge/deck/FDeckChooser.java b/forge-gui-mobile/src/forge/deck/FDeckChooser.java index b62ea91d363..ccbe174bc3b 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckChooser.java +++ b/forge-gui-mobile/src/forge/deck/FDeckChooser.java @@ -149,6 +149,7 @@ public class FDeckChooser extends FScreen { @Override public void handleEvent(FEvent e) { if (selectedDeckType != DeckType.STANDARD_COLOR_DECK && selectedDeckType != DeckType.STANDARD_CARDGEN_DECK + && selectedDeckType != DeckType.PIONEER_CARDGEN_DECK && selectedDeckType != DeckType.MODERN_CARDGEN_DECK && selectedDeckType != DeckType.LEGACY_CARDGEN_DECK && selectedDeckType != DeckType.VINTAGE_CARDGEN_DECK && selectedDeckType != DeckType.MODERN_COLOR_DECK && selectedDeckType != DeckType.COLOR_DECK && selectedDeckType != DeckType.THEME_DECK @@ -172,6 +173,9 @@ public class FDeckChooser extends FScreen { else if (selectedDeckType == DeckType.STANDARD_CARDGEN_DECK){ DeckgenUtil.randomSelect(lstDecks); } + else if (selectedDeckType == DeckType.PIONEER_CARDGEN_DECK){ + DeckgenUtil.randomSelect(lstDecks); + } else if (selectedDeckType == DeckType.MODERN_CARDGEN_DECK){ DeckgenUtil.randomSelect(lstDecks); } @@ -296,6 +300,7 @@ public class FDeckChooser extends FScreen { case RANDOM_CARDGEN_COMMANDER_DECK: case RANDOM_COMMANDER_DECK: case MODERN_CARDGEN_DECK: + case PIONEER_CARDGEN_DECK: case LEGACY_CARDGEN_DECK: case VINTAGE_CARDGEN_DECK: case MODERN_COLOR_DECK: @@ -486,6 +491,7 @@ public class FDeckChooser extends FScreen { cmbDeckTypes.addItem(DeckType.STANDARD_COLOR_DECK); if(FModel.isdeckGenMatrixLoaded()) { cmbDeckTypes.addItem(DeckType.STANDARD_CARDGEN_DECK); + cmbDeckTypes.addItem(DeckType.PIONEER_CARDGEN_DECK); cmbDeckTypes.addItem(DeckType.MODERN_CARDGEN_DECK); cmbDeckTypes.addItem(DeckType.LEGACY_CARDGEN_DECK); cmbDeckTypes.addItem(DeckType.VINTAGE_CARDGEN_DECK); @@ -698,6 +704,14 @@ public class FDeckChooser extends FScreen { } config = ItemManagerConfig.STRING_ONLY; break; + case PIONEER_CARDGEN_DECK: + maxSelections = 1; + pool= new ArrayList<>(); + if(FModel.isdeckGenMatrixLoaded()) { + pool = ArchetypeDeckGenerator.getMatrixDecks(FModel.getFormats().getPioneer(), isAi); + } + config = ItemManagerConfig.STRING_ONLY; + break; case MODERN_CARDGEN_DECK: maxSelections = 1; pool= new ArrayList<>(); @@ -1077,6 +1091,7 @@ public class FDeckChooser extends FScreen { DeckType.STANDARD_COLOR_DECK, DeckType.STANDARD_CARDGEN_DECK, DeckType.MODERN_COLOR_DECK, + DeckType.PIONEER_CARDGEN_DECK, DeckType.MODERN_CARDGEN_DECK, DeckType.LEGACY_CARDGEN_DECK, DeckType.VINTAGE_CARDGEN_DECK, @@ -1085,6 +1100,7 @@ public class FDeckChooser extends FScreen { ); if (!FModel.isdeckGenMatrixLoaded()) { deckTypes.remove(DeckType.STANDARD_CARDGEN_DECK); + deckTypes.remove(DeckType.PIONEER_CARDGEN_DECK); deckTypes.remove(DeckType.MODERN_CARDGEN_DECK); deckTypes.remove(DeckType.LEGACY_CARDGEN_DECK); deckTypes.remove(DeckType.VINTAGE_CARDGEN_DECK); diff --git a/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java b/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java index e196ac77237..7ecde4cd371 100644 --- a/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java +++ b/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java @@ -476,6 +476,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView { DeckType selectedDeckType = deckChooser.getSelectedDeckType(); switch (selectedDeckType){ case STANDARD_CARDGEN_DECK: + case PIONEER_CARDGEN_DECK: case MODERN_CARDGEN_DECK: case LEGACY_CARDGEN_DECK: case VINTAGE_CARDGEN_DECK: diff --git a/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java b/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java index 1278a1e34ac..2388dc0758f 100644 --- a/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java +++ b/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java @@ -88,6 +88,7 @@ public class NewGauntletScreen extends LaunchScreen { DeckType.STANDARD_COLOR_DECK, DeckType.STANDARD_CARDGEN_DECK, DeckType.MODERN_COLOR_DECK, + DeckType.PIONEER_CARDGEN_DECK, DeckType.MODERN_CARDGEN_DECK, DeckType.LEGACY_CARDGEN_DECK, DeckType.VINTAGE_CARDGEN_DECK, diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index c4e19660003..aed6fe90c69 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -548,6 +548,7 @@ lblPreconstructedDecks=Preconstructed Decks lblQuestOpponentDecks=Quest Opponent Decks lblRandomColorDecks=Random Color Decks lblRandomStandardArchetypeDecks=Random Standard Archetype Decks +lblRandomPioneerArchetypeDecks=Random Pioneer Archetype Decks lblRandomModernArchetypeDecks=Random Modern Archetype Decks lblRandomLegacyArchetypeDecks=Random Legacy Archetype Decks lblRandomVintageArchetypeDecks=Random Vintage Archetype Decks diff --git a/forge-gui/src/main/java/forge/deck/CardArchetypeLDAGenerator.java b/forge-gui/src/main/java/forge/deck/CardArchetypeLDAGenerator.java index ddcc82a3e02..53c942a2adf 100644 --- a/forge-gui/src/main/java/forge/deck/CardArchetypeLDAGenerator.java +++ b/forge-gui/src/main/java/forge/deck/CardArchetypeLDAGenerator.java @@ -20,6 +20,7 @@ public final class CardArchetypeLDAGenerator { public static boolean initialize(){ List formatStrings = new ArrayList<>(); formatStrings.add(FModel.getFormats().getStandard().getName()); + formatStrings.add(FModel.getFormats().getPioneer().getName()); formatStrings.add(FModel.getFormats().getModern().getName()); formatStrings.add("Legacy"); formatStrings.add("Vintage"); diff --git a/forge-gui/src/main/java/forge/deck/DeckType.java b/forge-gui/src/main/java/forge/deck/DeckType.java index 83867dc6d50..ba1b8af9e72 100644 --- a/forge-gui/src/main/java/forge/deck/DeckType.java +++ b/forge-gui/src/main/java/forge/deck/DeckType.java @@ -20,6 +20,7 @@ public enum DeckType { QUEST_OPPONENT_DECK("lblQuestOpponentDecks"), COLOR_DECK("lblRandomColorDecks"), STANDARD_CARDGEN_DECK("lblRandomStandardArchetypeDecks"), + PIONEER_CARDGEN_DECK("lblRandomPioneerArchetypeDecks"), MODERN_CARDGEN_DECK("lblRandomModernArchetypeDecks"), LEGACY_CARDGEN_DECK("lblRandomLegacyArchetypeDecks"), VINTAGE_CARDGEN_DECK("lblRandomVintageArchetypeDecks"), @@ -41,6 +42,7 @@ public enum DeckType { DeckType.QUEST_OPPONENT_DECK, DeckType.COLOR_DECK, DeckType.STANDARD_CARDGEN_DECK, + DeckType.PIONEER_CARDGEN_DECK, DeckType.MODERN_CARDGEN_DECK, DeckType.LEGACY_CARDGEN_DECK, DeckType.VINTAGE_CARDGEN_DECK, diff --git a/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java b/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java index 8837c75ad1b..fe11a4cd0ea 100644 --- a/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java +++ b/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java @@ -104,6 +104,8 @@ public class RandomDeckGenerator extends DeckProxy implements Comparable