BWAPI
|
00001 #pragma once 00002 #include "Common.h" 00003 #include "InformationManager.h" 00004 #include "State.h" 00005 00006 class StrategyManager; 00007 00008 //------------------------------------------------------------------------ 00009 // Execute 1 Factory ... 00010 //------------------------------------------------------------------------ 00011 class OneFactory : public State<StrategyManager> 00012 { 00013 private: 00014 OneFactory() { _name = "1 Factory ..."; } 00015 OneFactory(const OneFactory&); 00016 OneFactory& operator=(const OneFactory&); 00017 public: 00018 static OneFactory* Instance(); 00019 virtual void Enter(StrategyManager* strategyManager); 00020 virtual void Execute(StrategyManager* strategyManager); 00021 virtual void Exit(StrategyManager* strategyManager); 00022 }; 00023 00024 //------------------------------------------------------------------------ 00025 // Execute 2 Factories Rush Defense 00026 //------------------------------------------------------------------------ 00027 class RushDefense : public State<StrategyManager> 00028 { 00029 private: 00030 RushDefense(){ _name = "2 Factories Rush Defense"; } 00031 RushDefense(const RushDefense&); 00032 RushDefense& operator=(const RushDefense&); 00033 public: 00034 static RushDefense* Instance(); 00035 virtual void Enter(StrategyManager* strategyManager); 00036 virtual void Execute(StrategyManager* strategyManager); 00037 virtual void Exit(StrategyManager* strategyManager); 00038 }; 00039 00040 //------------------------------------------------------------------------ 00041 // Execute 1 Factory Fast Expand Opening 00042 //------------------------------------------------------------------------ 00043 class OneFactoryFastExpand : public State<StrategyManager> 00044 { 00045 private: 00046 OneFactoryFastExpand(){ _name = "1 Factory Fast Expand Opening"; } 00047 OneFactoryFastExpand(const OneFactoryFastExpand&); 00048 OneFactoryFastExpand& operator=(const OneFactoryFastExpand&); 00049 public: 00050 static OneFactoryFastExpand* Instance(); 00051 virtual void Enter(StrategyManager* strategyManager); 00052 virtual void Execute(StrategyManager* strategyManager); 00053 virtual void Exit(StrategyManager* strategyManager); 00054 }; 00055 00056 //------------------------------------------------------------------------ 00057 // Execute 3 Factories 00058 //------------------------------------------------------------------------ 00059 class ThreeFactories : public State<StrategyManager> 00060 { 00061 private: 00062 ThreeFactories(){ _name = "3 Factories"; } 00063 ThreeFactories(const ThreeFactories&); 00064 ThreeFactories& operator=(const ThreeFactories&); 00065 public: 00066 static ThreeFactories* Instance(); 00067 virtual void Enter(StrategyManager* strategyManager); 00068 virtual void Execute(StrategyManager* strategyManager); 00069 virtual void Exit(StrategyManager* strategyManager); 00070 }; 00071 00072 //************************** 00073 // ZERG STRATEGIES 00074 //************************** 00075 00076 //------------------------------------------------------------------------ 00077 // Execute 2 Port Wraith 00078 //------------------------------------------------------------------------ 00079 class TwoPortWraith : public State<StrategyManager> 00080 { 00081 private: 00082 TwoPortWraith() { _name = "2 Port Wraith"; } 00083 TwoPortWraith(const TwoPortWraith&); 00084 TwoPortWraith& operator=(const TwoPortWraith&); 00085 public: 00086 static TwoPortWraith* Instance(); 00087 virtual void Enter(StrategyManager* strategyManager); 00088 virtual void Execute(StrategyManager* strategyManager); 00089 virtual void Exit(StrategyManager* strategyManager); 00090 }; 00091 00092 //------------------------------------------------------------------------ 00093 // Execute 1 Barracks Fast Expansion 00094 //------------------------------------------------------------------------ 00095 class OneRaxFE : public State<StrategyManager> 00096 { 00097 private: 00098 OneRaxFE() { _name = "1 Barracks Fast Expansion"; } 00099 OneRaxFE(const OneRaxFE&); 00100 OneRaxFE& operator=(const OneRaxFE&); 00101 public: 00102 static OneRaxFE* Instance(); 00103 virtual void Enter(StrategyManager* strategyManager); 00104 virtual void Execute(StrategyManager* strategyManager); 00105 virtual void Exit(StrategyManager* strategyManager); 00106 }; 00107 00108 //************************** 00109 // PROTOSS STRATEGIES 00110 //************************** 00111 00112 //------------------------------------------------------------------------ 00113 // Execute 2 Fact Vult/Mines 00114 //------------------------------------------------------------------------ 00115 class TwoFactMines : public State<StrategyManager> 00116 { 00117 private: 00118 TwoFactMines() { _name = "2 Fact Vult/Mines"; } 00119 TwoFactMines(const TwoFactMines&); 00120 TwoFactMines& operator=(const TwoFactMines&); 00121 public: 00122 static TwoFactMines* Instance(); 00123 virtual void Enter(StrategyManager* strategyManager); 00124 virtual void Execute(StrategyManager* strategyManager); 00125 virtual void Exit(StrategyManager* strategyManager); 00126 }; 00127 00128 //------------------------------------------------------------------------ 00129 // Execute Tank transition 00130 //------------------------------------------------------------------------ 00131 class TankTransition : public State<StrategyManager> 00132 { 00133 private: 00134 TankTransition() { _name = "Tank transition"; } 00135 TankTransition(const TankTransition&); 00136 TankTransition& operator=(const TankTransition&); 00137 public: 00138 static TankTransition* Instance(); 00139 virtual void Enter(StrategyManager* strategyManager); 00140 virtual void Execute(StrategyManager* strategyManager); 00141 virtual void Exit(StrategyManager* strategyManager); 00142 }; 00143 00144 //------------------------------------------------------------------------ 00145 // Execute Full tank 00146 //------------------------------------------------------------------------ 00147 class FullTank : public State<StrategyManager> 00148 { 00149 private: 00150 FullTank() { _name = "Full tank"; } 00151 FullTank(const FullTank&); 00152 FullTank& operator=(const FullTank&); 00153 public: 00154 static FullTank* Instance(); 00155 virtual void Enter(StrategyManager* strategyManager); 00156 virtual void Execute(StrategyManager* strategyManager); 00157 virtual void Exit(StrategyManager* strategyManager); 00158 };