BWAPI
SPAR/AIModule/BWAPI/include/BWAPI/TechType.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include <string>
00004 #include <set>
00005 #include <BWAPI/Race.h>
00006 #include <BWAPI/Order.h>
00007 namespace BWAPI
00008 {
00009   class UnitType;
00010   class WeaponType;
00011   class TechType
00012   {
00013     public:
00014       TechType();
00015       TechType(int id);
00016       TechType(const TechType& other);
00017       TechType& operator=(const TechType& other);
00018       operator int() const;
00019 
00021       int getID() const;
00022 
00024       std::string getName() const;
00025 
00028       Race getRace() const;
00029 
00031       int mineralPrice() const;
00032 
00034       int gasPrice() const;
00035 
00037       int researchTime() const;
00038 
00040       int energyUsed() const;
00041 
00044       UnitType whatResearches() const;
00045 
00049       WeaponType getWeapon() const;
00050 
00052       bool targetsUnit() const;
00053 
00055       bool targetsPosition() const;
00056 
00059       const std::set<UnitType>& whatUses() const;
00060 
00062       Order getOrder() const;
00063 
00064     private:
00065       int id;
00066   };
00067   namespace TechTypes
00068   {
00070     TechType getTechType(std::string name);
00071 
00073     std::set<TechType>& allTechTypes();
00074     void init();
00075     extern const TechType Stim_Packs;
00076     extern const TechType Lockdown;
00077     extern const TechType EMP_Shockwave;
00078     extern const TechType Spider_Mines;
00079     extern const TechType Scanner_Sweep;
00080     extern const TechType Tank_Siege_Mode;
00081     extern const TechType Defensive_Matrix;
00082     extern const TechType Irradiate;
00083     extern const TechType Yamato_Gun;
00084     extern const TechType Cloaking_Field;
00085     extern const TechType Personnel_Cloaking;
00086     extern const TechType Burrowing;
00087     extern const TechType Infestation;
00088     extern const TechType Spawn_Broodlings;
00089     extern const TechType Dark_Swarm;
00090     extern const TechType Plague;
00091     extern const TechType Consume;
00092     extern const TechType Ensnare;
00093     extern const TechType Parasite;
00094     extern const TechType Psionic_Storm;
00095     extern const TechType Hallucination;
00096     extern const TechType Recall;
00097     extern const TechType Stasis_Field;
00098     extern const TechType Archon_Warp;
00099     extern const TechType Restoration;
00100     extern const TechType Disruption_Web;
00101     extern const TechType Mind_Control;
00102     extern const TechType Dark_Archon_Meld;
00103     extern const TechType Feedback;
00104     extern const TechType Optical_Flare;
00105     extern const TechType Maelstrom;
00106     extern const TechType Lurker_Aspect;
00107     extern const TechType Healing;
00108     extern const TechType None;
00109     extern const TechType Unknown;
00110     extern const TechType Nuclear_Strike;
00111   };
00112 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines