BWAPI
|
00001 #pragma once 00002 #include "Layer3Task.h" 00003 00004 class InitialScoutTask : public Layer3Task 00005 { 00006 public: 00007 InitialScoutTask(Layer3Script& layer3Script) 00008 : Layer3Task(layer3Script) 00009 , m_scout(*this) 00010 , m_scoutArrivedEventHandler(*this) 00011 , m_locationScoutedEventHandler(*this) 00012 , m_hasAlreadyRun(false) 00013 { 00014 } 00015 00016 void run(); 00017 00018 virtual void runV() 00019 { 00020 return run(); 00021 } 00022 00023 void onScoutArrived(void* data, const layer2::Scout* action, StaticLocation* arrivedAtLocation, BWAPI::Unit*); 00024 void onLocationScouted(void* data, const layer2::Scout* action, PrimitiveLocation* scoutedLocation, BWAPI::Unit*); 00025 void onScoutEnded(void* data, const layer2::TacticalAction* action); 00026 00027 bool hasAlreadyRun() const 00028 { 00029 return m_hasAlreadyRun; 00030 } 00031 00032 protected: 00033 void executeScout(Scout* scout); 00034 00035 EVENT_HANDLER3(InitialScoutTask, onScoutArrived, const layer2::Scout*, StaticLocation*, BWAPI::Unit*) m_scoutArrivedEventHandler; 00036 EVENT_HANDLER3(InitialScoutTask, onLocationScouted, const layer2::Scout*, PrimitiveLocation*, BWAPI::Unit*) m_locationScoutedEventHandler; 00037 00038 ProcessContainer<Scout> m_scout; 00039 std::list<BaseLocation*> m_baseLocationsToExplore; 00040 bool m_hasAlreadyRun; 00041 };