BWAPI
|
00001 #pragma once 00002 #include "Macro/Arbitrator.h" 00003 #include <BWAPI.h> 00004 #include <BWTA.h> 00005 class BorderManager; 00006 class DefenseManager : Arbitrator::Controller<BWAPI::Unit*,double> 00007 { 00008 public: 00009 class DefenseData 00010 { 00011 public: 00012 enum DefenseMode 00013 { 00014 Idle, 00015 Moving 00016 }; 00017 DefenseData(){ mode = Idle; } 00018 DefenseMode mode; 00019 }; 00020 DefenseManager(Arbitrator::Arbitrator<BWAPI::Unit*,double>* arbitrator); 00021 void setBorderManager(BorderManager* borderManager); 00022 virtual void onOffer(std::set<BWAPI::Unit*> units); 00023 virtual void onRevoke(BWAPI::Unit* unit, double bid); 00024 void onRemoveUnit(BWAPI::Unit* unit); 00025 virtual void update(); 00026 virtual std::string getName() const; 00027 virtual std::string getShortName() const; 00028 00029 private: 00030 BorderManager* borderManager; 00031 Arbitrator::Arbitrator<BWAPI::Unit*,double>* arbitrator; 00032 std::set<BWTA::Chokepoint*> myBorder; 00033 std::vector<BWTA::Chokepoint*> myBorderVector; 00034 std::map<BWAPI::Unit*,DefenseData> defenders; 00035 };