add pow/toughness filters (#2169)

This commit is contained in:
Zach H 2016-09-20 18:17:53 -04:00 committed by GitHub
parent 65c98c8422
commit 6c7ba06930
4 changed files with 30 additions and 2 deletions

View file

@ -35,6 +35,10 @@ const char *CardFilter::attrName(Attr a)
return "cmc"; return "cmc";
case AttrRarity: case AttrRarity:
return "rarity"; return "rarity";
case AttrPow:
return "power";
case AttrTough:
return "toughness";
default: default:
return ""; return "";
} }

View file

@ -24,6 +24,8 @@ public:
AttrManaCost, AttrManaCost,
AttrCmc, AttrCmc,
AttrRarity, AttrRarity,
AttrPow,
AttrTough,
AttrEnd AttrEnd
}; };

View file

@ -224,13 +224,29 @@ bool FilterItem::acceptCmc(const CardInfo *info) const
return (info->getCmc() == term); return (info->getCmc() == term);
} }
bool FilterItem::acceptPower(const CardInfo *info) const
{
int slash = info->getPowTough().indexOf("/");
if (slash != -1)
return (info->getPowTough().mid(0,slash) == term);
return false;
}
bool FilterItem::acceptToughness(const CardInfo *info) const
{
int slash = info->getPowTough().indexOf("/");
if (slash != -1)
return (info->getPowTough().mid(slash+1) == term);
return false;
}
bool FilterItem::acceptRarity(const CardInfo *info) const bool FilterItem::acceptRarity(const CardInfo *info) const
{ {
foreach (QString rareLevel, info->getRarities()) foreach (QString rareLevel, info->getRarities())
{
if (rareLevel.compare(term, Qt::CaseInsensitive) == 0) if (rareLevel.compare(term, Qt::CaseInsensitive) == 0)
return true; return true;
}
return false; return false;
} }
@ -254,6 +270,10 @@ bool FilterItem::acceptCardAttr(const CardInfo *info, CardFilter::Attr attr) con
return acceptCmc(info); return acceptCmc(info);
case CardFilter::AttrRarity: case CardFilter::AttrRarity:
return acceptRarity(info); return acceptRarity(info);
case CardFilter::AttrPow:
return acceptPower(info);
case CardFilter::AttrTough:
return acceptToughness(info);
default: default:
return true; /* ignore this attribute */ return true; /* ignore this attribute */
} }

View file

@ -118,6 +118,8 @@ public:
bool acceptSet(const CardInfo *info) const; bool acceptSet(const CardInfo *info) const;
bool acceptManaCost(const CardInfo *info) const; bool acceptManaCost(const CardInfo *info) const;
bool acceptCmc(const CardInfo *info) const; bool acceptCmc(const CardInfo *info) const;
bool acceptPower(const CardInfo *info) const;
bool acceptToughness(const CardInfo *info) const;
bool acceptRarity(const CardInfo *info) const; bool acceptRarity(const CardInfo *info) const;
bool acceptCardAttr(const CardInfo *info, CardFilter::Attr attr) const; bool acceptCardAttr(const CardInfo *info, CardFilter::Attr attr) const;
}; };