My Project
 
Loading...
Searching...
No Matches
plant.h
Go to the documentation of this file.
1#pragma once
2
3#include "bundlable.h"
4#include "item.h"
5#include "buff.h"
6
7class PlantSprite;
8class Char;
9class Plant;
10
11typedef Plant* (*CreatePlant)();
12
13class Plant :public Bundlable{
14public:
15 static Plant* Create() { return new Plant(); }
16 class Seed :public Item{
17 public:
18 static const std::string AC_PLANT;
19 std::string alchemyClass;
20
21 Seed();
22 virtual void actions(Hero* hero, std::vector<std::string>& actions);
23 virtual void execute(Hero* hero, std::string action);
24
25 Plant* couch(int pos);
26
27 virtual bool isUpgradable() { return false; }
28 virtual bool isIdentified() { return true; }
29 virtual int price() { return 10 * quantity; }
30 virtual std::string info();
31 protected:
32 virtual void onThrow(int cell);
33
35 std::string plantName;
36
37 private:
38 static const std::string TXT_INFO;
39 static const float TIME_TO_PLANT;
40 };
41public:
42 std::string plantName;
43
44 int image;
45 int pos;
46
48
49 virtual void activate(Char* ch);
50 void wither();
51
52 virtual void restoreFromBundle(Bundle* bundle);
53 virtual void storeInBundle(Bundle* bundle);
54 virtual std::string getClassName() { return "Plant"; }
55
56 virtual std::string desc() { return NULL; }
57private:
58 static const std::string POS;
59};
60
61class Firebloom :public Plant{
62private:
63 static const String TXT_DESC;
64public:
65 Firebloom();
66 static Plant* Create() { return new Plant(); }
67
68 virtual void activate(Char* ch);
69 virtual String desc() {
70 return TXT_DESC;
71 }
72
73 class Seed :public Plant::Seed{
74 public:
75 Seed();
76 virtual std::string getClassName() { return "Firebloom::Seed"; }
77 static Item* Create() { return new Seed(); }
78
79 virtual String desc() {
80 return TXT_DESC;
81 }
82 };
83};
84
85class Icecap :public Plant{
86private:
87 static const String TXT_DESC;
88public:
89 Icecap();
90 static Plant* Create() { return new Icecap(); }
91 virtual void activate(Char* ch);
92
93 virtual String desc() {
94 return TXT_DESC;
95 }
96
97 class Seed :public Plant::Seed{
98 public:
99 Seed();
100 virtual std::string getClassName() { return "Icecap::Seed"; }
101 static Item* Create() { return new Seed(); }
102
103 virtual String desc() {
104 return TXT_DESC;
105 }
106 };
107};
108
109class Sorrowmoss :public Plant{
110private:
111 static const String TXT_DESC;
112
113public:
114 Sorrowmoss();
115 static Plant* Create() { return new Sorrowmoss(); }
116 virtual void activate(Char* ch);
117 virtual String desc() {
118 return TXT_DESC;
119 }
120
121 class Seed :public Plant::Seed{
122 public:
123 Seed();
124 virtual std::string getClassName() { return "Sorrowmoss::Seed"; }
125 static Item* Create() { return new Seed(); }
126
127 virtual String desc() {
128 return TXT_DESC;
129 }
130 };
131};
132
133class Dreamweed :public Plant{
134private:
135 static const String TXT_DESC;
136
137public:
138 Dreamweed();
139 static Plant* Create() { return new Dreamweed(); }
140 virtual void activate(Char* ch);
141
142 virtual String desc() {
143 return TXT_DESC;
144 }
145
146 class Seed :public Plant::Seed{
147 public:
148 Seed();
149 virtual std::string getClassName() { return "Dreamweed::Seed"; }
150 static Item* Create() { return new Seed(); }
151
152 virtual String desc() {
153 return TXT_DESC;
154 }
155 };
156};
157
158
159class Sungrass :public Plant{
160private:
161 static const String TXT_DESC;
162
163public:
164 Sungrass();
165 static Plant* Create() { return new Sungrass(); }
166 virtual void activate(Char* ch);
167
168 virtual String desc() {
169 return TXT_DESC;
170 }
171
172 class Seed :public Plant::Seed{
173 public:
174 Seed();
175 virtual std::string getClassName() { return "Sungrass::Seed"; }
176 static Item* Create() { return new Seed(); }
177
178 virtual String desc() {
179 return TXT_DESC;
180 }
181 };
182
183 class Health :public Buff{
184 private:
185 static const float STEP;
186
187 int pos;
188 static const String POS;
189 public:
190 virtual bool attachTo(Char* target);
191 virtual boolean act();
192 virtual int icon();
193 virtual String toString() {
194 return BPT::getText("lang.Sungrass_Health_toString");// "Herbal healing";
195 }
196
197 virtual std::string getClassName() { return "Health"; }
198 virtual void storeInBundle(Bundle* bundle);
199 virtual void restoreFromBundle(Bundle* bundle);
200 };
201};
202
203class Earthroot :public Plant{
204private:
205 static const String TXT_DESC ;
206
207public:
208 Earthroot();
209 static Plant* Create() { return new Earthroot(); }
210 virtual void activate(Char* ch);
211
212 virtual String desc() {
213 return TXT_DESC;
214 }
215
216 class Seed :public Plant::Seed{
217 public:
218 Seed();
219 virtual std::string getClassName() { return "Earthroot::Seed"; }
220 static Item* Create() { return new Seed(); }
221
222 virtual String desc() {
223 return TXT_DESC;
224 }
225 };
226
227 class Armor :public Buff{
228 private:
229 static const float STEP;
230
231 int pos;
232
233 static const String POS;
234 static const String LEVEL;
235 public:
236 int level;
237 virtual bool attachTo(Char* target);
238 virtual boolean act();
239
240 int absorb(int damage);
241 void Level(int value) {
242 if (level < value) {
243 level = value;
244 }
245 }
246 virtual int icon();
247
248 virtual String toString() {
249 return "Herbal armor";
250 }
251 virtual std::string getClassName() { return "Armor"; }
252 virtual void storeInBundle(Bundle* bundle);
253 virtual void restoreFromBundle(Bundle* bundle);
254 };
255};
256
257class Fadeleaf :public Plant{
258private:
259 static const String TXT_DESC;
260
261public:
262 Fadeleaf();
263
264 static Plant* Create() { return new Fadeleaf(); }
265 virtual void activate(Char* ch);
266
267 virtual String desc() {
268 return TXT_DESC;
269 }
270
271 class Seed :public Plant::Seed{
272 public:
273 Seed();
274 virtual std::string getClassName() { return "Fadeleaf::Seed"; }
275 static Item* Create() { return new Seed(); }
276
277 virtual String desc() {
278 return TXT_DESC;
279 }
280 };
281};
282
283class Rotberry :public Plant{
284private:
285 static const String TXT_DESC ;
286
287public:
288 Rotberry();
289
290 static Plant* Create() { return new Fadeleaf(); }
291 virtual void activate(Char* ch);
292
293 virtual String desc() {
294 return TXT_DESC;
295 }
296
297 class Seed :public Plant::Seed{
298 public:
299 Seed();
300 virtual std::string getClassName() { return "Rotberry::Seed"; }
301 static Item* Create() { return new Seed(); }
302
303 virtual boolean collect(Bag* container);
304 virtual String desc() {
305 return TXT_DESC;
306 }
307 };
308};
static std::string getText(const std::string &key)
Definition bpt.cpp:26
Definition bag.h:9
Char * target
Definition buff.h:13
Buff()
Definition buff.cpp:20
Definition char.h:9
virtual std::string getClassName()
Definition plant.h:149
Seed()
Definition plant.cpp:248
static Item * Create()
Definition plant.h:150
virtual String desc()
Definition plant.h:152
Dreamweed()
Definition plant.cpp:233
virtual String desc()
Definition plant.h:142
static Plant * Create()
Definition plant.h:139
virtual void activate(Char *ch)
Definition plant.cpp:239
Definition plant.h:227
int absorb(int damage)
Definition plant.cpp:389
virtual void storeInBundle(Bundle *bundle)
Definition plant.cpp:406
void Level(int value)
Definition plant.h:241
virtual void restoreFromBundle(Bundle *bundle)
Definition plant.cpp:413
virtual bool attachTo(Char *target)
Definition plant.cpp:374
virtual String toString()
Definition plant.h:248
virtual boolean act()
Definition plant.cpp:380
virtual std::string getClassName()
Definition plant.h:251
int level
Definition plant.h:236
virtual int icon()
Definition plant.cpp:401
virtual String desc()
Definition plant.h:222
static Item * Create()
Definition plant.h:220
virtual std::string getClassName()
Definition plant.h:219
Seed()
Definition plant.cpp:357
static Plant * Create()
Definition plant.h:209
virtual String desc()
Definition plant.h:212
virtual void activate(Char *ch)
Definition plant.cpp:343
Earthroot()
Definition plant.cpp:337
virtual String desc()
Definition plant.h:277
virtual std::string getClassName()
Definition plant.h:274
static Item * Create()
Definition plant.h:275
Seed()
Definition plant.cpp:467
Definition plant.h:257
static Plant * Create()
Definition plant.h:264
Fadeleaf()
Definition plant.cpp:425
virtual String desc()
Definition plant.h:267
virtual void activate(Char *ch)
Definition plant.cpp:431
Seed()
Definition plant.cpp:152
static Item * Create()
Definition plant.h:77
virtual String desc()
Definition plant.h:79
virtual std::string getClassName()
Definition plant.h:76
virtual void activate(Char *ch)
Definition plant.cpp:141
virtual String desc()
Definition plant.h:69
static Plant * Create()
Definition plant.h:66
Firebloom()
Definition plant.cpp:135
Definition hero.h:18
static Item * Create()
Definition plant.h:101
virtual String desc()
Definition plant.h:103
Seed()
Definition plant.cpp:186
virtual std::string getClassName()
Definition plant.h:100
static Plant * Create()
Definition plant.h:90
Icecap()
Definition plant.cpp:165
virtual String desc()
Definition plant.h:93
virtual void activate(Char *ch)
Definition plant.cpp:171
Item()
Definition item.cpp:65
int quantity
Definition item.h:62
Definition plant.h:16
virtual bool isIdentified()
Definition plant.h:28
virtual void execute(Hero *hero, std::string action)
Definition plant.cpp:86
virtual std::string info()
Definition plant.cpp:113
CreatePlant plantClass
Definition plant.h:34
virtual void actions(Hero *hero, std::vector< std::string > &actions)
Definition plant.cpp:80
Seed()
Definition plant.cpp:74
virtual void onThrow(int cell)
Definition plant.cpp:118
Plant * couch(int pos)
Definition plant.cpp:102
std::string alchemyClass
Definition plant.h:19
std::string plantName
Definition plant.h:35
virtual bool isUpgradable()
Definition plant.h:27
static const std::string AC_PLANT
Definition plant.h:18
virtual int price()
Definition plant.h:29
Definition plant.h:13
virtual std::string getClassName()
Definition plant.h:54
int pos
Definition plant.h:45
std::string plantName
Definition plant.h:42
virtual std::string desc()
Definition plant.h:56
virtual void activate(Char *ch)
Definition plant.cpp:27
virtual void restoreFromBundle(Bundle *bundle)
Definition plant.cpp:60
virtual void storeInBundle(Bundle *bundle)
Definition plant.cpp:65
static Plant * Create()
Definition plant.h:15
void wither()
Definition plant.cpp:37
int image
Definition plant.h:44
PlantSprite * sprite
Definition plant.h:47
Definition plantsprite.h:8
static Item * Create()
Definition plant.h:301
virtual boolean collect(Bag *container)
Definition plant.cpp:511
Seed()
Definition plant.cpp:500
virtual String desc()
Definition plant.h:304
virtual std::string getClassName()
Definition plant.h:300
Rotberry()
Definition plant.cpp:481
virtual String desc()
Definition plant.h:293
virtual void activate(Char *ch)
Definition plant.cpp:487
static Plant * Create()
Definition plant.h:290
static Item * Create()
Definition plant.h:125
virtual String desc()
Definition plant.h:127
Seed()
Definition plant.cpp:219
virtual std::string getClassName()
Definition plant.h:124
Sorrowmoss()
Definition plant.cpp:200
virtual void activate(Char *ch)
Definition plant.cpp:206
virtual String desc()
Definition plant.h:117
static Plant * Create()
Definition plant.h:115
Definition plant.h:183
virtual std::string getClassName()
Definition plant.h:197
virtual int icon()
Definition plant.cpp:316
virtual void restoreFromBundle(Bundle *bundle)
Definition plant.cpp:327
virtual bool attachTo(Char *target)
Definition plant.cpp:297
virtual void storeInBundle(Bundle *bundle)
Definition plant.cpp:321
virtual String toString()
Definition plant.h:193
virtual boolean act()
Definition plant.cpp:303
virtual String desc()
Definition plant.h:178
virtual std::string getClassName()
Definition plant.h:175
static Item * Create()
Definition plant.h:176
Seed()
Definition plant.cpp:280
virtual void activate(Char *ch)
Definition plant.cpp:267
virtual String desc()
Definition plant.h:168
Sungrass()
Definition plant.cpp:261
static Plant * Create()
Definition plant.h:165
Plant *(* CreatePlant)()
Definition plant.h:11
std::string String
Definition typedefine.h:8