diff --git a/forge-game/src/main/java/forge/game/GameFormat.java b/forge-game/src/main/java/forge/game/GameFormat.java index dc6e41eec8f..86d5f21e9cd 100644 --- a/forge-game/src/main/java/forge/game/GameFormat.java +++ b/forge-game/src/main/java/forge/game/GameFormat.java @@ -484,6 +484,10 @@ public class GameFormat implements Comparable { return this.map.get("Pioneer"); } + public GameFormat getHistoric() { + return this.map.get("Historic"); + } + public GameFormat getModern() { return this.map.get("Modern"); } 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 60f6046c551..c530b52a171 100644 --- a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java +++ b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java @@ -613,6 +613,11 @@ public class FDeckChooser extends JPanel implements IDecksComboBoxListener { updateMatrix(FModel.getFormats().getPioneer()); } break; + case HISTORIC_CARDGEN_DECK: + if(FModel.isdeckGenMatrixLoaded()) { + updateMatrix(FModel.getFormats().getHistoric()); + } + 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 8047c2fcb68..bf494e89567 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 @@ -246,6 +246,7 @@ public class VLobby implements ILobbyView { switch (selectedDeckType){ case STANDARD_CARDGEN_DECK: case PIONEER_CARDGEN_DECK: + case HISTORIC_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 5c28ec6290c..eab8f578b71 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 @@ -73,6 +73,7 @@ public enum CSubmenuGauntletQuick implements ICDoc { 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.getBoxHistoricGenDecks().isSelected()) { allowedDeckTypes.add(DeckType.HISTORIC_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 bad671349e4..afb6e2d03f8 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 @@ -60,6 +60,7 @@ public enum VSubmenuGauntletQuick implements IVSubmenu { 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 boxHistoricCardgenDecks = new FCheckBox(DeckType.HISTORIC_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()); @@ -231,6 +232,9 @@ public enum VSubmenuGauntletQuick implements IVSubmenu { public JCheckBox getBoxPioneerGenDecks() { return boxPioneerCardgenDecks; } + public JCheckBox getBoxHistoricGenDecks() { + return boxHistoricCardgenDecks; + } 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 b50894823fa..6dd9d9f0b2e 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckChooser.java +++ b/forge-gui-mobile/src/forge/deck/FDeckChooser.java @@ -156,7 +156,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.PIONEER_CARDGEN_DECK && selectedDeckType != DeckType.HISTORIC_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 @@ -183,6 +183,9 @@ public class FDeckChooser extends FScreen { else if (selectedDeckType == DeckType.PIONEER_CARDGEN_DECK){ DeckgenUtil.randomSelect(lstDecks); } + else if (selectedDeckType == DeckType.HISTORIC_CARDGEN_DECK){ + DeckgenUtil.randomSelect(lstDecks); + } else if (selectedDeckType == DeckType.MODERN_CARDGEN_DECK){ DeckgenUtil.randomSelect(lstDecks); } @@ -320,6 +323,7 @@ public class FDeckChooser extends FScreen { case RANDOM_COMMANDER_DECK: case MODERN_CARDGEN_DECK: case PIONEER_CARDGEN_DECK: + case HISTORIC_CARDGEN_DECK: case LEGACY_CARDGEN_DECK: case VINTAGE_CARDGEN_DECK: case MODERN_COLOR_DECK: @@ -526,6 +530,7 @@ public class FDeckChooser extends FScreen { if(FModel.isdeckGenMatrixLoaded()) { cmbDeckTypes.addItem(DeckType.STANDARD_CARDGEN_DECK); cmbDeckTypes.addItem(DeckType.PIONEER_CARDGEN_DECK); + cmbDeckTypes.addItem(DeckType.HISTORIC_CARDGEN_DECK); cmbDeckTypes.addItem(DeckType.MODERN_CARDGEN_DECK); cmbDeckTypes.addItem(DeckType.LEGACY_CARDGEN_DECK); cmbDeckTypes.addItem(DeckType.VINTAGE_CARDGEN_DECK); @@ -931,6 +936,14 @@ public class FDeckChooser extends FScreen { } config = ItemManagerConfig.STRING_ONLY; break; + case HISTORIC_CARDGEN_DECK: + maxSelections = 1; + pool= new ArrayList<>(); + if(FModel.isdeckGenMatrixLoaded()) { + pool = ArchetypeDeckGenerator.getMatrixDecks(FModel.getFormats().getHistoric(), isAi); + } + config = ItemManagerConfig.STRING_ONLY; + break; case MODERN_CARDGEN_DECK: maxSelections = 1; pool= new ArrayList<>(); @@ -1377,6 +1390,7 @@ public class FDeckChooser extends FScreen { DeckType.STANDARD_CARDGEN_DECK, DeckType.MODERN_COLOR_DECK, DeckType.PIONEER_CARDGEN_DECK, + DeckType.HISTORIC_CARDGEN_DECK, DeckType.MODERN_CARDGEN_DECK, DeckType.LEGACY_CARDGEN_DECK, DeckType.VINTAGE_CARDGEN_DECK, @@ -1392,6 +1406,7 @@ public class FDeckChooser extends FScreen { if (!FModel.isdeckGenMatrixLoaded()) { deckTypes.remove(DeckType.STANDARD_CARDGEN_DECK); deckTypes.remove(DeckType.PIONEER_CARDGEN_DECK); + deckTypes.remove(DeckType.HISTORIC_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 4fab1493586..5e4ae2c5aa4 100644 --- a/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java +++ b/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java @@ -500,6 +500,7 @@ public abstract class LobbyScreen extends LaunchScreen implements ILobbyView { switch (selectedDeckType){ case STANDARD_CARDGEN_DECK: case PIONEER_CARDGEN_DECK: + case HISTORIC_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 add73a97bd5..f3df330f283 100644 --- a/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java +++ b/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java @@ -89,6 +89,7 @@ public class NewGauntletScreen extends LaunchScreen { DeckType.STANDARD_CARDGEN_DECK, DeckType.MODERN_COLOR_DECK, DeckType.PIONEER_CARDGEN_DECK, + DeckType.HISTORIC_CARDGEN_DECK, DeckType.MODERN_CARDGEN_DECK, DeckType.LEGACY_CARDGEN_DECK, DeckType.VINTAGE_CARDGEN_DECK, diff --git a/forge-gui/res/deckgendecks/Historic.lda.dat b/forge-gui/res/deckgendecks/Historic.lda.dat new file mode 100644 index 00000000000..27338a3c2c0 Binary files /dev/null and b/forge-gui/res/deckgendecks/Historic.lda.dat differ diff --git a/forge-gui/res/deckgendecks/Historic.raw.dat b/forge-gui/res/deckgendecks/Historic.raw.dat new file mode 100644 index 00000000000..282c454684d Binary files /dev/null and b/forge-gui/res/deckgendecks/Historic.raw.dat differ diff --git a/forge-gui/res/formats/Digital/Historic.txt b/forge-gui/res/formats/Sanctioned/Historic.txt similarity index 89% rename from forge-gui/res/formats/Digital/Historic.txt rename to forge-gui/res/formats/Sanctioned/Historic.txt index 45aa2c1aaa1..e84bb3b6334 100644 --- a/forge-gui/res/formats/Digital/Historic.txt +++ b/forge-gui/res/formats/Sanctioned/Historic.txt @@ -4,5 +4,5 @@ Type:Digital Subtype:Arena Effective:2019-11-21 Order:142 -Sets:XLN, RIX, DOM, M19, GRN, G18, RNA, WAR, M20, ELD, HA1, THB, HA2, IKO, HA3, M21, JMP, AKR, ZNR, KLR, KHM, STX, STA +Sets:XLN, RIX, DOM, M19, GRN, G18, RNA, WAR, M20, ELD, HA1, THB, HA2, IKO, HA3, M21, JMP, AKR, ZNR, KLR, KHM, HA4, STX, STA Banned:Agent of Treachery; Channel; Counterspell; Dark Ritual; Demonic Tutor; Field of the Dead; Fires of Invention; Lightning Bolt; Oko, Thief of Crowns; Omnath, Locus of Creation; Natural Order; Nexus of Fate; Once Upon a Time; Swords to Plowshares; Teferi, Time Raveler; Veil of Summer; Uro, Titan of Nature's Wrath; Wilderness Reclamation; Winota, Joiner of Forces diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index 94072514d3d..64956de1e91 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -580,6 +580,7 @@ lblQuestOpponentDecks=Quest Opponent Decks lblRandomColorDecks=Random Color Decks lblRandomStandardArchetypeDecks=Random Standard Archetype Decks lblRandomPioneerArchetypeDecks=Random Pioneer Archetype Decks +lblRandomHistoricArchetypeDecks=Random Historic 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 a536ef9a416..400e08cb659 100644 --- a/forge-gui/src/main/java/forge/deck/CardArchetypeLDAGenerator.java +++ b/forge-gui/src/main/java/forge/deck/CardArchetypeLDAGenerator.java @@ -27,6 +27,7 @@ public final class CardArchetypeLDAGenerator { List formatStrings = new ArrayList<>(); formatStrings.add(FModel.getFormats().getStandard().getName()); formatStrings.add(FModel.getFormats().getPioneer().getName()); + formatStrings.add(FModel.getFormats().getHistoric().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 90f04a40267..77e8ada131a 100644 --- a/forge-gui/src/main/java/forge/deck/DeckType.java +++ b/forge-gui/src/main/java/forge/deck/DeckType.java @@ -22,6 +22,7 @@ public enum DeckType { COLOR_DECK("lblRandomColorDecks"), STANDARD_CARDGEN_DECK("lblRandomStandardArchetypeDecks"), PIONEER_CARDGEN_DECK("lblRandomPioneerArchetypeDecks"), + HISTORIC_CARDGEN_DECK("lblRandomHistoricArchetypeDecks"), MODERN_CARDGEN_DECK("lblRandomModernArchetypeDecks"), LEGACY_CARDGEN_DECK("lblRandomLegacyArchetypeDecks"), VINTAGE_CARDGEN_DECK("lblRandomVintageArchetypeDecks"), @@ -50,6 +51,7 @@ public enum DeckType { DeckType.COLOR_DECK, DeckType.STANDARD_CARDGEN_DECK, DeckType.PIONEER_CARDGEN_DECK, + DeckType.HISTORIC_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 1609859d0d5..426816ae4d2 100644 --- a/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java +++ b/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java @@ -106,6 +106,8 @@ public class RandomDeckGenerator extends DeckProxy implements Comparable() { @Override public Void apply(ForgePreferences preferences) { @@ -57,6 +58,7 @@ public final class LDAModelGenetrator { List formatStrings = new ArrayList<>(); formatStrings.add(FModel.getFormats().getStandard().getName()); formatStrings.add(FModel.getFormats().getPioneer().getName()); + formatStrings.add(FModel.getFormats().getHistoric().getName()); formatStrings.add(FModel.getFormats().getModern().getName()); formatStrings.add("Legacy"); formatStrings.add("Vintage");