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