MCPcopy Create free account
hub / github.com/Blizzard/s2client-api / TryBuildStructureRandom

Method TryBuildStructureRandom

examples/common/bot_examples.cc:2544–2564  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2542}
2543
2544bool TerranMultiplayerBot::TryBuildStructureRandom(AbilityID ability_type_for_structure, UnitTypeID unit_type) {
2545 float rx = GetRandomScalar();
2546 float ry = GetRandomScalar();
2547 Point2D build_location = Point2D(staging_location_.x + rx * 15, staging_location_.y + ry * 15);
2548
2549 Units units = Observation()->GetUnits(Unit::Self, IsStructure(Observation()));
2550 float distance = std::numeric_limits<float>::max();
2551 for (const auto& u : units) {
2552 if (u.unit_type == UNIT_TYPEID::TERRAN_SUPPLYDEPOTLOWERED) {
2553 continue;
2554 }
2555 float d = Distance2D(u.pos, build_location);
2556 if (d < distance) {
2557 distance = d;
2558 }
2559 }
2560 if (distance < 6) {
2561 return false;
2562 }
2563 return TryBuildStructure(ability_type_for_structure, unit_type, build_location);
2564}
2565
2566void TerranMultiplayerBot::ManageUpgrades() {
2567 const ObservationInterface* observation = Observation();

Callers

nothing calls this directly

Calls 6

GetRandomScalarFunction · 0.85
Point2DClass · 0.85
ObservationClass · 0.85
IsStructureClass · 0.85
Distance2DFunction · 0.85
GetUnitsMethod · 0.80

Tested by

no test coverage detected