MTGProxyPrinter

View Ticket
Login

View Ticket

Ticket Hash: f0af61b7bb1215a0b23ca26eeaeaa6a86bb8eecd
Title: Automatic generation of check-cards for DFC cards
Status: Closed Type: Feature_Request
Severity: Important Priority: High
Subsystem: Affects_Multiple Resolution: Fixed
Last Modified: 2023-06-26 10:31:05
Version Found In:
User Comments:
thomas added on 2022-09-17 13:11:27:

Implement generation of check cards for double faced cards. Especially for MDFCs of newer sets, there are no dedicated check cards. The player is expected to write their own. Generating these programmatically seems like a good addition

  • The deck import wizard should have an option to add them on import
  • Add a number of check cards equal to the number of copies
  • Add a three-valued setting
    • Undecided means always ask, enabled means always add without confirmation, disabled means never add
  • Use the split card layout to create the image that holds both cards in one card image
    • Rotate both front and back 90°, scale the heights down to the card width and stitch them together into a single image

thomas added on 2022-10-03 10:52:56:

This also requires changes to the save file format, in order to save check cards to disk.

Proposal

Add enum-like column to the Document Card table that defines what the existing scryfall_id column means:

  • Regular: Just a regular card, the default. Is used on all entries of migrated documents.
  • Check: An automatically generated check card. The scryfall_id references the source DFC, is_front is meaningless
  • Custom (and other values): For future expansion. Can be used to indicate that the id is a reference into a to-be-designed table that holds all information for custom cards

thomas added on 2022-10-03 10:58:28:

The generated check cards have to be identified as such, to be able to save them.

Proposal

Create a new class CheckCard, also a dataclass. Maybe create a class hierarchy by defining a CardBase base class. But not really necessary.

It has to be compatible with the Card class. But several attributes can be computed or be static (like is_front is always True).

A decent approach is probably letting it hold the two related card faces as attributes and then automatically derive the Card class attributes using read-only @property properties


thomas added on 2023-04-09 15:17:50:

There are a few things to do:

General

  • Update type annotations

CardDatabase

  • Create CheckCard instances in the CardDatabase

ImageDatabase

  • Fetch images for CheckCard instances

Document

  • Updating/reselecting printings has to work with check-cards

Deck import wizard

  • Option to add check cards when importing a deck list

AddCardWidget

  • Option to add check cards.