BWAPI
SnippyHolloW-BroodwarBotQ-f01ab56/src/Macro/DefenseManager.h
Go to the documentation of this file.
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 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines