BWAPI
|
00001 #pragma once 00002 00003 #include "Interface.h" 00004 00005 #include "Singleton.h" 00006 #include "ScoutData.h" 00007 #include "Base.h" 00008 #include "WorkerScoutTask.h" 00009 #include "ObserverScoutTask.h" 00010 00011 class ScoutManagerClass 00012 { 00013 public: 00014 ScoutManagerClass(){} 00015 00016 void onBegin(); 00017 void update(); 00018 00019 void updateWorkerScouts(); 00020 void updateObserverScouts(); 00021 00022 void updateLastScoutType(ScoutData data, ScoutType type); 00023 00024 ScoutData getScoutData(ScoutUnitType unit); 00025 00026 int getLastScoutTime(Base base) { return mLastScoutTime[base]; } 00027 ScoutType getLastScoutType(Base base) { return mLastScoutType[base]; } 00028 ScoutType getCurrentScoutType(Base base) { return mCurrentScoutType[base]; } 00029 00030 private: 00031 std::set<ScoutData> mAllScoutData; 00032 std::list<ScoutData> mDataRequiringScout; 00033 00034 std::map<Base, int> mLastScoutTime; 00035 std::map<Base, ScoutType> mLastScoutType; 00036 std::map<Base, ScoutType> mCurrentScoutType; 00037 00038 std::set<WorkerScoutTaskPointer> mWorkerScouts; 00039 std::set<ObserverScoutTaskPointer> mObserverScouts; 00040 }; 00041 00042 typedef Singleton<ScoutManagerClass> ScoutManager;