-
Notifications
You must be signed in to change notification settings - Fork 2
/
Heroes.h
105 lines (90 loc) · 1.99 KB
/
Heroes.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#pragma once
#include "Cards.h"
// Heroes are a type of card
class Hero : public Card
{
// Heroes have health and attack points
protected:
std::string m_name;
unsigned int m_health_points;
public:
Hero() : Card(0), m_name("Default"), m_health_points(20) {}
Hero(std::string name) : Card(0), m_name(name), m_health_points(20) {}
virtual ~Hero() {}
// Print the type of the card
virtual void printType() const override { std::cout << "Hero" << std::endl; }
// Print the name of the hero
virtual void printName() const override { std::cout << m_name << std::endl; }
};
class Rafaam : public Hero
{
public:
Rafaam() : Hero("Arch-Villain Rafaam") {}
virtual~Rafaam() {}
};
class Brukan : public Hero
{
public:
Brukan() : Hero("Bru'kan") {}
virtual~Brukan() {}
};
class Hooktusk : public Hero
{
public:
Hooktusk() : Hero("Captain Hooktusk") {}
virtual~Hooktusk() {}
};
class Cookie : public Hero
{
public:
Cookie() : Hero("Cookie the Cook") {}
virtual~Cookie() {}
};
class Omu : public Hero
{
public:
Omu() : Hero("Forest Warden Omu") {}
virtual~Omu() {}
};
class Galwing : public Hero
{
public:
Galwing() : Hero("Galwing") {}
virtual~Galwing() {}
};
class Nguyen : public Hero
{
public:
Nguyen() : Hero("Master Nguyen") {}
virtual~Nguyen() {}
};
class Millhouse : public Hero
{
public:
Millhouse() : Hero("Millhouse Manastorm") {}
virtual~Millhouse() {}
};
class Holmes : public Hero
{
public:
Holmes() : Hero("Murloc Holmes") {}
virtual~Holmes() {}
};
class Mutanus : public Hero
{
public:
Mutanus() : Hero("Mutanus the Devourer") {}
virtual~Mutanus() {}
};
class Pyramad : public Hero
{
public:
Pyramad() : Hero("Pyramad") {}
virtual~Pyramad() {}
};
class Silas : public Hero
{
public:
Silas() : Hero("Silas Darkmoon") {}
virtual~Silas() {}
};