BWAPI
|
00001 #ifndef RESMANAGENT_H 00002 #define RESMANAGENT_H 00003 #include <vector> 00004 #include "AgentBase.h" 00005 #include "MineralModel.h" 00006 #include "GasModel.h" 00007 #include "ConstructionAgent.h" 00008 #include "Resource_GoalGeneratorHeaders.h" 00009 #include "GoalTypes.h" 00010 #include "BaseModel.h" 00011 00012 class AgentPool; 00013 //class SquadPool; 00014 00015 class ResourceManagerAgent : public AgentBase { 00016 public: 00017 ResourceManagerAgent::ResourceManagerAgent(AgentPool* p); 00018 ResourceManagerAgent::ResourceManagerAgent(); 00019 void ResourceManagerAgent::initialize(); 00020 void ResourceManagerAgent::reassignIdleWorkers(); 00021 void ResourceManagerAgent::regulateGas(); 00022 void ResourceManagerAgent::administerBases(); 00023 Unit* ResourceManagerAgent::getFreeGas(); 00024 int ResourceManagerAgent::getNumMinerals(); 00025 00026 Arbitrator* ResourceManagerAgent::getInternalArbitrator(); 00027 virtual void updateDrives(); 00028 virtual Arbitrator* getArbitrator() { return internalArbitrator; }; 00029 int ResourceManagerAgent::getNumWorkersMining(BaseModel* m); 00030 int ResourceManagerAgent::getNumWorkersGathering(BaseModel* m); 00031 std::vector<GoalGeneratorBase*> goalGenerators; 00032 std::vector<Unit*> ResourceManagerAgent::getWorkersAtBase(BaseModel* b); 00033 00034 private: 00035 AgentPool* agentPool; 00036 Arbitrator* internalArbitrator; 00037 Unit* ResourceManagerAgent::getFreeMineralSlot(Position p); 00038 Unit* ResourceManagerAgent::getFreeMineralSlot(BaseModel* m); 00039 int numWorkers; 00040 int numMinerals; 00041 00042 00043 00044 // Goal generators 00045 Resource_TrainWorkerGoalGenerator* trainWorkersGoalGenerator; 00046 Resource_BuildSupplyGoalGenerator* buildSupplyGoalGenerator; 00047 Resource_BuildRefineryGoalGenerator* buildRefineryGoalGenerator; 00048 Resource_BuildExpansionGoalGenerator* buildExpansionGoalGenerator; 00049 Resource_ClearObstructionsGoalGenerator* clearObstructionsGoalGenerator; 00050 00051 }; 00052 #endif