BWAPI
Undermind/proxy/cpp/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 namespace BWAPI
00007 {
00008   class UnitType;
00009   class WeaponType;
00010   class TechType
00011   {
00012     public:
00013       TechType();
00014       TechType(int id);
00015       TechType(const TechType& other);
00016       TechType& operator=(const TechType& other);
00017       operator int() const;
00018 
00020       int getID() const;
00021 
00023       std::string getName() const;
00024 
00027       Race getRace() const;
00028 
00030       int mineralPrice() const;
00031 
00033       int gasPrice() const;
00034 
00036       int researchTime() const;
00037 
00039       int energyUsed() const;
00040 
00043       UnitType whatResearches() const;
00044 
00048       WeaponType getWeapon() const;
00049 
00051       bool targetsUnit() const;
00052 
00054       bool targetsPosition() const;
00055 
00058       const std::set<UnitType>& whatUses() const;
00059 
00060     private:
00061       int id;
00062   };
00063   namespace TechTypes
00064   {
00066     TechType getTechType(std::string name);
00067 
00069     std::set<TechType>& allTechTypes();
00070     void init();
00071     extern const TechType Stim_Packs;
00072     extern const TechType Lockdown;
00073     extern const TechType EMP_Shockwave;
00074     extern const TechType Spider_Mines;
00075     extern const TechType Scanner_Sweep;
00076     extern const TechType Tank_Siege_Mode;
00077     extern const TechType Defensive_Matrix;
00078     extern const TechType Irradiate;
00079     extern const TechType Yamato_Gun;
00080     extern const TechType Cloaking_Field;
00081     extern const TechType Personnel_Cloaking;
00082     extern const TechType Burrowing;
00083     extern const TechType Infestation;
00084     extern const TechType Spawn_Broodlings;
00085     extern const TechType Dark_Swarm;
00086     extern const TechType Plague;
00087     extern const TechType Consume;
00088     extern const TechType Ensnare;
00089     extern const TechType Parasite;
00090     extern const TechType Psionic_Storm;
00091     extern const TechType Hallucination;
00092     extern const TechType Recall;
00093     extern const TechType Stasis_Field;
00094     extern const TechType Archon_Warp;
00095     extern const TechType Restoration;
00096     extern const TechType Disruption_Web;
00097     extern const TechType Mind_Control;
00098     extern const TechType Dark_Archon_Meld;
00099     extern const TechType Feedback;
00100     extern const TechType Optical_Flare;
00101     extern const TechType Maelstrom;
00102     extern const TechType Lurker_Aspect;
00103     extern const TechType Healing;
00104     extern const TechType None;
00105     extern const TechType Unknown;
00106     extern const TechType Nuclear_Strike;
00107   };
00108 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines