浏览代码

Nullkiller: hero chain stabilisation

Andrii Danylchenko 4 年之前
父节点
当前提交
ff57a52001
共有 2 个文件被更改,包括 3 次插入12 次删除
  1. 1 2
      AI/Nullkiller/Behaviors/CaptureObjectsBehavior.cpp
  2. 2 10
      AI/Nullkiller/Engine/PriorityEvaluator.cpp

+ 1 - 2
AI/Nullkiller/Behaviors/CaptureObjectsBehavior.cpp

@@ -43,8 +43,7 @@ Goals::TGoalVec CaptureObjectsBehavior::getTasks() {
 			vstd::erase_if(waysToVisitObj, [objToVisit](Goals::TSubgoal goal) -> bool
 			{
 				return !goal->hero.validAndSet() 
-					|| !shouldVisit(goal->hero, objToVisit)
-					|| goal->evaluationContext.danger * 1.5 > goal->hero->getTotalStrength();
+					|| !shouldVisit(goal->hero, objToVisit);
 			});
 
 			if(waysToVisitObj.empty())

+ 2 - 10
AI/Nullkiller/Engine/PriorityEvaluator.cpp

@@ -302,17 +302,9 @@ float PriorityEvaluator::evaluate(Goals::TSubgoal task)
 
 	const CGObjectInstance * target = cb->getObj((ObjectInstanceID)objId, false);
 	
-	auto estimateLoss = [](double strength, double danger) -> double
-	{
-		auto ratio = danger / strength;
-
-		return ratio * ratio * ratio * strength;
-	};
-
 	auto hero = heroPtr.get();
-	auto armyTotal = hero->getTotalStrength();
-	auto armyLoss = estimateLoss(armyTotal, task->evaluationContext.danger);
-	double armyLossPersentage = armyLoss / (double)armyTotal;
+	auto armyTotal = task->evaluationContext.heroStrength;
+	double armyLossPersentage = task->evaluationContext.armyLoss / (double)armyTotal;
 	int32_t goldReward = getGoldReward(target, hero);
 	uint64_t armyReward = getArmyReward(target, hero);
 	double result = 0;