/
SKillType.h
73 lines (57 loc) · 1.19 KB
/
SKillType.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
#pragma once
#include <string>
enum SkillType {Dragon, Barbarian, Archer };
struct Skill {
enum SkillType { Rock, Paper, Scissors };
std::string name;
SkillType type;
Skill() {}//SkillType constructor
Skill(std::string n, SkillType t) : name(n), type(t) {}
};
struct Weapon{
std::string name;
Weapon() {}
Weapon(std::string n) : name(n){}
};
class SkillType
{
public:
SkillType(const SkillTypeType &t);
~SkillType();//SkillType deconstructor
static SkillType GetSkillType(const std::string &SkillTypeName);
/**
* Returns the skill type
*
*@return the name of the character
*/
SkillType GetSkillType() const;
/**
* Returns the Rock skill type
*
*@return the rock skill type to the Character
*/
Skill GetRockSkill() const;
/**
* Returns the paper skill type
*
*@return the paper skill type to the Character
*/
Skill GetPaperSkill() const;
/**
* Returns the scissors skill type
*
*@return the scissors skill type to the Character
*/
Skill GetScissorsSkill() const;
protected:
/** Skill Type name. */
std::string GetSkillTypeName() const;
};
private:
const SkillType _skillType;
Skill _rock;
Skill _paper;
Skill _scissors;
Weapon _weapon;
std::string _name;
};