BWAPI
|
00001 #pragma once 00002 #include <BWAPI.h> 00003 #include <BWTA.h> 00004 #include <windows.h> 00005 #include "Defines.h" 00006 #include "Micro/Formations.h" 00007 #include "Intelligence/EUnitsFilter.h" 00008 #include "Regions/MapManager.h" 00009 #include "Regions/Regions.h" 00010 #include "Micro/UnitsGroup.h" 00011 #include "Micro/Goals/GoalManager.h" 00012 #include "Macro/UnitGroupManager.h" 00013 #include "Macro/Arbitrator.h" 00014 00015 static bool analyzed; 00016 static bool analysis_just_finished; 00017 static BWTA::Region* home; 00018 static BWTA::Region* enemy_base; 00019 DWORD WINAPI AnalyzeThread(); 00020 00021 class MicroAIModule : public BWAPI::AIModule 00022 { 00023 public: 00024 EUnitsFilter* eUnitsFilter; 00025 MapManager* mapManager; 00026 Regions* regions; 00027 UnitGroupManager * unitGroupManager; 00028 Arbitrator::Arbitrator<BWAPI::Unit*,double> arbitrator; 00029 GoalManager* goalManager; 00030 bool enemiesFound; 00031 BWAPI::TilePosition eStartLocation; 00032 MicroAIModule(); 00033 ~MicroAIModule(); 00034 virtual void onStart(); 00035 virtual void onEnd(bool isWinner); 00036 virtual void onFrame(); 00037 //virtual void onRemove(BWAPI::Unit* unit); 00038 virtual void onSendText(std::string text); 00039 virtual void onUnitCreate(Unit* unit); 00040 virtual void onUnitDestroy(Unit* unit); 00041 virtual void onUnitShow(BWAPI::Unit* unit); 00042 virtual void onUnitHide(BWAPI::Unit* unit); 00043 void showStats(); //not part of BWAPI::AIModule 00044 void showPlayers(); 00045 void showForces(); 00046 std::map<BWAPI::Unit*,BWAPI::UnitType> buildings; 00047 };