BWAPI
|
00001 #pragma once 00002 #include <string> 00003 #include <set> 00004 #include <BWAPI/Race.h> 00005 namespace BWAPI 00006 { 00007 class UnitType; 00008 class UpgradeType 00009 { 00010 public: 00011 UpgradeType(); 00012 UpgradeType(int id); 00013 UpgradeType(const UpgradeType& other); 00014 UpgradeType& operator=(const UpgradeType& other); 00015 operator int() const; 00016 00018 int getID() const; 00019 00021 std::string getName() const; 00022 00025 Race getRace() const; 00026 00028 int mineralPrice(int level = 1) const; 00029 00031 int mineralPriceFactor() const; 00032 00034 int gasPrice(int level = 1) const; 00035 00037 int gasPriceFactor() const; 00038 00040 int upgradeTime(int level = 1) const; 00041 00043 int upgradeTimeFactor() const; 00044 00046 int maxRepeats() const; 00047 00049 UnitType whatUpgrades() const; 00050 00052 UnitType whatsRequired(int level = 1) const; 00053 00055 const std::set<UnitType>& whatUses() const; 00056 private: 00057 int id; 00058 }; 00059 namespace UpgradeTypes 00060 { 00062 UpgradeType getUpgradeType(std::string name); 00063 00065 std::set<UpgradeType>& allUpgradeTypes(); 00066 void init(); 00067 extern const UpgradeType Terran_Infantry_Armor; 00068 extern const UpgradeType Terran_Vehicle_Plating; 00069 extern const UpgradeType Terran_Ship_Plating; 00070 extern const UpgradeType Zerg_Carapace; 00071 extern const UpgradeType Zerg_Flyer_Carapace; 00072 extern const UpgradeType Protoss_Ground_Armor; 00073 extern const UpgradeType Protoss_Air_Armor; 00074 extern const UpgradeType Terran_Infantry_Weapons; 00075 extern const UpgradeType Terran_Vehicle_Weapons; 00076 extern const UpgradeType Terran_Ship_Weapons; 00077 extern const UpgradeType Zerg_Melee_Attacks; 00078 extern const UpgradeType Zerg_Missile_Attacks; 00079 extern const UpgradeType Zerg_Flyer_Attacks; 00080 extern const UpgradeType Protoss_Ground_Weapons; 00081 extern const UpgradeType Protoss_Air_Weapons; 00082 extern const UpgradeType Protoss_Plasma_Shields; 00083 extern const UpgradeType U_238_Shells; 00084 extern const UpgradeType Ion_Thrusters; 00085 extern const UpgradeType Titan_Reactor; 00086 extern const UpgradeType Ocular_Implants; 00087 extern const UpgradeType Moebius_Reactor; 00088 extern const UpgradeType Apollo_Reactor; 00089 extern const UpgradeType Colossus_Reactor; 00090 extern const UpgradeType Ventral_Sacs; 00091 extern const UpgradeType Antennae; 00092 extern const UpgradeType Pneumatized_Carapace; 00093 extern const UpgradeType Metabolic_Boost; 00094 extern const UpgradeType Adrenal_Glands; 00095 extern const UpgradeType Muscular_Augments; 00096 extern const UpgradeType Grooved_Spines; 00097 extern const UpgradeType Gamete_Meiosis; 00098 extern const UpgradeType Metasynaptic_Node; 00099 extern const UpgradeType Singularity_Charge; 00100 extern const UpgradeType Leg_Enhancements; 00101 extern const UpgradeType Scarab_Damage; 00102 extern const UpgradeType Reaver_Capacity; 00103 extern const UpgradeType Gravitic_Drive; 00104 extern const UpgradeType Sensor_Array; 00105 extern const UpgradeType Gravitic_Boosters; 00106 extern const UpgradeType Khaydarin_Amulet; 00107 extern const UpgradeType Apial_Sensors; 00108 extern const UpgradeType Gravitic_Thrusters; 00109 extern const UpgradeType Carrier_Capacity; 00110 extern const UpgradeType Khaydarin_Core; 00111 extern const UpgradeType Argus_Jewel; 00112 extern const UpgradeType Argus_Talisman; 00113 extern const UpgradeType Caduceus_Reactor; 00114 extern const UpgradeType Chitinous_Plating; 00115 extern const UpgradeType Anabolic_Synthesis; 00116 extern const UpgradeType Charon_Boosters; 00117 extern const UpgradeType None; 00118 extern const UpgradeType Unknown; 00119 } 00120 }