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