00001 #ifndef SUPPLY_HH_ 00002 # define SUPPLY_HH_ 00003 00004 # include "task.hh" 00005 # include "objects_fwd.hh" 00006 # include "def_map.hh" 00007 00008 namespace tasks 00009 { 00010 class Supply : public Task 00011 { 00012 public: 00013 enum State 00014 { 00015 state_going_to_town, 00016 state_supply, 00017 state_returning 00018 }; 00019 00020 public: 00021 Supply(bool stay_at_town = false); 00022 ~Supply(); 00023 00024 virtual void execute(); 00025 virtual void process(); 00026 virtual void terminate(); 00027 00028 virtual const std::string &get_name() const; 00029 00030 protected: 00031 State _state; 00032 bool _stay_at_town; 00033 00034 virtual void require_sub_task(); 00035 }; 00036 } 00037 00038 #endif