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