1 #ifndef ROGUELIKE_COMPONENT_ENERGY_H_
2 #define ROGUELIKE_COMPONENT_ENERGY_H_
24 arms_(100.0), legs_(100.0), eyes_(100.0),
25 max_arms_(100.0), max_legs_(100.0), max_eyes_(100.0),
26 regen_arms_( 1.0), regen_legs_( 1.0), regen_eyes_( 1.0),
28 last_tick_( 0), next_tick_( 0) {}
32 double arms()
const {
return arms_; }
33 double legs()
const {
return legs_; }
34 double eyes()
const {
return eyes_; }
60 double Mean()
const {
return (arms_ + legs_ + eyes_) / 3.0 ; }
62 arms_ = std::max(0.0, std::min(max_arms_, arms_+regen_arms_*time));
63 legs_ = std::max(0.0, std::min(max_legs_, legs_+regen_legs_*time));
64 eyes_ = std::max(0.0, std::min(max_eyes_, eyes_+regen_eyes_*time));
68 if(arms_ < arms)
return false;
69 if(legs_ < legs)
return false;
70 if(eyes_ < eyes)
return false;
77 double PopTimeCarry() {
double ret = time_carry_; time_carry_ = 0.0;
return ret; }
101 #endif // ROGUELIKE_COMPONENT_VISION_H_
void set_regen_legs(double regen_legs)
Definition: energy.h:52
Definition: gameobject.h:53
double max_arms() const
Definition: energy.h:35
double eyes() const
Definition: energy.h:34
int last_tick() const
Definition: energy.h:41
void set_legs(double legs)
Definition: energy.h:46
double regen_eyes() const
Definition: energy.h:40
~Energy()
Definition: energy.h:29
void set_regen_eyes(double regen_eyes)
Definition: energy.h:53
void set_next_tick(int next_tick)
Definition: energy.h:55
double Mean() const
Definition: energy.h:60
bool Spend(double arms, double legs, double eyes)
Definition: energy.h:67
double arms() const
Definition: energy.h:32
Definition: componentbase.h:19
void set_eyes(double eyes)
Definition: energy.h:47
double max_eyes() const
Definition: energy.h:37
void set_time_carry(double time_carry)
Definition: energy.h:57
int next_tick() const
Definition: energy.h:42
double regen_arms() const
Definition: energy.h:38
void set_regen_arms(double regen_arms)
Definition: energy.h:51
void Regen(double time)
Definition: energy.h:61
void set_max_legs(double max_legs)
Definition: energy.h:49
void set_last_tick(int last_tick)
Definition: energy.h:54
void set_arms(double arms)
Definition: energy.h:45
Energy(game::base::GameObject *owner)
Definition: energy.h:22
double legs() const
Definition: energy.h:33
void set_max_eyes(double max_eyes)
Definition: energy.h:50
void set_max_arms(double max_arms)
Definition: energy.h:48
double PopTimeCarry()
Definition: energy.h:77
double regen_legs() const
Definition: energy.h:39
double max_legs() const
Definition: energy.h:36