From b0e87f01edeeec3cda23ac7a1656cb0cbfb9b5b8 Mon Sep 17 00:00:00 2001 From: Xilmi Date: Fri, 17 Jan 2025 17:15:53 +0100 Subject: [PATCH] Fix cluster prio Clusters are now checked against all priority-tiers instead of just hunter-gather. --- AI/Nullkiller/Analyzers/ObjectClusterizer.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/AI/Nullkiller/Analyzers/ObjectClusterizer.cpp b/AI/Nullkiller/Analyzers/ObjectClusterizer.cpp index dd7173b74..8713d5bba 100644 --- a/AI/Nullkiller/Analyzers/ObjectClusterizer.cpp +++ b/AI/Nullkiller/Analyzers/ObjectClusterizer.cpp @@ -459,6 +459,8 @@ void ObjectClusterizer::clusterizeObject( continue; } + float priority = 0; + if(path.nodes.size() > 1) { auto blocker = getBlocker(path); @@ -475,7 +477,10 @@ void ObjectClusterizer::clusterizeObject( heroesProcessed.insert(path.targetHero); - float priority = priorityEvaluator->evaluate(Goals::sptr(Goals::ExecuteHeroChain(path, obj)), PriorityEvaluator::PriorityTier::HUNTER_GATHER); + for (int prio = PriorityEvaluator::PriorityTier::BUILDINGS; prio <= PriorityEvaluator::PriorityTier::DEFEND; ++prio) + { + priority = std::max(priority, priorityEvaluator->evaluate(Goals::sptr(Goals::ExecuteHeroChain(path, obj)), prio)); + } if(ai->settings->isUseFuzzy() && priority < MIN_PRIORITY) continue; @@ -498,7 +503,10 @@ void ObjectClusterizer::clusterizeObject( heroesProcessed.insert(path.targetHero); - float priority = priorityEvaluator->evaluate(Goals::sptr(Goals::ExecuteHeroChain(path, obj)), PriorityEvaluator::PriorityTier::HUNTER_GATHER); + for (int prio = PriorityEvaluator::PriorityTier::BUILDINGS; prio <= PriorityEvaluator::PriorityTier::DEFEND; ++prio) + { + priority = std::max(priority, priorityEvaluator->evaluate(Goals::sptr(Goals::ExecuteHeroChain(path, obj)), prio)); + } if (ai->settings->isUseFuzzy() && priority < MIN_PRIORITY) continue;