Parse cmc from json and store in cards.xml

This commit is contained in:
Gavin Bises 2015-01-28 20:28:38 -05:00
parent 739ca6a02e
commit e2fe25735b
4 changed files with 18 additions and 5 deletions

View file

@ -365,6 +365,7 @@ CardInfo::CardInfo(CardDatabase *_db,
const QString &_name, const QString &_name,
bool _isToken, bool _isToken,
const QString &_manacost, const QString &_manacost,
const QString &_cmc,
const QString &_cardtype, const QString &_cardtype,
const QString &_powtough, const QString &_powtough,
const QString &_text, const QString &_text,
@ -381,6 +382,7 @@ CardInfo::CardInfo(CardDatabase *_db,
isToken(_isToken), isToken(_isToken),
sets(_sets), sets(_sets),
manacost(_manacost), manacost(_manacost),
cmc(_cmc),
cardtype(_cardtype), cardtype(_cardtype),
powtough(_powtough), powtough(_powtough),
text(_text), text(_text),
@ -571,6 +573,7 @@ static QXmlStreamWriter &operator<<(QXmlStreamWriter &xml, const CardInfo *info)
xml.writeTextElement("color", colors[i]); xml.writeTextElement("color", colors[i]);
xml.writeTextElement("manacost", info->getManaCost()); xml.writeTextElement("manacost", info->getManaCost());
xml.writeTextElement("cmc", info->getCmc());
xml.writeTextElement("type", info->getCardType()); xml.writeTextElement("type", info->getCardType());
if (!info->getPowTough().isEmpty()) if (!info->getPowTough().isEmpty())
xml.writeTextElement("pt", info->getPowTough()); xml.writeTextElement("pt", info->getPowTough());
@ -731,7 +734,7 @@ void CardDatabase::loadCardsFromXml(QXmlStreamReader &xml, bool tokens)
if (xml.readNext() == QXmlStreamReader::EndElement) if (xml.readNext() == QXmlStreamReader::EndElement)
break; break;
if (xml.name() == "card") { if (xml.name() == "card") {
QString name, manacost, type, pt, text; QString name, manacost, cmc, type, pt, text;
QStringList colors; QStringList colors;
QStringMap customPicURLs, customPicURLsHq; QStringMap customPicURLs, customPicURLsHq;
MuidMap muids; MuidMap muids;
@ -747,6 +750,8 @@ void CardDatabase::loadCardsFromXml(QXmlStreamReader &xml, bool tokens)
name = xml.readElementText(); name = xml.readElementText();
else if (xml.name() == "manacost") else if (xml.name() == "manacost")
manacost = xml.readElementText(); manacost = xml.readElementText();
else if (xml.name() == "cmc")
cmc = xml.readElementText().toInt();
else if (xml.name() == "type") else if (xml.name() == "type")
type = xml.readElementText(); type = xml.readElementText();
else if (xml.name() == "pt") else if (xml.name() == "pt")
@ -779,7 +784,7 @@ void CardDatabase::loadCardsFromXml(QXmlStreamReader &xml, bool tokens)
} }
if (isToken == tokens) { if (isToken == tokens) {
addCard(new CardInfo(this, name, isToken, manacost, type, pt, text, colors, loyalty, cipt, tableRow, sets, customPicURLs, customPicURLsHq, muids)); addCard(new CardInfo(this, name, isToken, manacost, cmc, type, pt, text, colors, loyalty, cipt, tableRow, sets, customPicURLs, customPicURLsHq, muids));
} }
} }
} }

View file

@ -111,6 +111,7 @@ private:
bool isToken; bool isToken;
SetList sets; SetList sets;
QString manacost; QString manacost;
QString cmc;
QString cardtype; QString cardtype;
QString powtough; QString powtough;
QString text; QString text;
@ -126,6 +127,7 @@ public:
const QString &_name = QString(), const QString &_name = QString(),
bool _isToken = false, bool _isToken = false,
const QString &_manacost = QString(), const QString &_manacost = QString(),
const QString &_cmc = QString(),
const QString &_cardtype = QString(), const QString &_cardtype = QString(),
const QString &_powtough = QString(), const QString &_powtough = QString(),
const QString &_text = QString(), const QString &_text = QString(),
@ -142,12 +144,14 @@ public:
bool getIsToken() const { return isToken; } bool getIsToken() const { return isToken; }
const SetList &getSets() const { return sets; } const SetList &getSets() const { return sets; }
const QString &getManaCost() const { return manacost; } const QString &getManaCost() const { return manacost; }
const QString &getCmc() const { return cmc; }
const QString &getCardType() const { return cardtype; } const QString &getCardType() const { return cardtype; }
const QString &getPowTough() const { return powtough; } const QString &getPowTough() const { return powtough; }
const QString &getText() const { return text; } const QString &getText() const { return text; }
const int &getLoyalty() const { return loyalty; } const int &getLoyalty() const { return loyalty; }
bool getCipt() const { return cipt; } bool getCipt() const { return cipt; }
void setManaCost(const QString &_manaCost) { manacost = _manaCost; emit cardInfoChanged(this); } void setManaCost(const QString &_manaCost) { manacost = _manaCost; emit cardInfoChanged(this); }
void setCmc(const QString &_cmc) { cmc = _cmc; emit cardInfoChanged(this); }
void setCardType(const QString &_cardType) { cardtype = _cardType; emit cardInfoChanged(this); } void setCardType(const QString &_cardType) { cardtype = _cardType; emit cardInfoChanged(this); }
void setPowTough(const QString &_powTough) { powtough = _powTough; emit cardInfoChanged(this); } void setPowTough(const QString &_powTough) { powtough = _powTough; emit cardInfoChanged(this); }
void setText(const QString &_text) { text = _text; emit cardInfoChanged(this); } void setText(const QString &_text) { text = _text; emit cardInfoChanged(this); }

