My Project
 
Loading...
Searching...
No Matches
heroclass.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <vector>
5
6#include "badge.h"
7
8class Hero;
9
11public:
19 static const char* WARRIOR;
20 static const char* MAGE;
21 static const char* ROGUE;
22 static const char* HUNTRESS;
23private:
24 static const char* WAR_PERKS[];
25 static const char* MAG_PERKS[];
26 static const char* ROG_PERKS[];
27 static const char* HUN_PERKS[];
28
29 static const char* CLASS;
30
31 std::string _title;
32 Type _type;
33
34 static void initCommon(Hero* hero);
35 static void initWarrior(Hero* hero);
36 static void initMage(Hero* hero);
37 static void initRogue(Hero* hero);
38 static void initHuntress(Hero* hero);
39public:
40 HeroClass(const std::string& title);
41 HeroClass(const HeroClass& cl);
42
43 void initHero(Hero* hero);
44 std::string title() { return _title; }
45 Type type() const { return _type; }
46 std::string name();
47 std::string spritesheet();
48 void perks(std::vector<std::string>& out);
49 void storeInBundle(/*Bundle bundle*/);
50 static HeroClass restoreInBundle(/*Bundle bundle*/);
51 int ordinal() { return _type; }
52 bool isNull() { return _type == E_NONE; }
53 void setNull() { _type == E_NONE; _title = ""; }
54
55 bool operator < (const HeroClass &c) const
56 {
57 return _type < c._type;
58 }
59
60 bool operator == (const HeroClass &c) const
61 {
62 return _type == c._type && _title.compare(c._title) == 0;
63 }
64
66};
67
68#include "bundle.h"
69
70class HeroSubClass{
71private:
72 std::string title;
73 std::string desc;
74 std::string name;
75
76 static const std::string SUBCLASS;
77
78 HeroSubClass(const std::string& name, const std::string& title, const std::string& desc)
79 {
80 this->title = title;
81 this->desc = desc;
82
83 this->name = name;
84
85 subClasses.insert(std::make_pair(name, *this));
86 }
87
88public:
89 static std::map<std::string, HeroSubClass> subClasses;
90
91 static HeroSubClass NONE;
92 static HeroSubClass GLADIATOR;
93 static HeroSubClass BERSERKER;
94 static HeroSubClass WARLOCK;
95 static HeroSubClass BATTLEMAGE;
96 static HeroSubClass ASSASSIN;
97 static HeroSubClass FREERUNNER;
98 static HeroSubClass SNIPER;
99 static HeroSubClass WARDEN;
100
101public:
102 std::string Title() { return title; }
103 std::string Desc() { return desc; }
104
105 void storeInBundle(Bundle* bundle);
106
107 static HeroSubClass restoreInBundle(Bundle* bundle);
108
109 bool operator == (const HeroSubClass &c) const
110 {
111 return name.compare(c.name) == 0;
112 }
113 bool operator != (const HeroSubClass &c) const
114 {
115 return name.compare(c.name) != 0;
116 }
117};
Definition badge.h:16
static const char * HUNTRESS
Definition heroclass.h:22
std::string title()
Definition heroclass.h:44
bool operator<(const HeroClass &c) const
Definition heroclass.h:55
void perks(std::vector< std::string > &out)
Definition heroclass.cpp:190
void storeInBundle()
void setNull()
Definition heroclass.h:53
Badges::Badge masteryBadge()
Definition heroclass.cpp:226
Type
Definition heroclass.h:12
@ E_MAGE
Definition heroclass.h:14
@ E_ROGUE
Definition heroclass.h:15
@ E_NONE
Definition heroclass.h:17
@ E_HUNTRESS
Definition heroclass.h:16
@ E_WARRIOR
Definition heroclass.h:13
static const char * MAGE
Definition heroclass.h:20
std::string name()
Definition heroclass.cpp:163
static const char * WARRIOR
Definition heroclass.h:19
bool operator==(const HeroClass &c) const
Definition heroclass.h:60
void initHero(Hero *hero)
Definition heroclass.cpp:131
HeroClass(const std::string &title)
Definition heroclass.cpp:101
std::string spritesheet()
Definition heroclass.cpp:168
Type type() const
Definition heroclass.h:45
bool isNull()
Definition heroclass.h:52
static const char * ROGUE
Definition heroclass.h:21
static HeroClass restoreInBundle()
int ordinal()
Definition heroclass.h:51
Definition hero.h:18
Definition heroclass.h:70
std::string Desc()
Definition heroclass.h:103
void storeInBundle(Bundle *bundle)
Definition heroclass.cpp:264
std::string Title()
Definition heroclass.h:102
static HeroSubClass restoreInBundle(Bundle *bundle)
Definition heroclass.cpp:269
static HeroSubClass BATTLEMAGE
Definition heroclass.h:95
bool operator==(const HeroSubClass &c) const
Definition heroclass.h:109
static HeroSubClass ASSASSIN
Definition heroclass.h:96
static HeroSubClass BERSERKER
Definition heroclass.h:93
static HeroSubClass WARLOCK
Definition heroclass.h:94
static HeroSubClass SNIPER
Definition heroclass.h:98
static HeroSubClass FREERUNNER
Definition heroclass.h:97
static std::map< std::string, HeroSubClass > subClasses
Definition heroclass.h:89
static HeroSubClass NONE
Definition heroclass.h:91
bool operator!=(const HeroSubClass &c) const
Definition heroclass.h:113
static HeroSubClass WARDEN
Definition heroclass.h:99
static HeroSubClass GLADIATOR
Definition heroclass.h:92