From 6c7ba069308c44aada6634375b87c1b5078eb701 Mon Sep 17 00:00:00 2001 From: Zach H Date: Tue, 20 Sep 2016 18:17:53 -0400 Subject: [PATCH] add pow/toughness filters (#2169) --- cockatrice/src/cardfilter.cpp | 4 ++++ cockatrice/src/cardfilter.h | 2 ++ cockatrice/src/filtertree.cpp | 24 ++++++++++++++++++++++-- cockatrice/src/filtertree.h | 2 ++ 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/cockatrice/src/cardfilter.cpp b/cockatrice/src/cardfilter.cpp index 63f9923c..3af64943 100644 --- a/cockatrice/src/cardfilter.cpp +++ b/cockatrice/src/cardfilter.cpp @@ -35,6 +35,10 @@ const char *CardFilter::attrName(Attr a) return "cmc"; case AttrRarity: return "rarity"; + case AttrPow: + return "power"; + case AttrTough: + return "toughness"; default: return ""; } diff --git a/cockatrice/src/cardfilter.h b/cockatrice/src/cardfilter.h index 6c8fa25f..85b827e8 100644 --- a/cockatrice/src/cardfilter.h +++ b/cockatrice/src/cardfilter.h @@ -24,6 +24,8 @@ public: AttrManaCost, AttrCmc, AttrRarity, + AttrPow, + AttrTough, AttrEnd }; diff --git a/cockatrice/src/filtertree.cpp b/cockatrice/src/filtertree.cpp index 7ceee411..311855cd 100644 --- a/cockatrice/src/filtertree.cpp +++ b/cockatrice/src/filtertree.cpp @@ -224,13 +224,29 @@ bool FilterItem::acceptCmc(const CardInfo *info) const 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 { foreach (QString rareLevel, info->getRarities()) - { if (rareLevel.compare(term, Qt::CaseInsensitive) == 0) return true; - } return false; } @@ -254,6 +270,10 @@ bool FilterItem::acceptCardAttr(const CardInfo *info, CardFilter::Attr attr) con return acceptCmc(info); case CardFilter::AttrRarity: return acceptRarity(info); + case CardFilter::AttrPow: + return acceptPower(info); + case CardFilter::AttrTough: + return acceptToughness(info); default: return true; /* ignore this attribute */ } diff --git a/cockatrice/src/filtertree.h b/cockatrice/src/filtertree.h index 3185abfa..f03c4316 100644 --- a/cockatrice/src/filtertree.h +++ b/cockatrice/src/filtertree.h @@ -118,6 +118,8 @@ public: bool acceptSet(const CardInfo *info) const; bool acceptManaCost(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 acceptCardAttr(const CardInfo *info, CardFilter::Attr attr) const; };