mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-04 04:23:55 -07:00
Merge branch 'master' into tooomm-qt5
This commit is contained in:
commit
ae9ce701f4
290 changed files with 10683 additions and 4451 deletions
|
|
@ -85,14 +85,15 @@ void CardDatabase::refreshCachedReverseRelatedCards()
|
|||
for (auto *rel : card->getReverseRelatedCards()) {
|
||||
if (auto target = cards.value(rel->getName())) {
|
||||
auto *newRel = new CardRelation(card->getName(), rel->getAttachType(), rel->getIsCreateAllExclusion(),
|
||||
rel->getIsVariable(), rel->getDefaultCount(), rel->getIsPersistent());
|
||||
rel->getIsVariable(), rel->getDefaultCount(), rel->getIsPersistent(),
|
||||
rel->getIsFaceDown());
|
||||
target->addReverseRelatedCards2Me(newRel);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CardDatabase::addCard(CardInfoPtr card)
|
||||
void CardDatabase::addCard(const CardInfoPtr &card)
|
||||
{
|
||||
if (card == nullptr) {
|
||||
qCWarning(CardDatabaseLog) << "CardDatabase::addCard(nullptr)";
|
||||
|
|
@ -118,7 +119,7 @@ void CardDatabase::addCard(CardInfoPtr card)
|
|||
emit cardAdded(card);
|
||||
}
|
||||
|
||||
void CardDatabase::removeCard(CardInfoPtr card)
|
||||
void CardDatabase::removeCard(const CardInfoPtr &card)
|
||||
{
|
||||
if (card.isNull()) {
|
||||
qCWarning(CardDatabaseLog) << "CardDatabase::removeCard(nullptr)";
|
||||
|
|
@ -143,7 +144,7 @@ void CardDatabase::removeCard(CardInfoPtr card)
|
|||
emit cardRemoved(card);
|
||||
}
|
||||
|
||||
void CardDatabase::addSet(CardSetPtr set)
|
||||
void CardDatabase::addSet(const CardSetPtr &set)
|
||||
{
|
||||
sets.insert(set->getShortName(), set);
|
||||
}
|
||||
|
|
@ -215,7 +216,7 @@ void CardDatabase::notifyEnabledSetsChanged()
|
|||
emit cardDatabaseEnabledSetsChanged();
|
||||
}
|
||||
|
||||
void CardDatabase::addFormat(FormatRulesPtr format)
|
||||
void CardDatabase::addFormat(const FormatRulesPtr &format)
|
||||
{
|
||||
formats.insert(format->formatName.toLower(), format);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ public:
|
|||
* @brief Removes a card from the database.
|
||||
* @param card Pointer to the card to remove.
|
||||
*/
|
||||
void removeCard(CardInfoPtr card);
|
||||
void removeCard(const CardInfoPtr &card);
|
||||
|
||||
/** @brief Clears all cards, sets, and internal state. */
|
||||
void clear();
|
||||
|
|
@ -140,15 +140,15 @@ public slots:
|
|||
* @brief Adds a card to the database.
|
||||
* @param card CardInfoPtr to add.
|
||||
*/
|
||||
void addCard(CardInfoPtr card);
|
||||
void addCard(const CardInfoPtr &card);
|
||||
|
||||
/**
|
||||
* @brief Adds a set to the database.
|
||||
* @param set Pointer to CardSet to add.
|
||||
*/
|
||||
void addSet(CardSetPtr set);
|
||||
void addSet(const CardSetPtr &set);
|
||||
|
||||
void addFormat(FormatRulesPtr format);
|
||||
void addFormat(const FormatRulesPtr &format);
|
||||
|
||||
/** @brief Loads card databases from configured paths. */
|
||||
void loadCardDatabases();
|
||||
|
|
|
|||
|
|
@ -217,27 +217,32 @@ void CockatriceXml3Parser::loadCardsFromXml(QXmlStreamReader &xml)
|
|||
// NOTE: attributes must be read before readElementText()
|
||||
QXmlStreamAttributes attrs = xml.attributes();
|
||||
QString setName = xml.readElementText(QXmlStreamReader::IncludeChildElements);
|
||||
PrintingInfo setInfo(internalAddSet(setName));
|
||||
if (attrs.hasAttribute("muId")) {
|
||||
setInfo.setProperty("muid", attrs.value("muId").toString());
|
||||
}
|
||||
auto set = internalAddSet(setName);
|
||||
// Only load printings from sets the user has enabled, matching the v4 loader's
|
||||
// behaviour. Without this check, disabling a set has no effect on v3 databases.
|
||||
if (set->getEnabled()) {
|
||||
PrintingInfo setInfo(set);
|
||||
if (attrs.hasAttribute("muId")) {
|
||||
setInfo.setProperty("muid", attrs.value("muId").toString());
|
||||
}
|
||||
|
||||
if (attrs.hasAttribute("muId")) {
|
||||
setInfo.setProperty("uuid", attrs.value("uuId").toString());
|
||||
}
|
||||
if (attrs.hasAttribute("uuId")) {
|
||||
setInfo.setProperty("uuid", attrs.value("uuId").toString());
|
||||
}
|
||||
|
||||
if (attrs.hasAttribute("picURL")) {
|
||||
setInfo.setProperty("picurl", attrs.value("picURL").toString());
|
||||
}
|
||||
if (attrs.hasAttribute("picURL")) {
|
||||
setInfo.setProperty("picurl", attrs.value("picURL").toString());
|
||||
}
|
||||
|
||||
if (attrs.hasAttribute("num")) {
|
||||
setInfo.setProperty("num", attrs.value("num").toString());
|
||||
}
|
||||
if (attrs.hasAttribute("num")) {
|
||||
setInfo.setProperty("num", attrs.value("num").toString());
|
||||
}
|
||||
|
||||
if (attrs.hasAttribute("rarity")) {
|
||||
setInfo.setProperty("rarity", attrs.value("rarity").toString());
|
||||
if (attrs.hasAttribute("rarity")) {
|
||||
setInfo.setProperty("rarity", attrs.value("rarity").toString());
|
||||
}
|
||||
_sets[setName].append(setInfo);
|
||||
}
|
||||
_sets[setName].append(setInfo);
|
||||
// related cards
|
||||
} else if (xmlName == "related" || xmlName == "reverse-related") {
|
||||
CardRelationType attach = CardRelationType::DoesNotAttach;
|
||||
|
|
|
|||
|
|
@ -329,6 +329,7 @@ void CockatriceXml4Parser::loadCardsFromXml(QXmlStreamReader &xml)
|
|||
bool exclude = false;
|
||||
bool variable = false;
|
||||
bool persistent = false;
|
||||
bool facedown = false;
|
||||
int count = 1;
|
||||
QXmlStreamAttributes attrs = xml.attributes();
|
||||
QString cardName = xml.readElementText(QXmlStreamReader::IncludeChildElements);
|
||||
|
|
@ -360,7 +361,12 @@ void CockatriceXml4Parser::loadCardsFromXml(QXmlStreamReader &xml)
|
|||
persistent = true;
|
||||
}
|
||||
|
||||
auto *relation = new CardRelation(cardName, attachType, exclude, variable, count, persistent);
|
||||
if (attrs.hasAttribute("facedown")) {
|
||||
facedown = true;
|
||||
}
|
||||
|
||||
auto *relation =
|
||||
new CardRelation(cardName, attachType, exclude, variable, count, persistent, facedown);
|
||||
if (xmlName == "reverse-related") {
|
||||
reverseRelatedCards << relation;
|
||||
} else {
|
||||
|
|
@ -510,6 +516,9 @@ static QXmlStreamWriter &operator<<(QXmlStreamWriter &xml, const CardInfoPtr &in
|
|||
if (i->getIsPersistent()) {
|
||||
xml.writeAttribute("persistent", "persistent");
|
||||
}
|
||||
if (i->getIsFaceDown()) {
|
||||
xml.writeAttribute("facedown", "facedown");
|
||||
}
|
||||
if (i->getIsVariable()) {
|
||||
if (1 == i->getDefaultCount()) {
|
||||
xml.writeAttribute("count", "x");
|
||||
|
|
|
|||
|
|
@ -7,8 +7,10 @@ CardRelation::CardRelation(const QString &_name,
|
|||
bool _isCreateAllExclusion,
|
||||
bool _isVariableCount,
|
||||
int _defaultCount,
|
||||
bool _isPersistent)
|
||||
bool _isPersistent,
|
||||
bool _isFaceDown)
|
||||
: name(_name), attachType(_attachType), isCreateAllExclusion(_isCreateAllExclusion),
|
||||
isVariableCount(_isVariableCount), defaultCount(_defaultCount), isPersistent(_isPersistent)
|
||||
isVariableCount(_isVariableCount), defaultCount(_defaultCount), isPersistent(_isPersistent),
|
||||
isFaceDown(_isFaceDown)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ private:
|
|||
bool isVariableCount; ///< True if the number of creations is variable.
|
||||
int defaultCount; ///< Default number of cards created or involved.
|
||||
bool isPersistent; ///< True if this relation persists (i.e. is not destroyed) on zone change.
|
||||
bool isFaceDown; ///< True if this relation creates the tokens facedown
|
||||
|
||||
public:
|
||||
/**
|
||||
|
|
@ -42,13 +43,15 @@ public:
|
|||
* @param _isVariableCount Whether the count is variable.
|
||||
* @param _defaultCount Default number for creations or transformations.
|
||||
* @param _isPersistent Whether the relation persists across zone changes.
|
||||
* @param _isFaceDown Whether the relation creates the token face down
|
||||
*/
|
||||
explicit CardRelation(const QString &_name = QString(),
|
||||
CardRelationType _attachType = CardRelationType::DoesNotAttach,
|
||||
bool _isCreateAllExclusion = false,
|
||||
bool _isVariableCount = false,
|
||||
int _defaultCount = 1,
|
||||
bool _isPersistent = false);
|
||||
bool _isPersistent = false,
|
||||
bool _isFaceDown = false);
|
||||
|
||||
/**
|
||||
* @brief Returns the name of the related card.
|
||||
|
|
@ -151,6 +154,16 @@ public:
|
|||
{
|
||||
return isPersistent;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Returns whether the relation creates the token facedown.
|
||||
*
|
||||
* @return True if facedown, false otherwise.
|
||||
*/
|
||||
[[nodiscard]] bool getIsFaceDown() const
|
||||
{
|
||||
return isFaceDown;
|
||||
}
|
||||
};
|
||||
|
||||
#endif // COCKATRICE_CARD_RELATION_H
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue