mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-04-27 07:48:01 -07:00
put multiple printings of the same dual face/split cards in the xml (#5823)
This commit is contained in:
parent
b214933da9
commit
351c77182c
1 changed files with 9 additions and 15 deletions
|
|
@ -219,7 +219,7 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList
|
|||
static const QMap<QString, QString> identifierProperties{{"multiverseId", "muid"}, {"scryfallId", "uuid"}};
|
||||
|
||||
int numCards = 0;
|
||||
QMap<QString, QList<SplitCardPart>> splitCards;
|
||||
QMap<QString, QPair<QList<SplitCardPart>, QString>> splitCards;
|
||||
QString ptSeparator("/");
|
||||
QVariantMap card;
|
||||
QString layout, name, text, colors, colorIdentity, faceName;
|
||||
|
|
@ -293,6 +293,7 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList
|
|||
const QChar lastChar = numProperty.isEmpty() ? QChar() : numProperty.back();
|
||||
|
||||
// Un-Sets do some wonky stuff. Split up these cards as individual entries.
|
||||
// these cards will have a num with a letter (abc) behind it, put that letter into the name
|
||||
if (setsWithCardsWithSameNameButDifferentText.contains(currentSet->getShortName()) &&
|
||||
allNameProps.contains(faceName) && layout == "normal" && lastChar.isLetter()) {
|
||||
numComponent = " (" + QString(lastChar).toLower() + ")";
|
||||
|
|
@ -337,13 +338,13 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList
|
|||
if (layout == "split" || layout == "aftermath" || layout == "adventure") {
|
||||
auto _faceName = getStringPropertyFromMap(card, "faceName");
|
||||
SplitCardPart split(_faceName, text, properties, setInfo);
|
||||
auto found_iter = splitCards.find(name);
|
||||
auto found_iter = splitCards.find(name + numProperty);
|
||||
if (found_iter == splitCards.end()) {
|
||||
splitCards.insert(name, {split});
|
||||
splitCards.insert(name + numProperty, {{split}, name});
|
||||
} else if (layout == "adventure") {
|
||||
found_iter->insert(0, split);
|
||||
found_iter->first.insert(0, split);
|
||||
} else {
|
||||
found_iter->append(split);
|
||||
found_iter->first.append(split);
|
||||
}
|
||||
} else {
|
||||
// relations
|
||||
|
|
@ -397,22 +398,15 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList
|
|||
static const QString splitCardTextSeparator = QString("\n\n---\n\n");
|
||||
for (const QString &nameSplit : splitCards.keys()) {
|
||||
// get all parts for this specific card
|
||||
QList<SplitCardPart> splitCardParts = splitCards.value(nameSplit);
|
||||
QSet<QString> done{};
|
||||
QList<SplitCardPart> splitCardParts = splitCards.value(nameSplit).first;
|
||||
name = splitCards.value(nameSplit).second;
|
||||
|
||||
text.clear();
|
||||
properties.clear();
|
||||
relatedCards.clear();
|
||||
|
||||
for (const SplitCardPart &tmp : splitCardParts) {
|
||||
// some sets have 2 different variations of the same split card,
|
||||
// eg. Fire // Ice in WC02. Avoid adding duplicates.
|
||||
QString splitName = tmp.getName();
|
||||
if (done.contains(splitName)) {
|
||||
continue;
|
||||
}
|
||||
done.insert(splitName);
|
||||
|
||||
if (!text.isEmpty()) {
|
||||
text.append(splitCardTextSeparator);
|
||||
}
|
||||
|
|
@ -441,7 +435,7 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList
|
|||
}
|
||||
}
|
||||
}
|
||||
CardInfoPtr newCard = addCard(nameSplit, text, isToken, properties, relatedCards, setInfo);
|
||||
CardInfoPtr newCard = addCard(name, text, isToken, properties, relatedCards, setInfo);
|
||||
numCards++;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue