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