BWAPI
|
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 }