My Project
 
Loading...
Searching...
No Matches
buff.h
Go to the documentation of this file.
1#pragma once
2
3#include "actor.h"
4#include "typedefine.h"
5#include "bpt.h"
6#include "herodoom.h"
7
8class FlavourBuff;
9
10class Buff :public Actor{
11public:
12 Buff();
14
15 virtual bool attachTo(Char* target);
16 virtual void detach();
17
18 virtual bool act() {
19 diactivate();
20 return true;
21 }
22
23 virtual int icon();
24
25 static Buff* append(Char* target, const std::string& buff);
26 static FlavourBuff* append(Char* target, const std::string& buffClass, float duration);
27 static Buff* affect(Char* target, const std::string& buffClass);
28 static FlavourBuff* affect(Char* target, const std::string& buffClass, float duration);
29 static FlavourBuff* prolong(Char* target, const std::string& buffClass, float duration);
30
31 static void detach(Buff* buff);
32 static void detach(Char* target, const std::string& cl);
33
34 virtual std::string toString() = 0;
35};
36
38
39class FlavourBuff :public Buff{
40public:
41 virtual bool act() { detach(); return true; }
42 virtual std::string getClassName(){ return "FlavourBuff"; }
43 virtual std::string toString(){ return ""; };
44};
45
46class Light :public FlavourBuff{
47public:
49
50 static const float DURATION;
51 static const int DISTANCE = 4;
52
53 virtual boolean attachTo(Char* target);
54 virtual void detach();
55
56 virtual int icon();
57
58 virtual String toString() {
59 return BPT::getText("lang.light");
60 }
61};
62
64private:
65 static const float DURATION;
66public:
68
69 virtual boolean attachTo(Char* target);
70 virtual void detach();
71 virtual int icon();
72 virtual String toString() {
73 return BPT::getText("lang.buffparalysis");
74 }
75 static float duration(Char* ch);
76 static void unfreeze(Char* ch);
77};
78
79class Frost :public FlavourBuff{
80private:
81 static const float DURATION;
82
83public:
85
86 virtual boolean attachTo(Char* target);
87 virtual void detach();
88
89 virtual int icon();
90 virtual String toString() {
91 return BPT::getText("lang.frost");
92 }
93 static float duration(Char* ch);
94};
95
96class BuffSlow :public FlavourBuff{
97private:
98 static const float DURATION;
99
100public:
102
103 virtual int icon();
104 virtual String toString() {
105 return BPT::getText("lang.buffslow_str");
106 }
107 static float duration(Char* ch);
108};
109
110class Vertigo :public FlavourBuff{
111public:
112 static const float DURATION;
113
115
116 virtual int icon();
117 virtual String toString() {
118 return BPT::getText("lang.vertigo_str");
119 }
120 static float duration(Char* ch);
121};
122
123class Terror :public FlavourBuff{
124private:
125 static const String OBJECT;
126public:
127 static const float DURATION;
128
130
131 Terror();
133
134 virtual void storeInBundle(Bundle* bundle);
135 virtual void restoreFromBundle(Bundle* bundle);
136
137 virtual int icon();
138 virtual String toString() {
139 return BPT::getText("lang.terror_str");
140 }
141 static void recover(Char* target);
142};
143
144class Cripple :public FlavourBuff{
145public:
147
148 static const float DURATION;
149
150 virtual int icon();
151 virtual String toString() {
152 return BPT::getText("lang.crippled_str");;
153 }
154};
155
156class Bleeding :public Buff, public Object{
157protected:
158 int level;
159
160private:
161 static const String LEVEL;
162
163public:
166
167 virtual void storeInBundle(Bundle* bundle);
168 virtual void restoreFromBundle(Bundle* bundle);
169
170 void set(int level) {
171 this->level = level;
172 };
173 virtual int icon();
174 virtual String toString() {
175 return BPT::getText("lang.Bleeding");
176 }
177 virtual boolean act();
178};
179
180class Amok :public FlavourBuff{
181public:
183 virtual int icon();
184 virtual String toString() {
185 return BPT::getText("lang.Amok");
186 }
187};
188
189class Sleep :public FlavourBuff{
190public:
191 static const float SWS;
193 virtual String toString() {
194 return "Sleep";
195 }
196};
197
198class Ooze :public Buff, public Object{
199private:
200 static const String TXT_HERO_KILLED;
201
202public:
204
205 Ooze();
206
207 virtual int icon();
208 virtual String toString() {
209 return BPT::getText("lang.Caustic_ooze");
210 }
211 virtual boolean act();
214};
215
217public:
218 static const float DURATION;
219 virtual boolean attachTo(Char* target);
220 virtual void detach();
221 virtual int icon();
222 virtual String toString() {
223 return BPT::getText("lang.Levitating");// "Levitating";
224 }
225};
226
228public:
229 static const float DURATION;
230
231 virtual boolean attachTo(Char* target);
232 virtual void detach();
233 virtual int icon();
234 virtual String toString() {
235 return BPT::getText("lang.Invisible");// "Invisible";
236 }
238 static void dispel();
239};
240
241class Shadows :public Invisibility{
242protected:
243 float left;
244
245private:
246 static const String LEFT;
247
248public:
249 virtual void storeInBundle(Bundle* bundle);
250 virtual void restoreFromBundle(Bundle* bundle);
251
252 virtual boolean attachTo(Char* target);
253 virtual void detach();
254 virtual boolean act();
255 void prolong() {
256 left = 2;
257 }
258 virtual int icon();
259 virtual String toString() {
260 return BPT::getText("lang.Shadowmelded");// "Shadowmelded";
261 }
263};
264
265class Roots :public FlavourBuff{
266public:
268 virtual boolean attachTo(Char* target);
269 virtual void detach();
270 virtual int icon();
271 virtual String toString() {
272 return BPT::getText("lang.Rooted");// "Rooted";
273 }
274};
275
276class Speed :public FlavourBuff{
277public:
278 static const float DURATION;
280 virtual String toString() {
281 return "";
282 }
283};
284
286public:
287 static const float DURATION;
290
291 MindVision();
292 virtual int icon();
293 virtual String toString() {
294 return BPT::getText("lang.Mind_vision");// "Mind vision";
295 }
296 virtual void detach();
297};
298
299class Charm :public FlavourBuff{
300private:
301 static const String OBJECT;
302public:
304 Charm();
306
307 virtual void storeInBundle(Bundle* bundle);
308 virtual void restoreFromBundle(Bundle* bundle);
309
310 virtual int icon();
311 virtual String toString() {
312 return BPT::getText("lang.Charmed");// "Charmed";
313 }
314 static float durationFactor(Char* ch);
315};
316
317class Barkskin :public Buff{
318private:
319 int level;
320
321public:
322 Barkskin();
323 virtual boolean act();
324 int Level() {
325 return level;
326 }
327
328 void Level(int value) {
329 if (level < value) {
330 level = value;
331 }
332 }
333 virtual int icon();
334 virtual String toString() {
335 return BPT::getText("lang.Barkskin");// "Barkskin";
336 }
338};
339
340class Hunger :public Buff ,public HeroDoom, public Object{
341private:
342 static const float STEP;
343 static const String TXT_HUNGRY;
344 static const String TXT_STARVING;
345 static const String TXT_DEATH ;
346
347 float level;
348
349 static const String LEVEL;
350public:
351 static const float HUNGRY;
352 static const float STARVING;
353
356
357 virtual void storeInBundle(Bundle* bundle);
358 virtual void restoreFromBundle(Bundle* bundle);
359 virtual boolean act();
360
361 void satisfy(float energy);
362 boolean isStarving() {
363 return level >= STARVING;
364 }
365 virtual int icon();
366 virtual String toString(){
367 if (level < STARVING) {
368 return BPT::getText("lang.Hunger_toString_Hungry");// "Hungry";
369 }
370 else {
371 return BPT::getText("lang.Hunger_toString_Starving");//"Starving";
372 }
373 }
374 virtual void onDeath();
375};
376
377class Regeneration :public Buff{
378private:
379 static const float REGENERATION_DELAY;
380
381public:
382 virtual boolean act();
384
385 virtual String toString(){ return "Regeneration"; }
386};
Actor()
Definition actor.cpp:84
void diactivate()
Definition actor.h:59
Definition buff.h:180
CLASSNAME(Amok)
virtual int icon()
Definition buff.cpp:350
virtual String toString()
Definition buff.h:184
static std::string getText(const std::string &key)
Definition bpt.cpp:26
virtual int icon()
Definition buff.cpp:608
Barkskin()
Definition buff.cpp:584
virtual String toString()
Definition buff.h:334
CLASSNAME(Barkskin)
virtual boolean act()
Definition buff.cpp:589
int Level()
Definition buff.h:324
void Level(int value)
Definition buff.h:328
Definition buff.h:156
virtual boolean act()
Definition buff.cpp:315
CLASSNAME(Bleeding)
virtual String toString()
Definition buff.h:174
virtual void restoreFromBundle(Bundle *bundle)
Definition buff.cpp:304
virtual void storeInBundle(Bundle *bundle)
Definition buff.cpp:298
void set(int level)
Definition buff.h:170
int level
Definition buff.h:158
virtual int icon()
Definition buff.cpp:310
CLASSOBJECT(Bleeding)
Definition buff.h:10
virtual int icon()
Definition buff.cpp:56
virtual void detach()
Definition buff.cpp:38
Char * target
Definition buff.h:13
Buff()
Definition buff.cpp:20
static FlavourBuff * prolong(Char *target, const std::string &buffClass, float duration)
Definition buff.cpp:95
virtual bool act()
Definition buff.h:18
virtual std::string toString()=0
static Buff * affect(Char *target, const std::string &buffClass)
Definition buff.cpp:75
virtual bool attachTo(Char *target)
Definition buff.cpp:25
static Buff * append(Char *target, const std::string &buff)
Definition buff.cpp:61
Definition buff.h:63
virtual boolean attachTo(Char *target)
Definition buff.cpp:136
virtual int icon()
Definition buff.cpp:153
virtual void detach()
Definition buff.cpp:147
virtual String toString()
Definition buff.h:72
static float duration(Char *ch)
Definition buff.cpp:158
CLASSNAME(BuffParalysis)
static void unfreeze(Char *ch)
Definition buff.cpp:164
Definition buff.h:96
CLASSNAME(BuffSlow)
virtual String toString()
Definition buff.h:104
virtual int icon()
Definition buff.cpp:224
static float duration(Char *ch)
Definition buff.cpp:229
Definition char.h:9
Charm()
Definition buff.cpp:552
int object
Definition buff.h:303
virtual void storeInBundle(Bundle *bundle)
Definition buff.cpp:557
virtual void restoreFromBundle(Bundle *bundle)
Definition buff.cpp:563
virtual int icon()
Definition buff.cpp:569
CLASSNAME(Charm)
virtual String toString()
Definition buff.h:311
static float durationFactor(Char *ch)
Definition buff.cpp:574
Definition buff.h:144
static const float DURATION
Definition buff.h:148
virtual int icon()
Definition buff.cpp:289
virtual String toString()
Definition buff.h:151
CLASSNAME(Cripple)
Definition buff.h:39
virtual bool act()
Definition buff.h:41
virtual std::string toString()
Definition buff.h:43
virtual std::string getClassName()
Definition buff.h:42
Definition buff.h:79
CLASSNAME(Frost)
virtual String toString()
Definition buff.h:90
virtual boolean attachTo(Char *target)
Definition buff.cpp:176
virtual void detach()
Definition buff.cpp:203
virtual int icon()
Definition buff.cpp:209
static float duration(Char *ch)
Definition buff.cpp:214
Definition herodoom.h:4
Definition buff.h:340
boolean isStarving()
Definition buff.h:362
virtual void storeInBundle(Bundle *bundle)
Definition buff.cpp:623
virtual boolean act()
Definition buff.cpp:635
virtual String toString()
Definition buff.h:366
CLASSOBJECT(Hunger)
static const float HUNGRY
Definition buff.h:351
virtual void restoreFromBundle(Bundle *bundle)
Definition buff.cpp:629
void satisfy(float energy)
Definition buff.cpp:700
virtual int icon()
Definition buff.cpp:713
static const float STARVING
Definition buff.h:352
CLASSNAME(Hunger)
virtual void onDeath()
Definition buff.cpp:726
Definition buff.h:227
virtual boolean attachTo(Char *target)
Definition buff.cpp:418
virtual void detach()
Definition buff.cpp:429
static void dispel()
Definition buff.cpp:440
static const float DURATION
Definition buff.h:229
virtual int icon()
Definition buff.cpp:435
virtual String toString()
Definition buff.h:234
CLASSNAME(Invisibility)
Definition buff.h:216
virtual boolean attachTo(Char *target)
Definition buff.cpp:391
virtual int icon()
Definition buff.cpp:410
virtual String toString()
Definition buff.h:222
virtual void detach()
Definition buff.cpp:403
static const float DURATION
Definition buff.h:218
Definition buff.h:46
static const int DISTANCE
Definition buff.h:51
virtual boolean attachTo(Char *target)
Definition buff.cpp:106
static const float DURATION
Definition buff.h:50
virtual void detach()
Definition buff.cpp:120
virtual String toString()
Definition buff.h:58
virtual int icon()
Definition buff.cpp:127
CLASSNAME(Light)
virtual void detach()
Definition buff.cpp:487
virtual int icon()
Definition buff.cpp:482
MindVision()
Definition buff.cpp:477
int distance
Definition buff.h:288
CLASSNAME(MindVision)
virtual String toString()
Definition buff.h:293
static const float DURATION
Definition buff.h:287
Definition typedefine.h:69
Ooze()
Definition buff.cpp:363
CLASSOBJECT(Ooze)
int damage
Definition buff.h:203
virtual String toString()
Definition buff.h:208
CLASSNAME(Ooze)
virtual int icon()
Definition buff.cpp:368
virtual boolean act()
Definition buff.cpp:373
Definition buff.h:377
virtual boolean act()
Definition buff.cpp:737
virtual String toString()
Definition buff.h:385
CLASSNAME(Regeneration)
Definition buff.h:265
virtual boolean attachTo(Char *target)
Definition buff.cpp:449
virtual String toString()
Definition buff.h:271
virtual void detach()
Definition buff.cpp:460
virtual int icon()
Definition buff.cpp:466
CLASSNAME(Roots)
Definition buff.h:241
virtual int icon()
Definition buff.cpp:546
float left
Definition buff.h:243
virtual boolean act()
Definition buff.cpp:526
virtual void storeInBundle(Bundle *bundle)
Definition buff.cpp:496
void prolong()
Definition buff.h:255
virtual void detach()
Definition buff.cpp:520
virtual String toString()
Definition buff.h:259
CLASSNAME(Shadows)
virtual void restoreFromBundle(Bundle *bundle)
Definition buff.cpp:502
virtual boolean attachTo(Char *target)
Definition buff.cpp:508
Definition buff.h:189
virtual String toString()
Definition buff.h:193
static const float SWS
Definition buff.h:191
CLASSNAME(Sleep)
Definition buff.h:276
virtual String toString()
Definition buff.h:280
static const float DURATION
Definition buff.h:278
CLASSNAME(Speed)
virtual void storeInBundle(Bundle *bundle)
Definition buff.cpp:260
virtual String toString()
Definition buff.h:138
CLASSNAME(Terror)
Terror()
Definition buff.cpp:255
int object
Definition buff.h:129
static void recover(Char *target)
Definition buff.cpp:277
virtual int icon()
Definition buff.cpp:272
static const float DURATION
Definition buff.h:127
virtual void restoreFromBundle(Bundle *bundle)
Definition buff.cpp:266
Definition buff.h:110
static float duration(Char *ch)
Definition buff.cpp:243
virtual int icon()
Definition buff.cpp:238
virtual String toString()
Definition buff.h:117
CLASSNAME(Vertigo)
static const float DURATION
Definition buff.h:112
#define FACTORY(name)
Definition typedefine.h:89
std::string String
Definition typedefine.h:8