BWAPI
quorum/include/BWAPI/UpgradeType.h
Go to the documentation of this file.
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 }
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Defines