BWAPI
|
00001 #ifndef BASEDEFMANAGERAGENT_H 00002 #define BASEDEFMANAGERAGENT_H 00003 #include "GoalDescriptor.h" 00004 #include "AgentPool.h" 00005 #include "GoalTypes.h" 00006 #include "UnitModel.h" 00007 #include "BaseModel.h" 00008 #include "BWTA.h" 00009 #include "BaseDefense_GoalHeaders.h" 00010 #include <vector> 00011 #include <stack> 00012 00013 using namespace BWTA; 00014 00015 00016 class BaseDefenseManagerAgent : public AgentBase { 00017 public: 00018 00019 BaseDefenseManagerAgent(AgentPool* p); 00020 void requisitionIdleMarines(); 00021 void requisitionIdleTanks(); 00022 void requisitionIdleMechs(); 00023 void repairBrokenStuff(); 00024 void monitorBunkers(); 00025 void monitorBases(); 00026 void monitorChokePoints(); 00027 BaseModel* findWeakestBaseAirDefense(); 00028 BaseModel* findWeakestBaseGroundDefense(); 00029 virtual void updateDrives(); 00030 virtual Arbitrator* getArbitrator() { return NULL; }; 00031 00032 private: 00033 AgentPool* agentPool; 00034 BaseDefense_BuildAirDefenseGoalGenerator* buildAirDefenseGoalGenerator; 00035 BaseDefense_BuildGroundDefenseGoalGenerator* buildGroundDefenseGoalGenerator; 00036 std::vector<Unit*> assignedTanks; 00037 std::vector<Unit*> bunkers; 00038 std::vector<std::pair<Unit*, Position>> defendingWorkers; 00039 int defenseTimer; 00040 std::map<Unit*, Position> rubberBand; 00041 std::map<Unit*, int> chokeMonitor; 00042 }; 00043 00044 00045 #endif