BWAPI
UAlbertaBot_src/Projects/UAlbertaBot/Source/StrategyManager.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include "Common.h"
00004 #include "BWTA.h"
00005 #include "base/BuildOrderQueue.h"
00006 #include "UnitInfoState.h"
00007 #include "base/WorkerManager.h"
00008 
00009 class StrategyManager 
00010 {
00011         StrategyManager();
00012         static StrategyManager *                                instance;
00013 
00014         std::vector<std::string>        protossOpeningBook;
00015         std::vector<std::string>        terranOpeningBook;
00016         std::vector<std::string>        zergOpeningBook;
00017 
00018         BWAPI::Race                                     enemyRace;
00019 
00020         bool                                            firstAttackSent;
00021 
00022         std::vector< std::pair<MetaType,int> > currentGoal;
00023 
00024 public:
00025 
00026         enum ProtossStrategy { ProtossZealotRush, ProtossDarkTemplar, NumProtossStrategies };
00027         enum TerranStrategy  { TerranZealotRush, TerranDarkTemplar, NumTerranStrategies };
00028         enum ZergStrategy    { ZergZealotRush, NumZergStrategies };
00029 
00030         static StrategyManager *        getInstance();
00031 
00032         bool    expand();
00033         bool    regroup(int numInRadius);
00034         bool    doAttack(const UnitVector & freeUnits);
00035         bool    defendWithWorkers();
00036         void    drawGoalInformation(int x, int y);
00037 
00038         bool    rushDetected();
00039 
00040         std::vector< std::pair<MetaType,int> > getBuildOrderGoal();
00041 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines