From b74b5bb8af62407a821bbd529df41f84530b7fbc Mon Sep 17 00:00:00 2001 From: acki Date: Thu, 15 May 2025 16:09:22 -0400 Subject: [PATCH] closest zone rule --- src/modelec_strat/src/navigation_helper.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modelec_strat/src/navigation_helper.cpp b/src/modelec_strat/src/navigation_helper.cpp index 00ae4a2..7f4074b 100644 --- a/src/modelec_strat/src/navigation_helper.cpp +++ b/src/modelec_strat/src/navigation_helper.cpp @@ -412,7 +412,6 @@ namespace Modelec std::shared_ptr NavigationHelper::GetClosestDepositeZone( const PosMsg::SharedPtr& pos, int teamId, const std::vector& blacklistedId) { - // TODO : score std::shared_ptr closest_zone = nullptr; double score = std::numeric_limits::max(); auto posPoint = Point(pos->x, pos->y, pos->theta); @@ -423,7 +422,8 @@ namespace Modelec if (zone->GetTeam() == teamId && zone->RemainingPotPos() > 0 && blacklistedId.end() == std::find( blacklistedId.begin(), blacklistedId.end(), id)) { - double distance = Point::distance(posPoint, zone->GetPosition()); + auto zonePoint = zone->GetNextPotPos().GetTakeBasePosition(); + double distance = Point::distance(posPoint, zonePoint); double enemy_distance = Point::distance(enemyPos, zone->GetPosition()); double s = distance + enemy_distance * factor_close_enemy_; if (s < score)