Hero.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_HERO_HPP
8 #define ROSETTASTONE_HERO_HPP
9 
13 
14 namespace RosettaStone
15 {
22 class Hero : public Character
23 {
24  public:
26  Hero() = default;
27 
31  Hero(Player& _owner, Card& _card);
32 
34  ~Hero();
35 
37  Hero(const Hero& hero) = delete;
38 
40  Hero(Hero&& hero) = delete;
41 
43  Hero& operator=(const Hero& hero) = delete;
44 
46  Hero& operator=(Hero&& hero) = delete;
47 
49  void Destroy() override;
50 
53  void AddWeapon(Weapon& _weapon);
54 
56  void RemoveWeapon();
57 
60  bool HasWeapon() const;
61 
64  size_t GetAttack() const override;
65 
66  HeroPower* heroPower = nullptr;
67  Weapon* weapon = nullptr;
68 
69  std::size_t fatigue = 0;
70 };
71 } // namespace RosettaStone
72 
73 #endif // ROSETTASTONE_HERO_HPP
Weapon class.
Definition: Weapon.hpp:21
~Hero()
Default destructor.
Card class.
Definition: Card.hpp:27
bool HasWeapon() const
Hero()=default
Default constructor.
void AddWeapon(Weapon &_weapon)
size_t GetAttack() const override
Hero class.
Definition: Hero.hpp:22
void Destroy() override
Destroys hero.
Player class.
Definition: Player.hpp:33
Weapon * weapon
Definition: Hero.hpp:67
Definition: AccountInfo.hpp:14
Hero & operator=(const Hero &hero)=delete
Copy assignment operator.
void RemoveWeapon()
Removes weapon from hero.
HeroPower class.
Definition: HeroPower.hpp:19
std::size_t fatigue
Definition: Hero.hpp:69
HeroPower * heroPower
Definition: Hero.hpp:66
Abstract character class that stores hero and minion data.
Definition: Character.hpp:21