{{ getUIText('assemble') }}

{{ currentDeckName || 'Untitled Deck' }}
{{ deckCount }}/50

{{ getUIText('select_identity') }}

{{ getUIText('choose_hero') }}

{{ getLoc(hero.card, 'Name') || hero.name }}

{{ getUIText('no_cards_match') }}

{{ getUIText('deck_issues') }}

  • {{ warn }}

{{ getUIText('collection_warning') }}

  • {{ warn }}

{{ getUIText('identity') }}

{{ getLoc(item.card, 'Name') || item.card.Name }}

{{ getLocalizedTypeName(item.card.Type) }}

{{ getUIText('side_deck') }} {{ getUIText('exempt') }}

{{ getLoc(item.card, 'Name') || item.card.Name }}

{{ getLocalizedTypeName(item.card.Type) }} [{{ fmtCost(item.card['Card Cost']) }}]

x{{ item.count }}

{{ getUIText('hero_deck') }} ({{ signatureCount }}/15)

{{ getLoc(item.card, 'Name') || item.card.Name }}

{{ getLocalizedTypeName(item.card.Type) }} [{{ fmtCost(item.card['Card Cost']) }}]

x{{ item.count }}

{{ getUIText('player_cards') }} ({{ playerDeckCount }})

{{ getUIText('deck_empty') }}

{{ getLoc(item.card, 'Name') || item.card.Name }}

{{ getLocalizedAspectName(item.card.Aspect) }} • {{ getLocalizedTypeName(item.card.Type) }} [{{ fmtCost(item.card['Card Cost']) }}]

{{ item.count }}

{{ getUIText('filters_sort') }}

{{ getUIText('language') }}

{{ getUIText('card_type') }}

{{ getUIText('resource_type') }}

{{ getUIText('sort_by') }}

{{ getUIText('packs_by_wave') }}

{{ collectionPacks.length }} {{ getUIText('packs_saved') }}
{{ wave }}

{{ getUIText('offline_mode') }}

{{ getUIText('app_version') }}: {{ appVersion }}

{{ getUIText('changelog') }}
v3.2.0
  • Filter by resource type (Energy, Mental, Physical, Wild)
  • Wonder Man & Hercules hero packs added
  • Feedback button on filters page
v3.1.0
  • Import decks from MarvelCDB (URL or ID)
  • Browse trending & recent MarvelCDB decks
  • Mulligan support in draw simulator
  • Duplicate saved decks
  • Save & filter by your collection
  • Collection-aware deck warnings
  • In-app guide
v3.0
  • Rules reference viewer
  • Share/import decks via link
  • 5-language support
  • Offline PWA with image caching
  • Deck stats & validation

{{ getUIText('saved_decks') }}

{{ getUIText('no_saved_decks') }}
{{ deck.name }}
{{ deck.hero }} • {{ deck.date }}

{{ getUIText('autofill') }}

{{ getUIText('autofill_desc') }}

{{ getUIText('install_app') }}

1

2

1

2

{{ getUIText('change_hero') }}

{{ getUIText('keep_cards_desc') }}

{{ getUIText('import_deck') || 'Import Deck' }}

{{ importPayload ? importPayload.name : '' }}

MarvelCDB

{{ getUIText('marvelcdb_fetching') }}
{{ marvelcdbSearch ? getUIText('no_cards_match') : getUIText('marvelcdb_no_decks') }}
{{ mdeck.name }}
{{ mdeck.hero_name }} {{ getAspectFromMeta(mdeck.meta) }} {{ mdeck.tags }}
Full Card
{{ selectedCard.Health }}

{{ getLoc(selectedCard, 'Name') }}

{{ getLoc(selectedCard, 'Keywords') || selectedCard.Keywords }}

{{ getLoc(selectedCard, 'Subname') }}

{{ getLoc(selectedCard, 'Card Text') }}

{{ getLoc(selectedCard, 'Flavor Text') }}

No translation available in this language.

{{ getCardCount(selectedCard) }}
{{ selectedCard.Thwart }}
{{ selectedCard.Attack }}
{{ selectedCard.Defense }}
{{ selectedCard.Health }}
{{ selectedCard['Card Cost'] !== undefined && selectedCard['Card Cost'] !== '' ? parseInt(selectedCard['Card Cost']) : '-' }}
{{ getLoc(selectedCard, 'Name') || selectedCard.Name }} {{ getLoc(selectedCard, 'Subname') || selectedCard.Subname }}
{{ selectedCard.Type }}

{{ getLoc(selectedCard, 'Keywords') || selectedCard.Keywords }}

{{ getLoc(selectedCard, 'Card Text') || selectedCard['Card Text'] }}

{{ getLoc(selectedCard, 'Name') || selectedCard.Name }}

{{ getLocalizedPackName(selectedCard.Pack) }} • {{ getLocalizedTypeName(selectedCard.Type) }}

{{ getUIText('related_rules') }}

{{ getUIText('stats') }}

Cost Curve Avg: {{ avgCost }}

{{ count }}
{{ cost === '3' ? '3+' : cost }}

Types

{{ getLocalizedTypeName(type) }} {{ count }}

Aspects

{{ getLocalizedAspectName(aspect) }} {{ count }}

Resources

{{ deckResourceBalance.Physical }}
Phys
{{ deckResourceBalance.Energy }}
Engy
{{ deckResourceBalance.Mental }}
Ment
{{ deckResourceBalance.Wild }}
Wild

{{ getUIText('draw') }}

{{ modalState.title }}

{{ modalState.message }}

{{ toastMsg }}

{{ getUIText('export') }}

{{ getUIText('share_header') }}
{{ getUIText('export_header') }}

{{ getUIText('guide') }}

{{ getUIText('guide_browsing') }}

  • {{ getUIText('guide_browsing_1') }}
  • {{ getUIText('guide_browsing_2') }}
  • {{ getUIText('guide_browsing_3') }}

{{ getUIText('guide_deck') }}

  • {{ getUIText('guide_deck_1') }}
  • {{ getUIText('guide_deck_2') }}
  • {{ getUIText('guide_deck_3') }}
  • {{ getUIText('guide_deck_4') }}
  • {{ getUIText('guide_deck_5') }}

{{ getUIText('guide_sharing') }}

  • {{ getUIText('guide_sharing_1') }}
  • {{ getUIText('guide_sharing_2') }}
  • {{ getUIText('guide_sharing_3') }}

{{ getUIText('guide_filters') }}

  • {{ getUIText('guide_filters_1') }}
  • {{ getUIText('guide_filters_2') }}
  • {{ getUIText('guide_filters_3') }}

MarvelCDB

  • {{ getUIText('guide_mcdb_1') }}
  • {{ getUIText('guide_mcdb_2') }}