Cards.hpp
Go to the documentation of this file.
1 // Copyright (c) 2019 Chris Ohk, Youngjoong Kim, SeungHyun Jeon
2 
3 // We are making my contributions/submissions to this project solely in our
4 // personal capacity and are not conveying any rights to any intellectual
5 // property of any third parties.
6 
7 #ifndef ROSETTASTONE_CARDS_HPP
8 #define ROSETTASTONE_CARDS_HPP
9 
10 #include <Rosetta/Cards/Card.hpp>
11 
12 #include <vector>
13 
14 namespace RosettaStone
15 {
22 {
28 
29  std::string name;
30  size_t costMin = 0, costMax = 0;
31  size_t attackMin = 0, attackMax = 0;
32  size_t healthMin = 0, healthMax = 0;
33 };
34 
40 class Cards
41 {
42  public:
44  Cards(const Cards& cards) = delete;
45 
47  Cards(Cards&& cards) = delete;
48 
50  Cards& operator=(const Cards& cards) = delete;
51 
53  Cards& operator=(Cards&& cards) = delete;
54 
57  static Cards& GetInstance();
58 
61  const std::vector<Card>& GetAllCards() const;
62 
66  Card FindCardByID(const std::string& id);
67 
71  std::vector<Card> FindCardByRarity(Rarity rarity);
72 
76  std::vector<Card> FindCardByClass(CardClass cardClass);
77 
81  std::vector<Card> FindCardBySet(CardSet cardSet);
82 
86  std::vector<Card> FindCardByType(CardType cardType);
87 
91  std::vector<Card> FindCardByRace(Race race);
92 
96  Card FindCardByName(const std::string& name);
97 
102  std::vector<Card> FindCardByCost(std::size_t minVal, std::size_t maxVal);
103 
108  std::vector<Card> FindCardByAttack(std::size_t minVal, std::size_t maxVal);
109 
114  std::vector<Card> FindCardByHealth(std::size_t minVal, std::size_t maxVal);
115 
120  std::vector<Card> FindCardBySpellDamage(std::size_t minVal,
121  std::size_t maxVal);
122 
126  std::vector<Card> FindCardByMechanics(std::vector<GameTag> mechanics);
127 
131  Card GetHeroCard(CardClass cardClass);
132 
136  Card GetDefaultHeroPower(CardClass cardClass);
137 
138  private:
140  Cards();
141 
143  ~Cards();
144 
145  std::vector<Card> m_cards;
146 };
147 } // namespace RosettaStone
148 
149 #endif // ROSETTASTONE_CARDS_HPP
CardClass playerClass
Definition: Cards.hpp:24
Card GetHeroCard(CardClass cardClass)
size_t costMax
Definition: Cards.hpp:30
std::vector< Card > FindCardByClass(CardClass cardClass)
Card class.
Definition: Card.hpp:27
std::vector< Card > FindCardByMechanics(std::vector< GameTag > mechanics)
size_t attackMin
Definition: Cards.hpp:31
Rarity rarity
Definition: Cards.hpp:23
Race race
Definition: Cards.hpp:26
std::vector< Card > FindCardByCost(std::size_t minVal, std::size_t maxVal)
std::string name
Definition: Cards.hpp:29
const std::vector< Card > & GetAllCards() const
size_t attackMax
Definition: Cards.hpp:31
std::vector< Card > FindCardByType(CardType cardType)
std::vector< Card > FindCardByRarity(Rarity rarity)
std::vector< Card > FindCardByAttack(std::size_t minVal, std::size_t maxVal)
GameTag mechanic
Definition: Cards.hpp:27
std::vector< Card > FindCardBySpellDamage(std::size_t minVal, std::size_t maxVal)
size_t healthMin
Definition: Cards.hpp:32
Search filter structure.
Definition: Cards.hpp:21
Card FindCardByID(const std::string &id)
Cards & operator=(const Cards &cards)=delete
Deleted copy assignment operator.
std::vector< Card > FindCardBySet(CardSet cardSet)
Cards class.
Definition: Cards.hpp:40
size_t healthMax
Definition: Cards.hpp:32
std::vector< Card > FindCardByRace(Race race)
Card GetDefaultHeroPower(CardClass cardClass)
CardType cardType
Definition: Cards.hpp:25
size_t costMin
Definition: Cards.hpp:30
Definition: AccountInfo.hpp:14
static Cards & GetInstance()
Card FindCardByName(const std::string &name)
std::vector< Card > FindCardByHealth(std::size_t minVal, std::size_t maxVal)