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