00001 #ifndef ATTACK_ENEMY_HH_ 00002 # define ATTACK_ENEMY_HH_ 00003 00004 # include "task.hh" 00005 # include "objects_fwd.hh" 00006 00007 namespace tasks 00008 { 00009 class AttackEnemy : public Task 00010 { 00011 public: 00012 AttackEnemy(objects::Character &enemy); 00013 ~AttackEnemy(); 00014 00015 virtual void execute(); 00016 virtual void process(); 00017 virtual void terminate(); 00018 00019 virtual const std::string &get_name() const; 00020 00021 bool in_range(); 00022 00023 protected: 00024 objects::Character &_enemy; 00025 00026 virtual void require_sub_task(); 00027 virtual void attack(); 00028 int get_seconds() const; 00029 }; 00030 } 00031 00032 #endif