Merge pull request #1921 from ctrlaltca/number

Implemented !setnumber!
This commit is contained in:
ctrlaltca 2016-04-11 15:16:25 +02:00
commit 4f30b5cd31
6 changed files with 49 additions and 6 deletions

View file

@ -59,6 +59,7 @@ CardInfo *OracleImporter::addCard(const QString &setName,
QString cardName,
bool isToken,
int cardId,
QString &setNumber,
QString &cardCost,
QString &cmc,
const QString &cardType,
@ -110,6 +111,7 @@ CardInfo *OracleImporter::addCard(const QString &setName,
cards.insert(cardName, card);
}
card->setMuId(setName, cardId);
card->setSetNumber(setName, setNumber);
return card;
}
@ -149,6 +151,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
QStringList relatedCards;
QStringList reverseRelatedCards; // dummy
int cardId;
QString setNumber;
int cardLoyalty;
bool upsideDown = false;
QMap<int, QVariantMap> splitCards;
@ -179,6 +182,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
cardPT = map.contains("power") || map.contains("toughness") ? map.value("power").toString() + QString('/') + map.value("toughness").toString() : QString("");
cardText = map.contains("text") ? map.value("text").toString() : QString("");
cardId = map.contains("multiverseid") ? map.value("multiverseid").toInt() : 0;
setNumber = map.contains("number") ? map.value("number").toString() : QString("");
cardLoyalty = map.contains("loyalty") ? map.value("loyalty").toInt() : 0;
relatedCards = map.contains("names") ? map.value("names").toStringList() : QStringList();
relatedCards.removeAll(cardName);
@ -194,7 +198,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
colors.clear();
extractColors(map.value("colors").toStringList(), colors);
CardInfo *card = addCard(set->getShortName(), cardName, false, cardId, cardCost, cmc, cardType, cardPT, cardLoyalty, cardText, colors, relatedCards, reverseRelatedCards, upsideDown);
CardInfo *card = addCard(set->getShortName(), cardName, false, cardId, setNumber, cardCost, cmc, cardType, cardPT, cardLoyalty, cardText, colors, relatedCards, reverseRelatedCards, upsideDown);
if (!set->contains(card)) {
card->addToSet(set);
@ -227,6 +231,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
cardType = "";
cardPT = "";
cardText = "";
setNumber = "";
colors.clear();
// this is currently an integer; can't accept 2 values
cardLoyalty = 0;
@ -272,6 +277,11 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
cardText += prefix2;
cardText += map.value("text").toString();
}
if(map.contains("number"))
{
if(setNumber.isEmpty())
setNumber = map.value("number").toString();
}
extractColors(map.value("colors").toStringList(), colors);
}
@ -282,7 +292,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
upsideDown = false;
// add the card
CardInfo *card = addCard(set->getShortName(), cardName, false, muid, cardCost, cmc, cardType, cardPT, cardLoyalty, cardText, colors, relatedCards, reverseRelatedCards, upsideDown);
CardInfo *card = addCard(set->getShortName(), cardName, false, muid, setNumber, cardCost, cmc, cardType, cardPT, cardLoyalty, cardText, colors, relatedCards, reverseRelatedCards, upsideDown);
if (!set->contains(card)) {
card->addToSet(set);

View file

@ -30,7 +30,23 @@ private:
QVariantMap setsMap;
QString dataDir;
CardInfo *addCard(const QString &setName, QString cardName, bool isToken, int cardId, QString &cardCost, QString &cmc, const QString &cardType, const QString &cardPT, int cardLoyalty, const QString &cardText, const QStringList & colors, const QStringList & relatedCards, const QStringList & reverseRelatedCards, bool upsideDown);
CardInfo *addCard(
const QString &setName,
QString cardName,
bool isToken,
int cardId,
QString &setNumber,
QString &cardCost,
QString &cmc,
const QString &cardType,
const QString &cardPT,
int cardLoyalty,
const QString &cardText,
const QStringList & colors,
const QStringList & relatedCards,
const QStringList & reverseRelatedCards,
bool upsideDown
);
signals:
void setIndexChanged(int cardsImported, int setIndex, const QString &setName);
void dataReadProgress(int bytesRead, int totalBytes);