From 8e532ee6da6dfbe6904cca45d0c68fcb72a052ad Mon Sep 17 00:00:00 2001 From: dawab699 <dawab699@student.liu.se> Date: Mon, 9 Dec 2019 22:09:38 +0100 Subject: [PATCH] feat: add is_carrying_minerals method for Unit class --- python-api-src/lib_unit.cpp | 1 + src/Unit.cpp | 14 ++++++++++++++ src/Unit.h | 1 + 3 files changed, 16 insertions(+) diff --git a/python-api-src/lib_unit.cpp b/python-api-src/lib_unit.cpp index cb99e6561..7cc303bde 100644 --- a/python-api-src/lib_unit.cpp +++ b/python-api-src/lib_unit.cpp @@ -34,6 +34,7 @@ void define_unit(py::module & m) .def_property_readonly("current_ability_id", &Unit::getCurrentAbilityID, "The AbilityID of currently used ability") .def_property_readonly("facing", &Unit::getFacing) .def_property_readonly("radius", &Unit::getRadius) + .def_property_readonly("is_carrying_minerals", &Unit::isCarryingMinerals) .def("hold_position", &Unit::holdPosition) .def("patrol", py::overload_cast<const CCPosition &>(&Unit::patrol, py::const_)) .def("stop_dance", &Unit::stopDance) diff --git a/src/Unit.cpp b/src/Unit.cpp index 7316c0801..eeb5cdb3a 100644 --- a/src/Unit.cpp +++ b/src/Unit.cpp @@ -425,3 +425,17 @@ void Unit::stopDance() const BOT_ASSERT(isValid(), "Unit is not valid"); m_bot->Actions()->UnitCommand(m_unit, sc2::ABILITY_ID::STOP_DANCE); } + +bool Unit::isCarryingMinerals() const +{ + BOT_ASSERT(isValid(), "Unit is not valid"); + std::vector<CCBuff> buffs = m_unit->buffs; + for (auto & b : buffs) + { + if (b.to_string() == "271" or b.to_string() == "272") + { + return true; + } + } + return false; +} diff --git a/src/Unit.h b/src/Unit.h index 3d5017726..efaff97b8 100644 --- a/src/Unit.h +++ b/src/Unit.h @@ -47,6 +47,7 @@ public: bool isValid() const; bool isTraining() const; bool isConstructing(const UnitType & type) const; + bool isCarryingMinerals() const; bool isBlip() const; bool hasTarget() const; -- GitLab