BWAPI
quorum/ExampleAIModule/InformationManagerAgent.h
Go to the documentation of this file.
00001 #ifndef INFORMATIONMANAGERAGENT_H
00002 #define INFORMATIONMANAGERAGENT_H
00003 #include "GoalDescriptor.h"
00004 #include "AgentPool.h"
00005 #include "GoalTypes.h"
00006 #include "UnitModel.h"
00007 #include "RectangleArray.h"
00008 #include "BaseModel.h"
00009 #include "BWTA.h"
00010 #include "StrategyEstimator.h"
00011 
00012 #include <vector>
00013 #include <stack>
00014 
00015 using namespace BWTA;
00016 
00017 class SquadManagerAgent;
00018 class ThreatAwarePathFinder;
00019 
00020 class InformationManagerAgent : public AgentBase {
00021 public:
00022 
00023         InformationManagerAgent(AgentPool* p);
00024         void alert(Unit* u);
00025         void destroyed(Unit* u);
00026         void InformationManagerAgent::printUnits();
00027         void InformationManagerAgent::printBuildings();
00028 
00029         std::vector<Unit*> InformationManagerAgent::getUnitsThatProduce(Unit* u);
00030         std::vector<Unit*> InformationManagerAgent::getUnitsOfType(UnitType u);
00031         std::vector<Unit*> InformationManagerAgent::getUnitsOfType(std::pair<UnitType,UnitType> u);
00032         std::vector<Unit*> InformationManagerAgent::getBuildingsOfType(UnitType u);
00033         int InformationManagerAgent::countUnitType(UnitType t);
00034 
00035         bool InformationManagerAgent::hasUnit(UnitType t);
00036         bool InformationManagerAgent::hasActiveRefineryAtBase();
00037 
00038         bool InformationManagerAgent::hasUnitUnderConstruction(UnitType t);
00039         void InformationManagerAgent::addBase(TilePosition p, Unit* u);
00040         BaseModel* InformationManagerAgent::getBase(TilePosition p);
00041         bool InformationManagerAgent::canPerformScannerSweep(InformationManagerAgent* im);
00042         void InformationManagerAgent::scanPointsOfInterest(InformationManagerAgent* im);
00043         Position InformationManagerAgent::findHighestConcentrationOf(UnitType t);
00044         std::vector<Unit*> InformationManagerAgent::findLocalObstructions();
00045         UnitType InformationManagerAgent::getReccomendedFlyerType();
00046         TilePosition InformationManagerAgent::locateWeakestPerceivedBase();
00047         Unit* InformationManagerAgent::selectNewMainBase();
00048 
00049         std::vector<UnitModel*> InformationManagerAgent::getKnownBuildings();
00050         std::vector<UnitModel*> InformationManagerAgent::getKnownBuildingsAroundPoint(Position p, int radius);
00051         std::vector<UnitModel*> InformationManagerAgent::getKnownUnitsAroundPoint(Position p, int radius);
00052         std::vector<BaseModel*> InformationManagerAgent::getBases();
00053         BaseLocation* InformationManagerAgent::findClosestExpansionPoint(Unit* tester);
00054         BaseLocation* InformationManagerAgent::findClosestExpansionPoint();
00055         bool InformationManagerAgent::hasUnit(Unit* t);
00056         bool InformationManagerAgent::baseIsTaken(Unit* u);
00057         bool InformationManagerAgent::baseIsTaken(TilePosition u);
00058 
00059         std::vector<UnitModel*> InformationManagerAgent::evaluateThreatAt(Position p);
00060         int InformationManagerAgent::getAirThreat(Position p);
00061         std::pair<int,int> InformationManagerAgent::getStrategyEstimate();
00062 
00063         virtual void updateDrives();
00064         virtual Arbitrator* getArbitrator() { return NULL; };
00065         ThreatAwarePathFinder* pathFinder;
00066 
00067 AgentPool* agentPool;
00068 private:
00069         
00070         std::vector<UnitModel*> unitSet;
00071         std::vector<UnitModel*> buildingSet;
00072 
00073         bool InformationManagerAgent::updateKnowledge(Unit* u);
00074         bool InformationManagerAgent::inferKnowledge(Unit* u);
00075         bool  InformationManagerAgent::isProducedBy(Unit* u, UnitType t);
00076         Util::RectangleArray<int> map;
00077 
00078         std::vector<BaseModel*> bases;
00079         std::stack<Unit*> pending;
00080         bool pendingLock;
00081         bool initialized;
00082         StrategyEstimator* strategyEstimator;
00083         TargetFitnessCalculator* tf;
00084 
00085 };
00086 
00087 
00088 #endif
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Defines