Roguelike
 All Classes Namespaces Functions Variables Typedefs Friends Pages
item.h
1 
22 #ifndef ITEM_H
23 #define ITEM_H
24 #include <defs.h>
25 #include <string>
26 #include <int_point.h>
27 
32 static std::string BODY_PARTS[] = {"Head", "Torso", "Legs", "Feet", "Arms", "Hands", "Wielding"};
33 
34 
40 class Item
41 {
42  protected:
46  std::string name;
47 
51  std::string description;
52 
56  int weight;
57 
67 
72 
76  int rarity;
77 
85  int size;
86 
87  public:
91  bool can_equip;
92 
98  bool can_use;
99 
103  bool can_wield;
104 
109 
114  Item(IntPoint _coords);
115 
124  Item(int _rarity, int _weight, Tile _sprite, std::string _name, IntPoint _coords);
125 
129  int get_weight();
130 
134  Tile* get_sprite();
135 
141  virtual void perform_action()=0;
142 
147 
152  void set_coords(IntPoint _c);
153 
157  std::string get_name();
158 
162  int get_rarity();
163 
167  std::string get_description();
168 
172  int get_size();
173 };
174 
180 class Equipment : public Item
181 {
182  protected:
190 
196  int type;
197 
201  std::vector<int> to_hit;
202 
206  std::vector<float> to_dam;
207  public:
219  Equipment(int _rarity, int _weight, Tile _sprite, std::string _name, IntPoint _coords, int bp, int t);
220 
228  Equipment(IntPoint _coords, EquipType eqp);
229 
234  void perform_action();
235 
239  int get_body_part();
240 
244  int get_hit(int type);
245 
249  float get_dam(int type);
250 };
251 
257 class Weapon : public Item
258 {
259  protected:
260  //weapons are always wielded in slot 6 of the body part diagram
261 
267  int damage;
268 
272  int range;
273 
280  int type;
281 
282 
283  public:
294  Weapon(int _rarity, int _weight, Tile _sprite, std::string _name, IntPoint _coords, int t, int _dam);
295 
303  Weapon(IntPoint _coords, WeaponType wpn);
304 
309  void perform_action();
310 
314  int get_type();
315 
319  int get_damage();
320 };
321 
327 class Consumable : public Item
328 {
329  protected:
338 
343 
349  int type;
350  public:
362  Consumable(int _rarity, int _weight, Tile _sprite, std::string _name, IntPoint _coords, int stat, int val , int _type);
363 
371  Consumable(IntPoint _coords, ConsumableType cons);
372 
377  void perform_action();
378 
382  int get_stat();
383 
387  int get_amount();
388 
392  int get_type();
393 };
394 
401 class Misc : public Item
402 {
403  public:
412  Misc(int _rarity, int _weight, Tile _sprite, std::string _name, IntPoint _coords);
413 
421  Misc(IntPoint _coords, MiscType misc);
422 
427  void perform_action();
428 };
429 
430 #endif
std::string description
Definition: item.h:51
Tile sprite
Definition: item.h:71
virtual void perform_action()=0
float get_dam(int type)
Definition: equipment.cpp:73
int size
Definition: item.h:85
Definition: defs.h:475
int get_type()
Definition: consumables.cpp:73
int rarity
Definition: item.h:76
std::vector< float > to_dam
Definition: item.h:206
int get_hit(int type)
Definition: equipment.cpp:68
int weight
Definition: item.h:56
bool can_consume
Definition: item.h:108
int get_size()
Definition: item.cpp:68
Definition: item.h:401
int get_rarity()
Definition: item.cpp:63
int type
Definition: item.h:196
Tile * get_sprite()
Definition: item.cpp:43
bool can_use
Definition: item.h:98
int body_part
Definition: item.h:189
Definition: item.h:180
Definition: defs.h:324
std::string name
Definition: item.h:46
void perform_action()
Definition: weapon.cpp:55
Item(IntPoint _coords)
Definition: item.cpp:24
Definition: defs.cpp:146
Misc(int _rarity, int _weight, Tile _sprite, std::string _name, IntPoint _coords)
Definition: misc.cpp:27
IntPoint coords
Definition: item.h:66
Weapon(int _rarity, int _weight, Tile _sprite, std::string _name, IntPoint _coords, int t, int _dam)
Definition: weapon.cpp:27
int damage
Definition: item.h:267
IntPoint get_coords()
Definition: item.cpp:48
int get_type()
Definition: weapon.cpp:62
Equipment(int _rarity, int _weight, Tile _sprite, std::string _name, IntPoint _coords, int bp, int t)
Definition: equipment.cpp:27
int amount_modified
Definition: item.h:342
int range
Definition: item.h:272
bool can_equip
Definition: item.h:91
int get_amount()
Definition: consumables.cpp:68
int get_damage()
Definition: weapon.cpp:68
int get_body_part()
Definition: equipment.cpp:63
Definition: defs.h:66
bool can_wield
Definition: item.h:103
Definition: item.h:40
int stat_modified
Definition: item.h:337
Definition: int_point.h:26
Definition: item.h:327
std::string get_description()
Definition: item.cpp:73
Definition: defs.h:229
int type
Definition: item.h:349
std::string get_name()
Definition: item.cpp:53
void set_coords(IntPoint _c)
Definition: item.cpp:58
std::vector< int > to_hit
Definition: item.h:201
Definition: defs.h:401
void perform_action()
Definition: consumables.cpp:56
int get_weight()
Definition: item.cpp:38
Definition: item.h:257
void perform_action()
Definition: equipment.cpp:56
int get_stat()
Definition: consumables.cpp:63
void perform_action()
Definition: misc.cpp:50
int type
Definition: item.h:280
Consumable(int _rarity, int _weight, Tile _sprite, std::string _name, IntPoint _coords, int stat, int val, int _type)
Definition: consumables.cpp:27