Roguelike
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
damageable.h
Go to the documentation of this file.
1 #ifndef ROGUELIKE_COMPONENT_DAMAGEABLE_H_
2 #define ROGUELIKE_COMPONENT_DAMAGEABLE_H_
3 
4 // Inheritance
6 
7 // External Dependencies
8 // (none)
9 
10 // Internal Dependencies
11 // (none)
12 
13 // Forward Declarations
14 #include "game/base.h"
15 
16 namespace game {
17 namespace component {
18 
19 class Damageable : public ComponentBase {
20  typedef ComponentBase super;
21  public:
22  Damageable(game::base::GameObject* owner, double max_life)
23  : super(owner), current_life_(max_life), max_life_(max_life) {}
25 
26  void TakeDamage(double damage);
27  void StartToDie();
28 
29  double current_life() const { return current_life_; }
30 
31  private:
32  double current_life_;
33  double max_life_;
34 };
35 
36 } // namespace component
37 } // namespace game
38 
39 #endif // ROGUELIKE_COMPONENT_DAMAGEABLE_H_
Definition: gameobject.h:53
Definition: aim.cc:15
void StartToDie()
Definition: damageable.cc:21
Definition: componentbase.h:19
Definition: damageable.h:19
double current_life() const
Definition: damageable.h:29
Damageable(game::base::GameObject *owner, double max_life)
Definition: damageable.h:22
void TakeDamage(double damage)
Definition: damageable.cc:16
~Damageable()
Definition: damageable.h:24