3 #include "sc2_proto_interface.h"    12 class ObservationInterface;
    14 typedef MessageResponsePtr<SC2APIProtocol::ResponseData> ResponseDataPtr;
    26     bool requires_point = 
false;
    83     void ReadFromProto(
const SC2APIProtocol::AbilityData& ability_data);
    85     std::string Log() 
const;
    88 typedef std::vector<AbilityData> Abilities;
   102         return unit_tag && unit_type_id;
   107 enum class Attribute {
   129     void ReadFromProto(
const SC2APIProtocol::DamageBonus& damage_bonus);
   134     enum class TargetType {
   142     std::vector<DamageBonus> damage_bonus;              
   149     void ReadFromProto(
const SC2APIProtocol::Weapon& weapon);
   206     void ReadFromProto(
const SC2APIProtocol::UnitTypeData& unit_data);
   208     std::string Log() 
const;
   211 typedef std::vector<UnitTypeData> UnitTypes;
   230     void ReadFromProto(
const SC2APIProtocol::UpgradeData& upgrade_data);
   231     std::string Log() 
const;
   234 typedef std::vector<UpgradeData> Upgrades;
   245     void ReadFromProto(
const SC2APIProtocol::BuffData& buff_data);
   246     std::string Log() 
const;
   249 typedef std::vector<BuffData> Buffs;
   262     void ReadFromProto(
const SC2APIProtocol::EffectData& effect_data);
   263     std::string Log() 
const;
   266 typedef std::vector<EffectData> Effects;
   271         position(in_position),
   291     void ReadFromProto(
const SC2APIProtocol::Effect& effect);
 float research_time
Time in GameLoops to research this upgrade. 
Definition: sc2_data.h:226
uint32_t effect_id
Stable ID. This ID will not change between patches. 
Definition: sc2_data.h:254
bool available
If true, the ability is available to the current mods/map. 
Definition: sc2_data.h:46
uint32_t upgrade_id
Stable ID. This ID will not change between patches. 
Definition: sc2_data.h:216
Damage bonus of unit. 
Definition: sc2_data.h:123
Tag tag
Unit tag of the power source. 
Definition: sc2_data.h:280
UnitTypeID unit_type_id
Stable ID. This ID will not change between patches. 
Definition: sc2_data.h:155
std::string friendly_name
In case the button name is not descriptive. 
Definition: sc2_data.h:56
The visuals of a persistent ability on the map. (eg. Psistorm) 
Definition: sc2_data.h:284
AbilityID ability_id
Ability that researches this upgrade. 
Definition: sc2_data.h:224
Target target
Determines if a point, unit, both or none is required as a target. 
Definition: sc2_data.h:64
A unit. Could be a structure, a worker or a military unit. 
Definition: sc2_unit.h:69
AbilityID ability_id
Ability that is available. 
Definition: sc2_data.h:24
bool allow_autocast
Autocast can be set. 
Definition: sc2_data.h:68
uint32_t link_index
Catalog (game data xml) index of the ability. 
Definition: sc2_data.h:52
float food_provided
How much food the unit provides. 
Definition: sc2_data.h:178
float sight_range
Range the unit reveals vision. 
Definition: sc2_data.h:190
Definition: sc2_common.h:49
float radius
Power source radius. 
Definition: sc2_data.h:278
UnitTypeID tech_requirement
Structure required to build this unit. (Or any with the same tech_alias) 
Definition: sc2_data.h:197
UnitTypeID unit_type_id
The unit type. 
Definition: sc2_data.h:97
Definition: sc2_action.h:9
bool is_building
Requires placement to construct a building. 
Definition: sc2_data.h:70
uint32_t effect_id
Type of the effect. 
Definition: sc2_data.h:286
Target
Type of target this ability applies to. 
Definition: sc2_data.h:32
std::string friendly_name
A more recognizable name of the effect. 
Definition: sc2_data.h:258
Race race
The race the unit belongs to. 
Definition: sc2_data.h:182
bool is_instant_placement
Placement next to an existing structure, e.g., an add-on like a Tech Lab. 
Definition: sc2_data.h:74
std::string name
Effect name, corresponds to the game's catalog. 
Definition: sc2_data.h:256
A list of enums provided for your convenience. 
bool require_attached
Whether tech_requirement is an add-on. 
Definition: sc2_data.h:199
std::vector< AvailableAbility > abilities
The available abilities. 
Definition: sc2_data.h:93
float footprint_radius
If the ability is placing a building, give the radius of the footprint. 
Definition: sc2_data.h:72
bool has_vespene
Whether the unit can have vespene (vespene geysers). 
Definition: sc2_data.h:188
uint32_t buff_id
Stable ID. This ID will not change between patches. 
Definition: sc2_data.h:239
std::vector< UnitTypeID > tech_alias
Units this is equivalent to in terms of satisfying tech requirements. 
Definition: sc2_data.h:193
All available abilities for a unit. 
Definition: sc2_data.h:91
std::string button_name
Name of the button for the command card. 
Definition: sc2_data.h:54
bool IsValid() const 
Definition: sc2_data.h:101
float armor
Armor of unit type. 
Definition: sc2_data.h:172
std::vector< uint32_t > remaps_from_ability_id
Other abilities remapped to this generic ability. 
Definition: sc2_data.h:62
AbilityID ability_id
Stable ID. For a given ability, this value will be immutable throughout different patches...
Definition: sc2_data.h:48
Buff data. 
Definition: sc2_data.h:237
std::string link_name
Catalog (game data xml) name of the ability. 
Definition: sc2_data.h:50
float movement_speed
Movement speed of unit type. 
Definition: sc2_data.h:170
bool has_minerals
Whether the unit can have minerals (mineral patches). 
Definition: sc2_data.h:186
std::vector< Weapon > weapons
Weapons on this unit type. 
Definition: sc2_data.h:174
std::vector< Point2D > positions
Definition: sc2_data.h:289
int vespene_cost
Cost in vespene to build this unit type. 
Definition: sc2_data.h:165
std::vector< Attribute > attributes
Unit attributes, may change based on upgrades. 
Definition: sc2_data.h:168
Power source information for Protoss. 
Definition: sc2_data.h:269
uint32_t remaps_to_ability_id
This ability id may be represented by the given more generic id. 
Definition: sc2_data.h:60
UnitTypeID unit_alias
Units that are morphed variants of the same unit. 
Definition: sc2_data.h:195
AbilityID ability_id
Which ability id creates the unit. 
Definition: sc2_data.h:180
The ObservationInterface reflects the current state of the game. Guaranteed to be valid when OnGameSt...
Definition: sc2_interfaces.h:47
Effect data. 
Definition: sc2_data.h:252
Types used in setting up a game. 
std::string name
Unit type name, corresponds to the game's catalog. 
Definition: sc2_data.h:157
float food_required
How much food the unit requires. 
Definition: sc2_data.h:176
std::string name
Buff name, corresponds to the game's catalog. 
Definition: sc2_data.h:241
bool allow_minimap
Can be cast in the minimap. (Not implemented) 
Definition: sc2_data.h:66
float build_time
How long the unit takes to build. 
Definition: sc2_data.h:184
Upgrade data. 
Definition: sc2_data.h:214
uint32_t cargo_size
Number of cargo slots they occupy in a transport. 
Definition: sc2_data.h:161
float radius
Size of the circle the effect impacts. 
Definition: sc2_data.h:260
Tag unit_tag
The unit. 
Definition: sc2_data.h:95
std::string hotkey
UI hotkey. 
Definition: sc2_data.h:58
Indicates if an ability is available, and if that ability requires a point. 
Definition: sc2_data.h:17
Unit weapon. 
Definition: sc2_data.h:133
int mineral_cost
Cost in minerals to build this unit type. 
Definition: sc2_data.h:163
std::string name
Upgrade name, corresponds to the game's catalog. 
Definition: sc2_data.h:218
float cast_range
Range unit can cast ability without needing to approach target. 
Definition: sc2_data.h:76
uint32_t mineral_cost
Mineral cost of researching the upgrade. 
Definition: sc2_data.h:220
bool requires_point
Indicates if the ability requires a point to invoke. 
Definition: sc2_data.h:26
Point2D position
Power source position. 
Definition: sc2_data.h:273
uint32_t vespene_cost
Vespene cost of researching the upgrade. 
Definition: sc2_data.h:222
Data about a unit type. This data is derived from the catalog (xml) data of the game and upgrades...
Definition: sc2_data.h:153
bool available
If true, the unit is available to the current mods/map. 
Definition: sc2_data.h:159
Data about an ability. 
Definition: sc2_data.h:30