BWAPI
trunk/bwapi/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 #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 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines