| 2009 | } |
| 2010 | |
| 2011 | bool ZergMultiplayerBot::BuildExtractor() { |
| 2012 | const ObservationInterface* observation = Observation(); |
| 2013 | Units bases = observation->GetUnits(Unit::Alliance::Self, IsTownHall()); |
| 2014 | |
| 2015 | if (CountUnitType(observation, UNIT_TYPEID::ZERG_EXTRACTOR) >= observation->GetUnits(Unit::Alliance::Self, IsTownHall()).size() * 2) { |
| 2016 | return false; |
| 2017 | } |
| 2018 | |
| 2019 | for (const auto& base : bases) { |
| 2020 | if (base.assigned_harvesters >= base.ideal_harvesters) { |
| 2021 | if (base.build_progress == 1) { |
| 2022 | if (TryBuildGas(ABILITY_ID::BUILD_EXTRACTOR, UNIT_TYPEID::ZERG_DRONE, base.pos)) { |
| 2023 | return true; |
| 2024 | } |
| 2025 | } |
| 2026 | } |
| 2027 | } |
| 2028 | return false; |
| 2029 | } |
| 2030 | |
| 2031 | void ZergMultiplayerBot::OnStep() { |
| 2032 |
nothing calls this directly
no test coverage detected