Skip to content

fix(draft): conspiracy cards work in custom cube drafts#10372

Open
billyhewlett wants to merge 1 commit intoCard-Forge:masterfrom
billyhewlett:fix/conspiracy-cube-draft
Open

fix(draft): conspiracy cards work in custom cube drafts#10372
billyhewlett wants to merge 1 commit intoCard-Forge:masterfrom
billyhewlett:fix/conspiracy-cube-draft

Conversation

@billyhewlett
Copy link
Copy Markdown
Contributor

@billyhewlett billyhewlett commented Apr 12, 2026

Problem

Conspiracy cards (Backup Plan, Double Stroke, Advantageous Proclamation,
etc.) are silently ignored when drafting a custom cube that includes them.
Three separate gaps in the code combine to produce this behaviour:

  1. Cards never enter the draft poolCustomLimited.parse() builds
    the card pool from deckCube.getMain() only, ignoring
    DeckSection.Conspiracy. Conspiracy cards therefore never appear in
    any pack.

  2. Effects never triggerGauntletMini.startRound() creates
    RegisteredPlayer objects but never calls assignConspiracies().
    The Load Draft screen's single-match path already calls it correctly;
    Gauntlet mode (the default for Draft) was the missing path.

  3. Cards can't be moved into the Conspiracy section — In
    FDeckEditor, CatalogPage.onCardActivated() and buildMenu() call
    getPageForSection(destination) without forceCreateIfAbsent=true.
    The Conspiracy tab is never created by default, so destinationPage
    is null and the card silently fails to move into
    DeckSection.Conspiracy. assignConspiracies() therefore finds
    nothing even when fix 2 is applied.

Changes

CustomLimited.java (forge-gui)

  • When a DeckSection.Conspiracy section is present, merge it into the
    card pool alongside deckCube.getMain().

GauntletMini.java (forge-gui)

  • Call pl.assignConspiracies() for each player in startRound(),
    mirroring the call already present in LoadDraftScreen.

FDeckEditor.java (forge-gui-mobile)

  • Pass forceCreateIfAbsent=true to getPageForSection() in both
    onCardActivated() (tap) and buildMenu() (long-press) inside
    CatalogPage. The Conspiracy tab is now created on demand when the
    player first drafts a conspiracy card.

Testing

Draft a cube containing at least one Backup Plan and one Double Stroke.
Verify:

  1. Backup Plan and Double Stroke appear in packs during the draft.
  2. After drafting Backup Plan, it appears in the Conspiracy section of
    the deck builder (tap or long-press to move it).
  3. Start a game — Backup Plan draws an extra opening hand to choose from.
  4. Double Stroke's hidden agenda prompt appears at game start.

@billyhewlett billyhewlett force-pushed the fix/conspiracy-cube-draft branch from 07ece6c to 09c571f Compare April 12, 2026 17:10
- CustomLimited.parse(): merge DeckSection.Conspiracy into the card pool
  so cards like Backup Plan appear in packs alongside regular cards.
- GauntletMini.startRound(): call assignConspiracies() on each player
  before starting the match (LoadDraftScreen already did this; Gauntlet
  mode was the missing path).
- FDeckEditor CatalogPage: pass forceCreateIfAbsent=true to
  getPageForSection() in onCardActivated() and buildMenu() so the
  Conspiracy tab is created on demand when a conspiracy card is drafted.
- BackupPlanService.initializeExtraHands(): guard each extra-hand draw
  with a library-size check to prevent a turn-0 game loss when a player
  holds multiple Backup Plans. Use getMaxHandSize() instead of hardcoded 7.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants