-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJob.h
163 lines (136 loc) · 52.4 KB
/
Job.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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#ifndef JOB_H
#define JOB_H
//#include"Quest.h"
namespace job {
enum class KindOfFields {
WhiteCollar,
Merchant,
BlackGuard
};
enum class KindOfJobs {
//WhiteCollar
OfficeWorker,
StockTrader,
Enterpriser,
//Merchant
Farmer,
Auctioneer,
Wholesaler,
//BlackGuard
Hitman,
Gambler,
DrugsDealer
};
class IJobSwitch {
public:
virtual void quest() = 0;
};
class Job {
private:
KindOfFields field;
KindOfJobs job;
IJobSwitch* iJob;
int rate = 0;
int jobLevel = 1;
float jobExp = 0.0f;
public:
Job();
~Job();
void setRate(int rate);
void setKindOfFields(KindOfFields field);
void setKindOfJobs(KindOfJobs job);
void setSwitchJob(IJobSwitch* iJob);
void addRate(int value);
KindOfFields getKindOfFields();
KindOfJobs getKindOfJobs();
int getRate();
};
//Tax
typedef struct Tax {
float total = 0.0f;
float rate = 0.0f;
}Tax;
//WhiteCollar
class WhiteCollar : public IJobSwitch {
private:
protected:
Tax tax;
public:
void addTax(float tax);
void setTaxRate(float rate);
void clearTax();
Tax getTax();
void quest() override;
};
class OfficeWorker : public WhiteCollar {
private:
public:
// 퀘스트 수행
void quest() override {}
};
class StockTrader : public WhiteCollar {
private:
public:
void buy();
void sell();
// 퀘스트 수행
void quest() override {
}
};
class Enterpriser : public WhiteCollar {
private:
public:
// 퀘스트 수행
void quest() override {}
};
//Merchant
class Merchant : public IJobSwitch {
private:
protected:
Tax tax;
public:
void addTax(float tax);
void setTaxRate(float rate);
void clearTax();
Tax getTax();
void quest() override {}
};
class Farmer : public Merchant {
private:
public:
void quest() override {}
};
class Auctioneer : public Merchant {
private:
public:
void quest() override {}
};
class Wholesaler : public Merchant {
private:
public:
void quest() override {}
};
//BlackGuard
class BlackGuard : public IJobSwitch {
private:
public:
virtual void quest() {}
};
class Hitman : public BlackGuard {
private:
public:
void killing();
void quest() override {}
};
class Gambler : public BlackGuard {
private:
public:
void quest() override {}
};
class DrugsDealer : public BlackGuard {
private:
public:
void quest() override {}
};
}
#endif //JOB_H