12 #include "sc2api/sc2_action.h" 14 #include "sc2api/sc2_data.h" 25 enum class UNIT_TYPEID;
26 enum class ABILITY_ID;
28 class ObservationInterface;
32 enum class Visibility {
44 typedef std::function<bool(const Unit& unit)>
Filter;
53 virtual uint32_t GetPlayerID()
const = 0;
57 virtual uint32_t GetGameLoop()
const = 0;
61 virtual const Units& GetUnits()
const = 0;
68 virtual Units GetUnits(
Unit::Alliance alliance, Filter filter = {})
const = 0;
74 virtual Units GetUnits(Filter filter)
const = 0;
79 virtual const Unit* GetUnit(Tag tag)
const = 0;
86 virtual const Unit* GetPreviousUnit(Tag tag)
const = 0;
90 virtual const Units& GetUnitsAdded()
const = 0;
96 virtual const Units& GetUnitsRemoved()
const = 0;
100 virtual const RawActions& GetRawActions()
const = 0;
108 virtual const std::vector<PowerSource>& GetPowerSources()
const = 0;
112 virtual const std::vector<UpgradeID>& GetUpgrades()
const = 0;
116 virtual const Score& GetScore()
const = 0;
121 virtual const Abilities& GetAbilityData(
bool force_refresh =
false)
const = 0;
126 virtual const UnitTypes& GetUnitTypeData(
bool force_refresh =
false)
const = 0;
131 virtual const Upgrades& GetUpgradeData(
bool force_refresh =
false)
const = 0;
136 virtual const Buffs& GetBuffData(
bool force_refresh =
false)
const = 0;
140 virtual const GameInfo& GetGameInfo()
const = 0;
144 virtual int32_t GetMinerals()
const = 0;
148 virtual int32_t GetVespene()
const = 0;
153 virtual int32_t GetFoodCap()
const = 0;
158 virtual int32_t GetFoodUsed()
const = 0;
163 virtual int32_t GetFoodArmy()
const = 0;
168 virtual int32_t GetFoodWorkers()
const = 0;
172 virtual int32_t GetIdleWorkerCount()
const = 0;
176 virtual int32_t GetArmyCount()
const = 0;
180 virtual int32_t GetWarpGateCount()
const = 0;
184 virtual Point2D GetCameraPos()
const = 0;
188 virtual Point3D GetStartLocation()
const = 0;
193 virtual bool HasCreep(
const Point2D& point)
const = 0;
198 virtual Visibility GetVisibility(
const Point2D& point)
const = 0;
205 virtual bool IsPathable(
const Point2D& point)
const = 0;
212 virtual bool IsPlacable(
const Point2D& point)
const = 0;
217 virtual float TerrainHeight(
const Point2D& point)
const = 0;
223 virtual const SC2APIProtocol::Observation* GetRawObservation()
const = 0;
239 virtual AvailableAbilities GetAbilitiesForUnit(Tag tag,
bool ignore_resource_requirements =
false) = 0;
245 virtual std::vector<AvailableAbilities> GetAbilitiesForUnits(
const std::vector<Tag>& tags,
bool ignore_resource_requirements =
false) = 0;
251 virtual float PathingDistance(
const Point2D& start,
const Point2D& end) = 0;
257 virtual float PathingDistance(
const Tag& start_unit_tag,
const Point2D& end) = 0;
260 Tag start_unit_tag_ = NullTag;
265 virtual std::vector<float> PathingDistance(
const std::vector<PathingQuery>& queries) = 0;
274 virtual bool Placement(
const AbilityID& ability,
const Point2D& target_pos, Tag placing_unit_tag_ = NullTag) = 0;
280 target_pos(target) {};
284 Tag placing_unit_tag = 0LL;
290 virtual std::vector<bool> Placement(
const std::vector<PlacementQuery>& queries) = 0;
308 virtual void UnitCommand(Tag unit_tag,
AbilityID ability) = 0;
317 virtual void UnitCommand(Tag unit_tag,
AbilityID ability,
const Point2D& point) = 0;
323 virtual void UnitCommand(Tag unit_tag,
AbilityID ability, Tag target_tag) = 0;
326 virtual void UnitCommand(
const std::vector<Tag>& unit_tags,
AbilityID ability) = 0;
329 virtual void UnitCommand(
const std::vector<Tag>& unit_tags,
AbilityID ability,
const Point2D& point) = 0;
332 virtual void UnitCommand(
const std::vector<Tag>& unit_tags,
AbilityID ability, Tag target_tag) = 0;
337 virtual const std::vector<Tag>& Commands()
const = 0;
342 virtual void ToggleAutocast(Tag unit_tag,
AbilityID ability) = 0;
346 virtual void ToggleAutocast(
const std::vector<Tag>& unit_tags,
AbilityID ability) = 0;
352 virtual void SendActions() = 0;
363 virtual void UnitCommand(
AbilityID ability) = 0;
369 virtual void UnitCommand(
AbilityID ability,
const Point2DI& point,
bool minimap =
false) = 0;
372 virtual void CameraMove(
const Point2DI& center) = 0;
377 virtual void Select(
const Point2DI& center, PointSelectionType selection_type) = 0;
383 virtual void Select(
const Point2DI& p0,
const Point2DI& p1,
bool add_to_selection =
false) = 0;
387 virtual void SendActions() = 0;
404 virtual void DebugTextOut(
const std::string& out,
Color color = Colors::White) = 0;
409 virtual void DebugTextOut(
const std::string& out,
const Point2D& pt_virtual_2D,
Color color = Colors::White) = 0;
414 virtual void DebugTextOut(
const std::string& out,
const Point3D& pt3D,
Color color = Colors::White) = 0;
419 virtual void DebugLineOut(
const Point3D& p0,
const Point3D& p1,
Color color = Colors::White) = 0;
424 virtual void DebugBoxOut(
const Point3D& p_min,
const Point3D& p_max,
Color color = Colors::White) = 0;
429 virtual void DebugSphereOut(
const Point3D& p,
float r,
Color color = Colors::White) = 0;
438 virtual void DebugCreateUnit(
UnitTypeID unit_type,
const Point2D& p, uint32_t player_id = 1, uint32_t count = 1) = 0;
442 virtual void DebugKillUnit(Tag tag) = 0;
445 virtual void DebugShowMap() = 0;
447 virtual void DebugEnemyControl() = 0;
449 virtual void DebugIgnoreFood() = 0;
451 virtual void DebugIgnoreResourceCost() = 0;
453 virtual void DebugGiveAllResources() = 0;
455 virtual void DebugGodMode() = 0;
457 virtual void DebugIgnoreMineral() = 0;
459 virtual void DebugNoCooldowns() = 0;
461 virtual void DebugGiveAllTech() = 0;
463 virtual void DebugGiveAllUpgrades() = 0;
465 virtual void DebugFastBuild() = 0;
467 virtual void DebugSetScore(
float score) = 0;
470 virtual void DebugEndGame(
bool victory =
false) = 0;
474 virtual void DebugSetEnergy(
float value, Tag tag) = 0;
478 virtual void DebugSetLife(
float value, Tag tag) = 0;
482 virtual void DebugSetShields(
float value, Tag tag) = 0;
486 virtual void DebugMoveCamera(
const Point2D& pos) = 0;
496 virtual void DebugTestApp(AppTest app_test,
int delay_ms = 0) = 0;
500 virtual void SendDebug() = 0;
Possible actions for feature layers.
Definition: sc2_action.h:113
Definition: sc2_interfaces.h:276
Common data types, including points, rectangles and colors.
A unit. Could be a structure, a worker or a military unit.
Definition: sc2_unit.h:63
Unit data in an observation.
Alliance
Relationship to this player.
Definition: sc2_unit.h:77
Definition: sc2_interfaces.h:231
2D integer point.
Definition: sc2_common.h:95
Scores.
Definition: sc2_score.h:179
Definition: sc2_common.h:14
Definition: sc2_common.h:49
Definition: sc2_action.h:9
All available abilities for a unit.
Definition: sc2_data.h:91
RGB Color.
Definition: sc2_common.h:115
Definition: sc2_interfaces.h:259
The ObservationInterface reflects the current state of the game. Guaranteed to be valid when OnGameSt...
Definition: sc2_interfaces.h:47
std::function< bool(const Unit &unit)> Filter
Definition: sc2_interfaces.h:44
Initial data for a game and map.
Definition: sc2_map_info.h:69
Definition: sc2_interfaces.h:395
Definition: sc2_interfaces.h:296
Definition: sc2_connection.h:16
Definition: sc2_interfaces.h:357