Card.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_CARD_HPP
8 #define ROSETTASTONE_CARD_HPP
9 
12 
13 #include <map>
14 #include <optional>
15 #include <string>
16 #include <vector>
17 
18 namespace RosettaStone
19 {
20 class Power;
21 
27 class Card
28 {
29  public:
31  Card() = default;
32 
34  virtual ~Card() = default;
35 
37  Card(const Card& card) = default;
38 
40  Card(Card&& card) = default;
41 
43  Card& operator=(const Card& card) = default;
44 
46  Card& operator=(Card&& card) = default;
47 
49  void Initialize();
50 
54  bool HasMechanic(GameTag mechanic) const;
55 
58  std::size_t GetMaxAllowedInDeck() const;
59 
61  virtual void ShowBriefInfo() const;
62 
64  virtual void ShowInfo() const;
65 
72 
73  std::string id;
74  std::string name;
75  std::string text;
76 
77  std::optional<std::size_t> attack;
78  std::optional<std::size_t> health;
79  std::optional<std::size_t> spellDamage;
80  std::optional<std::size_t> durability;
81 
82  std::size_t cost = 0;
83 
84  std::vector<GameTag> mechanics;
85  std::map<PlayReq, int> playRequirements;
86  std::vector<std::string> entourages;
87 
89 
90  std::size_t maxAllowedInDeck = 0;
91  bool isCollectible = false;
92 };
93 } // namespace RosettaStone
94 
95 #endif // ROSETTASTONE_CARD_HPP
std::optional< std::size_t > spellDamage
Definition: Card.hpp:79
std::vector< std::string > entourages
Definition: Card.hpp:86
std::optional< std::size_t > durability
Definition: Card.hpp:80
CardSet cardSet
Definition: Card.hpp:68
std::string text
Definition: Card.hpp:75
std::size_t GetMaxAllowedInDeck() const
std::string name
Definition: Card.hpp:74
Power power
Definition: Card.hpp:88
bool isCollectible
Definition: Card.hpp:91
Card class.
Definition: Card.hpp:27
std::string id
Definition: Card.hpp:73
Power class.
Definition: Power.hpp:24
std::size_t maxAllowedInDeck
Definition: Card.hpp:90
CardClass cardClass
Definition: Card.hpp:69
std::map< PlayReq, int > playRequirements
Definition: Card.hpp:85
std::optional< std::size_t > attack
Definition: Card.hpp:77
Card()=default
Default constructor.
std::optional< std::size_t > health
Definition: Card.hpp:78
std::vector< GameTag > mechanics
Definition: Card.hpp:84
virtual void ShowInfo() const
Prints card information.
Race race
Definition: Card.hpp:71
virtual void ShowBriefInfo() const
Prints brief card information.
CardType cardType
Definition: Card.hpp:70
Faction faction
Definition: Card.hpp:67
Definition: AccountInfo.hpp:14
void Initialize()
Initializes card data.
virtual ~Card()=default
Default destructor.
std::size_t cost
Definition: Card.hpp:82
Card & operator=(const Card &card)=default
Default copy assignment operator.
bool HasMechanic(GameTag mechanic) const
Rarity rarity
Definition: Card.hpp:66