BWAPI
quorum/ExampleAIModule/BaseDefenseManagerAgent.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Defines