BWAPI
Aiur/include/DefenseManager.h
Go to the documentation of this file.
00001 #pragma once
00002 #include <Arbitrator.h>
00003 #include <BWAPI.h>
00004 #include <BWTA.h>
00005 #include <BaseManager.h>
00006 #include <InformationManager.h>
00007 #include <BuildOrderManager.h>
00008 #include <UnitGroupManager.h>
00009 #include <SpyManager.h>
00010 
00011 class BorderManager;
00012 class DefenseManager : Arbitrator::Controller<BWAPI::Unit*,double>
00013 {
00014 public:
00015         class DefenseData
00016         {
00017         public:
00018                 enum DefenseMode
00019                 {
00020                         Idle,
00021                         Moving,
00022                         Defending
00023                 };
00024                 DefenseData(){ mode = Idle; }
00025                 DefenseMode mode;
00026         };
00027         DefenseManager(Arbitrator::Arbitrator<BWAPI::Unit*,double>* arbitrator);
00028 
00029         void                                                                            setBorderManager                        (BorderManager* borderManager);
00030         void                                                                            setBaseManager                          (BaseManager *baseManager);
00031         void                                                                            setInformationManager   (InformationManager *informationManager);
00032         void                                                                            setBuildOrderManager    (BuildOrderManager *buildOrderManager);
00033         void                                                                            setSpyManager                                   (SpyManager *spyManager);
00034 
00035         std::set<BWAPI::Unit*>& getIdleDefenders                        ();
00036         virtual void                                            onOffer                                                         (std::set<BWAPI::Unit*> units);
00037         virtual void                                            onRevoke                                                        (BWAPI::Unit* unit, double bid);
00038         void                                                                            onRemoveUnit                                    (BWAPI::Unit* unit);
00039         virtual void                                            update                                                          ();
00040         virtual std::string                     getName                                                         () const;
00041         virtual std::string                     getShortName                                    () const;
00042 
00043 private:
00044         BorderManager                                                                                                                           *borderManager;
00045         BuildOrderManager                                                                                                               *buildOrderManager;
00046         BaseManager                                                                                                                                     *baseManager; 
00047         InformationManager                                                                                                      *informationManager;
00048         SpyManager                                                                                                                                      *spyManager;
00049         Arbitrator::Arbitrator<BWAPI::Unit*,double>     *arbitrator;
00050 
00051         std::set<BWTA::Chokepoint*>                                                                     myBorder;
00052         std::vector<BWTA::Chokepoint*>                                                  myBorderVector;
00053         std::map<BWAPI::Unit*,DefenseData>                                      defenders;
00054         std::set<BWAPI::Unit*>                                                                                  idleDefenders;
00055         bool                                                                                                                                                            hasObserver;
00056         int                                                                                                                                                                     lastFrameCheck;
00057         int                                                                                                                                                                     round;
00058 };
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Defines