View file

@ -65,6 +65,7 @@ CardInfo *OracleImporter::addCard(const QString &setName,
bool isToken, bool isToken,
int cardId, int cardId,
QString &cardCost, QString &cardCost,
QString &cmc,
const QString &cardType, const QString &cardType,
const QString &cardPT, const QString &cardPT,
int cardLoyalty, int cardLoyalty,
@ -117,7 +118,7 @@ CardInfo *OracleImporter::addCard(const QString &setName,
bool cipt = (cardText.contains(cardName + " enters the battlefield tapped.")); bool cipt = (cardText.contains(cardName + " enters the battlefield tapped."));
card = new CardInfo(this, cardName, isToken, cardCost, cardType, cardPT, fullCardText, colors, cardLoyalty, cipt); card = new CardInfo(this, cardName, isToken, cardCost, cmc, cardType, cardPT, fullCardText, colors, cardLoyalty, cipt);
int tableRow = 1; int tableRow = 1;
QString mainCardType = card->getMainCardType(); QString mainCardType = card->getMainCardType();
if ((mainCardType == "Land") || mArtifact) if ((mainCardType == "Land") || mArtifact)
@ -143,6 +144,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
QVariantMap map; QVariantMap map;
QString cardName; QString cardName;
QString cardCost; QString cardCost;
QString cmc;
QString cardType; QString cardType;
QString cardPT; QString cardPT;
QString cardText; QString cardText;
@ -192,6 +194,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
// add second card's data // add second card's data
cardName += card2->contains("name") ? QString(" // ") + card2->value("name").toString() : QString(""); cardName += card2->contains("name") ? QString(" // ") + card2->value("name").toString() : QString("");
cardCost += card2->contains("manaCost") ? QString(" // ") + card2->value("manaCost").toString() : QString(""); cardCost += card2->contains("manaCost") ? QString(" // ") + card2->value("manaCost").toString() : QString("");
cmc += card2->contains("cmc") ? QString(" // ") + card2->value("cmc").toString() : QString("");
cardType += card2->contains("type") ? QString(" // ") + card2->value("type").toString() : QString(""); cardType += card2->contains("type") ? QString(" // ") + card2->value("type").toString() : QString("");
cardPT += card2->contains("power") || card2->contains("toughness") ? QString(" // ") + card2->value("power").toString() + QString('/') + card2->value("toughness").toString() : QString(""); cardPT += card2->contains("power") || card2->contains("toughness") ? QString(" // ") + card2->value("power").toString() + QString('/') + card2->value("toughness").toString() : QString("");
cardText += card2->contains("text") ? QString("\n\n---\n\n") + card2->value("text").toString() : QString(""); cardText += card2->contains("text") ? QString("\n\n---\n\n") + card2->value("text").toString() : QString("");
@ -204,6 +207,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
// normal cards handling // normal cards handling
cardName = map.contains("name") ? map.value("name").toString() : QString(""); cardName = map.contains("name") ? map.value("name").toString() : QString("");
cardCost = map.contains("manaCost") ? map.value("manaCost").toString() : QString(""); cardCost = map.contains("manaCost") ? map.value("manaCost").toString() : QString("");
cmc = map.contains("cmc") ? map.value("cmc").toString() : QString("");
cardType = map.contains("type") ? map.value("type").toString() : QString(""); cardType = map.contains("type") ? map.value("type").toString() : QString("");
cardPT = map.contains("power") || map.contains("toughness") ? map.value("power").toString() + QString('/') + map.value("toughness").toString() : QString(""); 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(""); cardText = map.contains("text") ? map.value("text").toString() : QString("");
@ -218,7 +222,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QVariant &data)
} }
if (!cardIsToken) { if (!cardIsToken) {
CardInfo *card = addCard(set->getShortName(), cardName, cardIsToken, cardId, cardCost, cardType, cardPT, cardLoyalty, cardText.split("\n")); CardInfo *card = addCard(set->getShortName(), cardName, cardIsToken, cardId, cardCost, cmc, cardType, cardPT, cardLoyalty, cardText.split("\n"));
if (!set->contains(card)) { if (!set->contains(card)) {
card->addToSet(set); card->addToSet(set);

View file

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