mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-01 19:13:55 -07:00
put multiple printings of the same dual face/split cards in the xml (#5823)
This commit is contained in:
parent
e17197ffd6
commit
43af173769
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"}};
|
static const QMap<QString, QString> identifierProperties{{"multiverseId", "muid"}, {"scryfallId", "uuid"}};
|
||||||
|
|
||||||
int numCards = 0;
|
int numCards = 0;
|
||||||
QMap<QString, QList<SplitCardPart>> splitCards;
|
QMap<QString, QPair<QList<SplitCardPart>, QString>> splitCards;
|
||||||
QString ptSeparator("/");
|
QString ptSeparator("/");
|
||||||
QVariantMap card;
|
QVariantMap card;
|
||||||
QString layout, name, text, colors, colorIdentity, faceName;
|
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();
|
const QChar lastChar = numProperty.isEmpty() ? QChar() : numProperty.back();
|
||||||
|
|
||||||
// Un-Sets do some wonky stuff. Split up these cards as individual entries.
|
// 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()) &&
|
if (setsWithCardsWithSameNameButDifferentText.contains(currentSet->getShortName()) &&
|
||||||
allNameProps.contains(faceName) && layout == "normal" && lastChar.isLetter()) {
|
allNameProps.contains(faceName) && layout == "normal" && lastChar.isLetter()) {
|
||||||
numComponent = " (" + QString(lastChar).toLower() + ")";
|
numComponent = " (" + QString(lastChar).toLower() + ")";
|
||||||
|
|
@ -337,13 +338,13 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList
|
||||||
if (layout == "split" || layout == "aftermath" || layout == "adventure") {
|
if (layout == "split" || layout == "aftermath" || layout == "adventure") {
|
||||||
auto _faceName = getStringPropertyFromMap(card, "faceName");
|
auto _faceName = getStringPropertyFromMap(card, "faceName");
|
||||||
SplitCardPart split(_faceName, text, properties, setInfo);
|
SplitCardPart split(_faceName, text, properties, setInfo);
|
||||||
auto found_iter = splitCards.find(name);
|
auto found_iter = splitCards.find(name + numProperty);
|
||||||
if (found_iter == splitCards.end()) {
|
if (found_iter == splitCards.end()) {
|
||||||
splitCards.insert(name, {split});
|
splitCards.insert(name + numProperty, {{split}, name});
|
||||||
} else if (layout == "adventure") {
|
} else if (layout == "adventure") {
|
||||||
found_iter->insert(0, split);
|
found_iter->first.insert(0, split);
|
||||||
} else {
|
} else {
|
||||||
found_iter->append(split);
|
found_iter->first.append(split);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// relations
|
// relations
|
||||||
|
|
@ -397,22 +398,15 @@ int OracleImporter::importCardsFromSet(const CardSetPtr ¤tSet, const QList
|
||||||
static const QString splitCardTextSeparator = QString("\n\n---\n\n");
|
static const QString splitCardTextSeparator = QString("\n\n---\n\n");
|
||||||
for (const QString &nameSplit : splitCards.keys()) {
|
for (const QString &nameSplit : splitCards.keys()) {
|
||||||
// get all parts for this specific card
|
// get all parts for this specific card
|
||||||
QList<SplitCardPart> splitCardParts = splitCards.value(nameSplit);
|
QList<SplitCardPart> splitCardParts = splitCards.value(nameSplit).first;
|
||||||
QSet<QString> done{};
|
name = splitCards.value(nameSplit).second;
|
||||||
|
|
||||||
text.clear();
|
text.clear();
|
||||||
properties.clear();
|
properties.clear();
|
||||||
relatedCards.clear();
|
relatedCards.clear();
|
||||||
|
|
||||||
for (const SplitCardPart &tmp : splitCardParts) {
|
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();
|
QString splitName = tmp.getName();
|
||||||
if (done.contains(splitName)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
done.insert(splitName);
|
|
||||||
|
|
||||||
if (!text.isEmpty()) {
|
if (!text.isEmpty()) {
|
||||||
text.append(splitCardTextSeparator);
|
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++;
|
numCards++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue