Roguelike
 All Classes Namespaces Functions Variables Typedefs Friends Pages
character.h
1 
22 #ifndef CHARACTER_H
23 #define CHARACTER_H
24 #include <SDL/SDL.h>
25 #include <defs.h>
26 #include <ASCII_Lib.h>
27 #include <color_def.h>
28 #include <iostream>
29 #include <int_point.h>
30 #include <item.h>
31 #include <vector>
32 #include <cstring>
33 
34 
42 class Character
43 {
44  protected:
52  int moral;
53 
59  std::vector<int> stats;
60 
67  std::vector<int> current_stats;
68 
72  int x;
73 
77  int y;
78 
82  std::vector<Item*> inventory;
83 
89  std::vector<Item*> equipment;
90 
97 
102 
111 
115  int depth;
116 
121 
129 
133  bool conscious;
134 
138  long timer;
139 
146  int speed;
147 
148  public:
152  Character();
153 
154 
169  Character(std::vector<int> _stats, int _x, int _y, Tile _sprite, MiscType _corpse, int _chunk_x, int _chunk_y, int _depth, int _morality, int _speed);
170 
181  Character(int _x, int _y, int _chunk_x, int _chunk_y, int _depth);
182 
186  void act(long ms);
187 
193  bool is_alive() const;
194 
201  void take_damage(int damage);
202 
211  void attack(Character* _chara);
212 
218  int did_hit(Character* _chara);
219 
225  int damage_dealt(Character* _chara);
226 
227 
233  std::vector<Item*>* get_inventory();
234 
240  std::vector<Item*>* get_equipment();
241 
246  void add_item(Item* new_item);
247 
256  void drop_item(Item* item);
257 
263  void drop_item(int item);
264 
273  void destroy_item(Item* item);
274 
286  void equip_item(Item* item);
287 
293  void remove_item(int item);
294 
298  void remove_all();
299 
305  int get_x();
306 
311  int get_y();
312 
318 
325 
331  int get_chunk_x();
332 
333 
339  int get_chunk_y();
340 
346  Tile get_char();
347 
353  Item* get_corpse();
354 
360  int get_depth();
361 
368 
375  int get_max_hp();
376 
383  int get_cur_hp();
384 
390  int get_moral();
391 
396  int get_armor_hit(int body_part, int type);
397 
402  float get_armor_dam(int body_part, int type);
403 
409  void set_x(int _x);
410 
416  void set_y(int _y);
417 
423  void set_chunk(IntPoint _chunk);
424 
430  void set_chunk_x(int _chunk_x);
431 
437  void set_chunk_y(int _chunk_y);
438 
444  void set_depth(int);
445 
451  void set_target(Character* _target);
452 
460  void consume_item(Item* item);
461 
468  int get_stat(int);
469 
476  void set_stat(int stat, int amount);
477 
484  int get_current_stat(int);
485 
492  void set_current_stat(int stat, int amount);
493 
494 
498  void regain_consciousness();
499 
503  void pass_out();
504 
508  bool is_conscious();
509 
510 
517  void reduce_endurance(int factor);
518 
522  void gain_endurance(int factor);
523 
527  bool can_act();
528 };
529 
531  int x;
532  int y;
533  int depth;
534  int morality;
535  int speed;
536  bool conscious;
537  IntPoint chunk;
538  std::vector<int> stats;
539  Tile sprite;
540  MiscType corpse;
541  Character* target;
542  vector<Item*> equipment;
543 };
544 
551 class Main_Character : public Character{
552  public:
556  Main_Character();
557 
562  Main_Character(std::vector<int> _stats, int _x, int _y, Tile _sprite, MiscType _corpse, int _chunk_x, int _chunk_y, int _depth, int _morality, int _speed);
563 };
564 
565 #endif
Character()
Definition: character.cpp:24
int damage_dealt(Character *_chara)
float get_armor_dam(int body_part, int type)
Definition: character.cpp:292
int get_armor_hit(int body_part, int type)
Definition: character.cpp:280
int inventory_size
Definition: character.h:96
void take_damage(int damage)
Definition: character.cpp:85
Definition: defs.h:475
void set_x(int _x)
Definition: character.cpp:188
std::vector< int > stats
Definition: character.h:59
Definition: character.h:42
void drop_item(Item *item)
Definition: character.cpp:113
int get_moral()
Definition: character.cpp:275
int speed
Definition: character.h:146
int get_current_stat(int)
Definition: character.cpp:340
Item * get_corpse()
Definition: character.cpp:247
int get_chunk_x()
Definition: character.cpp:212
void set_chunk_y(int _chunk_y)
Definition: character.cpp:237
void pass_out()
Definition: character.cpp:355
void remove_all()
Definition: character.cpp:179
Main_Character()
Definition: main_character.cpp:25
void act(long ms)
Definition: character.cpp:60
int get_chunk_y()
Definition: character.cpp:217
void reduce_endurance(int factor)
Definition: character.cpp:365
void set_chunk(IntPoint _chunk)
Definition: character.cpp:227
int depth
Definition: character.h:115
IntPoint get_chunk()
Definition: character.cpp:222
void set_stat(int stat, int amount)
Definition: character.cpp:335
void remove_item(int item)
Definition: character.cpp:161
void gain_endurance(int factor)
Definition: character.cpp:377
int get_y()
Definition: character.cpp:204
std::vector< int > current_stats
Definition: character.h:67
Definition: defs.cpp:130
Character * get_target()
Definition: character.cpp:260
void attack(Character *_chara)
Definition: character.cpp:89
Definition: character.h:551
Definition: defs.h:66
Definition: item.h:40
Item * corpse
Definition: character.h:110
Definition: character.h:530
bool conscious
Definition: character.h:133
Definition: int_point.h:26
Character * target
Definition: character.h:128
std::vector< Item * > equipment
Definition: character.h:89
Tile get_char()
Definition: character.cpp:243
void set_target(Character *_target)
Definition: character.cpp:255
void set_y(int _y)
Definition: character.cpp:192
void set_depth(int)
Definition: character.cpp:196
std::vector< Item * > * get_inventory()
Definition: character.cpp:98
int get_max_hp()
Definition: character.cpp:265
bool is_conscious()
Definition: character.cpp:360
void set_current_stat(int stat, int amount)
Definition: character.cpp:345
std::vector< Item * > inventory
Definition: character.h:82
int get_depth()
Definition: character.cpp:251
int get_x()
Definition: character.cpp:200
int x
Definition: character.h:72
IntPoint get_coords()
Definition: character.cpp:208
std::vector< Item * > * get_equipment()
Definition: character.cpp:103
int get_cur_hp()
Definition: character.cpp:270
bool can_act()
Definition: character.cpp:388
int get_stat(int)
Definition: character.cpp:330
void destroy_item(Item *item)
Definition: character.cpp:132
void equip_item(Item *item)
Definition: character.cpp:144
int did_hit(Character *_chara)
long timer
Definition: character.h:138
IntPoint chunk
Definition: character.h:120
void set_chunk_x(int _chunk_x)
Definition: character.cpp:232
int y
Definition: character.h:77
void add_item(Item *new_item)
Definition: character.cpp:108
int moral
Definition: character.h:52
bool is_alive() const
Definition: character.cpp:77
void regain_consciousness()
Definition: character.cpp:350
Tile sprite
Definition: character.h:101
void consume_item(Item *item)
Definition: character.cpp:304