diff --git a/python-api-src/lib_unit.cpp b/python-api-src/lib_unit.cpp index 90aedec40182dc55c38ff9ffcf3b0475694bab60..e796c3012e9888b20af605a039c669ca283073b1 100644 --- a/python-api-src/lib_unit.cpp +++ b/python-api-src/lib_unit.cpp @@ -29,8 +29,9 @@ void define_unit(py::module & m) .def("stop", &Unit::stop) .def("attack_unit", &Unit::attackUnit) .def("attack_move", &Unit::attackMove) - .def("ability", &Unit::ability) - .def("ability_at_target", &Unit::ability_at_target) + .def("ability", py::overload_cast<sc2::AbilityID>(&Unit::ability, py::const_)) + .def("ability", py::overload_cast<sc2::AbilityID, const CCPosition &>(&Unit::ability, py::const_)) + .def("ability", py::overload_cast<sc2::AbilityID, const Unit &>(&Unit::ability, py::const_)) .def("move", py::overload_cast<const CCPosition &>(&Unit::move, py::const_)) .def("move", py::overload_cast<const CCTilePosition &>(&Unit::move, py::const_)) .def("right_click", &Unit::rightClick, "Same as right-clicking in the game, for example making workers mine minerals") diff --git a/python-api-src/library.cpp b/python-api-src/library.cpp index cc20700acdb0ec6158aafe1437edeef832c257b7..4ba7a80114fed03f05b7b19b90cad63a29486926 100644 --- a/python-api-src/library.cpp +++ b/python-api-src/library.cpp @@ -85,10 +85,7 @@ PYBIND11_MODULE(library, m) .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::UseAbility, "Use an ability with the given unit") - .def("use_ability", &IDABot::UseAbilityWithPoint, "Use ability at point with the given unit") - .def("use_ability", &IDABot::UseAbilityWithTarget, "Use ability at target with the given unit"); + .def_property_readonly("gas", &IDABot::GetGas, "How much gas we currently have"); py::class_<sc2::PlayerSetup>(m, "PlayerSetup"); diff --git a/src/Common.h b/src/Common.h index a8538c47bc7fc66de78c38eec2982bfa91e182f8..5d62b7bd71206bdb876a76080ba12cbd700cccbf 100644 --- a/src/Common.h +++ b/src/Common.h @@ -31,4 +31,4 @@ typedef size_t CCPlayer; namespace Players { enum {Self = 0u, Enemy = 1u, Neutral = 2u, Ally = 3u, Size = 4u, None = 5u}; -} \ No newline at end of file +} diff --git a/src/IDABot.cpp b/src/IDABot.cpp index 5705dffe94268775333d0223686a1952417ef31d..c12fe5ab76ceddd8b69575208806c514718c3265 100644 --- a/src/IDABot.cpp +++ b/src/IDABot.cpp @@ -218,18 +218,3 @@ const TypeData & IDABot::Data(const MetaType & type) const { return m_techTree.getData(type); } - -void IDABot::UseAbility(const Unit& unit, sc2::AbilityID ability) -{ - Actions()->UnitCommand(unit.getUnitPtr(), ability, false); -} - -void IDABot::UseAbilityWithPoint(const Unit& unit, sc2::AbilityID ability, const sc2::Point2D& point) -{ - Actions()->UnitCommand(unit.getUnitPtr(), ability, point, false); -} - -void IDABot::UseAbilityWithTarget(const Unit& unit, sc2::AbilityID ability, const Unit* target) -{ - Actions()->UnitCommand(unit.getUnitPtr(), ability, target->getUnitPtr(), false); -} diff --git a/src/IDABot.h b/src/IDABot.h index 100b581a5ba449b8c50df19e31b9b037b281e3af..eca954f01a1857bf31747ae128a239b86dc19e88 100644 --- a/src/IDABot.h +++ b/src/IDABot.h @@ -62,9 +62,4 @@ 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 UseAbility(const Unit& unit, sc2::AbilityID ability); - void UseAbilityWithPoint(const Unit& unit, sc2::AbilityID ability, const sc2::Point2D& point); - void UseAbilityWithTarget(const Unit& unit, sc2::AbilityID ability, const Unit* target); }; diff --git a/src/Unit.cpp b/src/Unit.cpp index 224dc4d199fa01d3303388d806866c017e8f3d34..5d5ec6c8850b9906531ba8aae091e46c1a4e94b6 100644 --- a/src/Unit.cpp +++ b/src/Unit.cpp @@ -296,18 +296,6 @@ void Unit::morph(const UnitType & type) const m_bot->Actions()->UnitCommand(m_unit, m_bot->Data(type).morphAbility); } -void Unit::ability(sc2::AbilityID & ability) const -{ - BOT_ASSERT(isValid(), "Unit is not valid"); - m_bot->Actions()->UnitCommand(m_unit, ability); -} - -void Unit::ability_at_target(sc2::AbilityID & ability, const Unit & target) const -{ - BOT_ASSERT(isValid(), "Unit is not valid"); - m_bot->Actions()->UnitCommand(m_unit, ability, target.getUnitPtr()); -} - void Unit::research(sc2::UpgradeID upgrade) const { BOT_ASSERT(isValid(), "Unit is not valid"); @@ -319,3 +307,18 @@ bool Unit::isConstructing(const UnitType & type) const sc2::AbilityID buildAbility = m_bot->Data(type).buildAbility; return (getUnitPtr()->orders.size() > 0) && (getUnitPtr()->orders[0].ability_id == buildAbility); } + +void Unit::ability(sc2::AbilityID ability) const +{ + m_bot->Actions()->UnitCommand(getUnitPtr(), ability, false); +} + +void Unit::ability(sc2::AbilityID ability, const sc2::Point2D& point) const +{ + m_bot->Actions()->UnitCommand(getUnitPtr(), ability, point, false); +} + +void Unit::ability(sc2::AbilityID ability, const Unit& target) const +{ + m_bot->Actions()->UnitCommand(getUnitPtr(), ability, target.getUnitPtr(), false); +} diff --git a/src/Unit.h b/src/Unit.h index 74b2b50a2d0be5636293eae47d0b23fc97861535..474428540635813596008cb9186a8db13b48c9f4 100644 --- a/src/Unit.h +++ b/src/Unit.h @@ -52,8 +52,6 @@ public: void attackUnit (const Unit & target) const; void attackMove (const CCPosition & targetPosition) const; void move (const CCPosition & targetPosition) const; - void ability (sc2::AbilityID & ability) const; - void ability_at_target (sc2::AbilityID & ability, const Unit & target) const; void move (const CCTilePosition & targetTilePosition) const; void rightClick (const Unit & target) const; void repair (const Unit & target) const; @@ -62,4 +60,7 @@ public: void train (const UnitType & buildingType) const; void morph (const UnitType & type) const; void research (sc2::UpgradeID upgrade) const; + void ability (sc2::AbilityID ability) const; + void ability (sc2::AbilityID ability, const sc2::Point2D & point) const; + void ability (sc2::AbilityID ability, const Unit & target) const; };