BWAPI
ExampleAIModule/Source/StrategyVsTerran.h
Go to the documentation of this file.
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 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines