|
BWAPI
|
00001 #pragma once 00002 00003 #include "Common.h" 00004 #include "micromanagement/ZealotManager.h" 00005 #include "micromanagement/DarkTemplarManager.h" 00006 #include "micromanagement/DragoonManager.h" 00007 #include "micromanagement/ObserverManager.h" 00008 #include "SquadOrder.h" 00009 #include "DistanceMap.hpp" 00010 #include "StrategyManager.h" 00011 #include "HardCodedInfo.h" 00012 00013 class ZealotManager; 00014 class DarkTemplarManager; 00015 class DragoonManager; 00016 class ObserverManager; 00017 00018 class Squad 00019 { 00020 UnitVector units; 00021 00022 void updateUnits(); 00023 DistanceMap distanceMap; 00024 00025 std::string regroupStatus; 00026 00027 std::map<BWAPI::Unit *, bool> nearEnemy; 00028 00029 bool squadObserverNear(BWAPI::Position p); 00030 00031 public: 00032 00033 int lastRegroup; 00034 SquadOrder order; 00035 00036 ZealotManager zealotManager; 00037 DarkTemplarManager darkTemplarManager; 00038 DragoonManager dragoonManager; 00039 ObserverManager observerManager; 00040 00041 Squad(const UnitVector & units, SquadOrder order); 00042 Squad() {} 00043 ~Squad() {} 00044 00045 BWAPI::Position calcCenter(); 00046 BWAPI::Position calcRegroupPosition(); 00047 00048 void clear(); 00049 void update(); 00050 00051 void setUnits(const UnitVector & u) { units = u; } 00052 UnitVector & getUnits() { return units;} 00053 SquadOrder & getSquadOrder() { return order;} 00054 bool unitNearEnemy(BWAPI::Unit * unit); 00055 bool needsToRegroup(); 00056 BWAPI::Unit * getRegroupUnit(); 00057 int squadUnitsNear(BWAPI::Position p); 00058 00059 BWAPI::Unit * unitClosestToEnemy(); 00060 00061 void setSquadOrder(SquadOrder & so); 00062 };
1.7.6.1