Skip to content
Snippets Groups Projects
Commit 47e9cfcb authored by Jonathan Öhrling's avatar Jonathan Öhrling
Browse files

Added methods to use abilities.

parent 05af0f93
No related branches found
No related tags found
No related merge requests found
......@@ -63,22 +63,25 @@ PYBIND11_MODULE(library, m)
.def(py::init());
// IDABot is a specialization of Agent
py::class_<IDABot, PyIDABot, sc2::Agent>(m, "IDABot")
.def(py::init())
.def("on_game_start", &IDABot::OnGameStart)
.def("on_step", &IDABot::OnStep)
.def("get_all_units", &IDABot::GetAllUnits, "Returns a list of all units")
.def("get_my_units", &IDABot::GetMyUnits, "Returns a list of all units beloning to the player")
.def("get_player_race", &IDABot::GetPlayerRace)
.def_property_readonly("base_location_manager", &IDABot::Bases)
.def_property_readonly("tech_tree", &IDABot::GetTechTree)
.def_property_readonly("map_tools", &IDABot::Map)
.def_property_readonly("building_placer", &IDABot::GetBuildingPlacer)
.def_property_readonly("start_location", &IDABot::GetStartLocation, "CCPosition representing the start location")
.def_property_readonly("minerals", &IDABot::GetMinerals, "How much minerals we currently have")
.def_property_readonly("current_supply", &IDABot::GetCurrentSupply, "How much supply we are currently using")
.def_property_readonly("max_supply", &IDABot::GetMaxSupply, "How much supply we can currently use")
.def_property_readonly("gas", &IDABot::GetGas, "How much gas we currently have");
py::class_<IDABot, PyIDABot, sc2::Agent>(m, "IDABot")
.def(py::init())
.def("on_game_start", &IDABot::OnGameStart)
.def("on_step", &IDABot::OnStep)
.def("get_all_units", &IDABot::GetAllUnits, "Returns a list of all units")
.def("get_my_units", &IDABot::GetMyUnits, "Returns a list of all units beloning to the player")
.def("get_player_race", &IDABot::GetPlayerRace)
.def_property_readonly("base_location_manager", &IDABot::Bases)
.def_property_readonly("tech_tree", &IDABot::GetTechTree)
.def_property_readonly("map_tools", &IDABot::Map)
.def_property_readonly("building_placer", &IDABot::GetBuildingPlacer)
.def_property_readonly("start_location", &IDABot::GetStartLocation, "CCPosition representing the start location")
.def_property_readonly("minerals", &IDABot::GetMinerals, "How much minerals we currently have")
.def_property_readonly("current_supply", &IDABot::GetCurrentSupply, "How much supply we are currently using")
.def_property_readonly("max_supply", &IDABot::GetMaxSupply, "How much supply we can currently use")
.def_property_readonly("gas", &IDABot::GetGas, "How much gas we currently have")
.def("use_ability", &IDABot::CallUnitCommand, "Use an ability with the given unit")
.def("use_ability", &IDABot::CallUnitCommandWithPoint, "Use ability at point with the given unit")
.def("use_ability", &IDABot::CallUnitCommandWithTarget, "Use ability at target with the given unit");
py::class_<sc2::PlayerSetup>(m, "PlayerSetup");
......
......@@ -219,3 +219,17 @@ const TypeData & IDABot::Data(const MetaType & type) const
return m_techTree.getData(type);
}
void IDABot::CallUnitCommand(const Unit* unit, sc2::AbilityID ability)
{
Actions()->UnitCommand(unit->getUnitPtr(), ability, false);
}
void IDABot::CallUnitCommandWithPoint(const Unit* unit, sc2::AbilityID ability, const sc2::Point2D& point)
{
Actions()->UnitCommand(unit->getUnitPtr(), ability, point, false);
}
void IDABot::CallUnitCommandWithTarget(const Unit* unit, sc2::AbilityID ability, const Unit* target)
{
Actions()->UnitCommand(unit->getUnitPtr(), ability, target->getUnitPtr(), false);
}
......@@ -62,4 +62,9 @@ public:
const TypeData & Data(const CCUpgrade & type) const;
const TypeData & Data(const MetaType & type) const;
const TypeData & Data(const Unit & unit) const;
// Used for giving "raw" commands to units
void CallUnitCommand(const Unit* unit, sc2::AbilityID ability);
void CallUnitCommandWithPoint(const Unit* unit, sc2::AbilityID ability, const sc2::Point2D& point);
void CallUnitCommandWithTarget(const Unit* unit, sc2::AbilityID ability, const Unit* target);
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment