BWAPI
Aiur/include/BaseManager/BaseManager.h
Go to the documentation of this file.
00001 #pragma once
00002 #include <map>
00003 #include <set>
00004 #include <BWAPI.h>
00005 #include <Arbitrator.h>
00006 #include <BWTA.h>
00007 #include <BuildManager.h>
00008 #include "Base.h"
00009 class BuildOrderManager;
00010 class BorderManager;
00011 class BaseManager
00012 {
00013 public:
00014 
00015         BaseManager();
00016         void                                                                            setBuildOrderManager            (BuildOrderManager* builder);
00017         void                                                                            setBuildManager                                 (BuildManager* buildManager);
00018         void                                                                            setBorderManager                                (BorderManager* borderManager);
00019         void                                                                            update                                                                  ();
00020         void                                                                            updateRefineries                                ();
00021         Base*                                                                           getBase                                                                 (BWTA::BaseLocation* location);
00022         BWTA::BaseLocation*                     getLastTakenBaseLocation();
00023         BWTA::BaseLocation*                     expand                                                                  (int priority = 100);
00024         BWTA::BaseLocation*                     expand                                                                  (BWTA::BaseLocation* location, int priority = 100);
00025         std::set<Base*>                                 getActiveBases                                  () const;
00026         std::set<Base*>                                 getAllBases                                                     () const;
00027         std::set<Base*>                                 getAllBasesWithGas                      ();
00028 
00029         const std::set<BWTA::Region*>& getMyRegions     () const;
00030 
00031         std::string                                     getName                                                                 ();
00032         void                                                            onRemoveUnit                                            (BWAPI::Unit* unit);
00033 
00034         bool                                                            hasRefinery                                                     (BWTA::BaseLocation* location);
00035         bool                                                            isRefineryNeeded                                ();
00036         void                                                            setRefineryBuildPriority(int priority);
00037         int                                                                     getRefineryBuildPriority();
00038 
00039 private:
00040         void                                                            addBase                                                                 (BWTA::BaseLocation* location);
00041         void                                                            removeBase                                                      (BWTA::BaseLocation* location);
00042 
00043         BuildOrderManager                                                                               *builder;
00044         BorderManager                                                                                           *borderManager;
00045         BuildManager                                                                                            *buildManager;
00046         std::map<BWTA::BaseLocation*,Base*> location2base;
00047         std::set<Base*>                                                                                 allBases;
00048         std::set<BWTA::Region*>                                                 myRegions;
00049         BWTA::BaseLocation                                                                      *lastTakenBaseLocation;
00050         int                                                                                                                                     refineryNeeded;
00051         int                                                                                                                                     refineryBuildPriority;
00052         int                                                                                                                                     lastFrameCheck;
00053 };
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Defines