diff --git a/forge-core/src/main/java/forge/card/CardEdition.java b/forge-core/src/main/java/forge/card/CardEdition.java index 845b60ac162..df16246453f 100644 --- a/forge-core/src/main/java/forge/card/CardEdition.java +++ b/forge-core/src/main/java/forge/card/CardEdition.java @@ -552,26 +552,16 @@ public final class CardEdition implements Comparable { public List getPrintSheetsBySection() { final CardDb cardDb = StaticData.instance().getCommonCards(); - Map cardToIndex = new HashMap<>(); List sheets = Lists.newArrayList(); - for (String sectionName : cardMap.keySet()) { - if (sectionName.equals(EditionSectionWithCollectorNumbers.CONJURED.getName())) { + for (Map.Entry> section : cardMap.asMap().entrySet()) { + if (section.getKey().equals(EditionSectionWithCollectorNumbers.CONJURED.getName())) { continue; } - PrintSheet sheet = new PrintSheet(String.format("%s %s", this.getCode(), sectionName)); + PrintSheet sheet = new PrintSheet(String.format("%s %s", this.getCode(), section.getKey())); - List cards = cardMap.get(sectionName); - for (EditionEntry card : cards) { - int index = 1; - if (cardToIndex.containsKey(card.name)) { - index = cardToIndex.get(card.name) + 1; - } - - cardToIndex.put(card.name, index); - - PaperCard pCard = cardDb.getCard(card.name, this.getCode(), index); - sheet.add(pCard); + for (EditionEntry card : section.getValue()) { + sheet.add(cardDb.getCard(card.name, this.getCode(), card.collectorNumber)); } sheets.add(sheet); diff --git a/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java b/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java index e34ee0c7551..de6339f0a43 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java +++ b/forge-gui-mobile/src/forge/adventure/scene/AdventureDeckEditor.java @@ -437,6 +437,7 @@ public class AdventureDeckEditor extends FDeckEditor { cardManager.setBtnAdvancedSearchOptions(true); cardManager.setCatalogDisplay(true); cardManager.setPool(getCardPool(), false); //Need to update this early for the caption. + this.updateCaption(); } @Override @@ -470,7 +471,7 @@ public class AdventureDeckEditor extends FDeckEditor { )); } if(parentScreen instanceof AdventureDeckEditor adventureEditor && adventureEditor.getCatalogPage() != null) { - CollectionCatalogPage catalogPage = (CollectionCatalogPage) adventureEditor.getCatalogPage(); + CatalogPage catalogPage = adventureEditor.getCatalogPage(); int autoSellCount = cardManager.getItemCount(card); int amountInCollection = player.getCards().count(card); int safeToSellCount = amountInCollection - player.getCopiesUsedInDecks(card); diff --git a/forge-gui-mobile/src/forge/deck/FDeckEditor.java b/forge-gui-mobile/src/forge/deck/FDeckEditor.java index f732ac7e759..03ccd8ce9eb 100644 --- a/forge-gui-mobile/src/forge/deck/FDeckEditor.java +++ b/forge-gui-mobile/src/forge/deck/FDeckEditor.java @@ -1793,7 +1793,7 @@ public class FDeckEditor extends TabPageScreen { DeckSection destination = DeckSection.matchingSection(card); final DeckSectionPage destinationPage = parentScreen.getPageForSection(destination); - if (!needsCommander() && !canOnlyBePartnerCommander(card)) { + if (!needsCommander() && !canOnlyBePartnerCommander(card) && destinationPage != null) { addMoveCardMenuItem(menu, card, this, destinationPage); if (canSideboard(card) && destination != DeckSection.Sideboard) { addMoveCardMenuItem(menu, card, this, parentScreen.getSideboardPage()); diff --git a/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java b/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java index fb57b5bbd54..0b68782246f 100644 --- a/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java +++ b/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java @@ -41,6 +41,9 @@ public class NewDraftScreen extends LaunchScreen { @Override protected void startMatch() { + // initialize custom cubes first to fill the menus, will be instant if preloaded + LoadingOverlay.show(Forge.getLocalizer().getMessage("lblLoadingNewDraft"), true, BoosterDraft::initializeCustomDrafts); + //must run in game thread to prevent blocking UI thread ThreadUtil.invokeInGameThread(() -> { final LimitedPoolType poolType = SGuiChoose.oneOrNone(Forge.getLocalizer().getMessage("lblChooseDraftFormat"), LimitedPoolType.values(true)); @@ -49,11 +52,7 @@ public class NewDraftScreen extends LaunchScreen { final BoosterDraft draft = BoosterDraft.createDraft(poolType); if (draft == null) { return; } - FThreads.invokeInEdtLater(() -> - LoadingOverlay.show(Forge.getLocalizer().getMessage("lblLoadingNewDraft"), true, - () -> Forge.openScreen(new DraftingProcessScreen(draft, FDeckEditor.EditorConfigDraft)) - ) - ); + FThreads.invokeInEdtLater(() -> Forge.openScreen(new DraftingProcessScreen(draft, FDeckEditor.EditorConfigDraft))); }); } }