Dydzio 7 年之前
父节点
当前提交
a7c2d03c87
共有 4 个文件被更改,包括 15 次插入20 次删除
  1. 9 12
      AI/VCAI/FuzzyEngines.cpp
  2. 4 6
      AI/VCAI/FuzzyEngines.h
  3. 1 1
      AI/VCAI/FuzzyHelper.cpp
  4. 1 1
      AI/VCAI/FuzzyHelper.h

+ 9 - 12
AI/VCAI/FuzzyEngines.cpp

@@ -342,7 +342,7 @@ void HeroMovementGoalEngineBase::setSharedFuzzyVariables(Goals::AbstractGoal & g
 	}
 }
 
-GetObjEngine::GetObjEngine()
+VisitObjEngine::VisitObjEngine()
 {
 	try
 	{
@@ -367,14 +367,12 @@ GetObjEngine::GetObjEngine()
 	configure();
 }
 
-float GetObjEngine::evaluate(Goals::AbstractGoal & goal)
+float VisitObjEngine::evaluate(Goals::VisitObj & goal)
 {
-	auto g = dynamic_cast<Goals::VisitObj &>(goal);
-
-	if(!g.hero)
+	if(!goal.hero)
 		return 0;
 
-	auto obj = ai->myCb->getObj(ObjectInstanceID(g.objid));
+	auto obj = ai->myCb->getObj(ObjectInstanceID(goal.objid));
 
 
 	boost::optional<int> objValueKnownByAI = MapObjectsEvaluator::getInstance().getObjectValue(obj->ID, obj->subID);
@@ -412,11 +410,10 @@ VisitTileEngine::VisitTileEngine() //so far no VisitTile-specific variables that
 	configure();
 }
 
-float VisitTileEngine::evaluate(Goals::AbstractGoal & goal)
+float VisitTileEngine::evaluate(Goals::VisitTile & goal)
 {
-	auto g = dynamic_cast<Goals::VisitTile &>(goal);
 	//we assume that hero is already set and we want to choose most suitable one for the mission
-	if(!g.hero)
+	if(!goal.hero)
 		return 0;
 
 	//assert(cb->isInTheMap(g.tile));
@@ -426,12 +423,12 @@ float VisitTileEngine::evaluate(Goals::AbstractGoal & goal)
 	try
 	{
 		engine.process();
-		g.priority = value->getValue();
+		goal.priority = value->getValue();
 	}
 	catch(fl::Exception & fe)
 	{
 		logAi->error("evaluate VisitTile: %s", fe.getWhat());
 	}
-	assert(g.priority >= 0);
-	return g.priority;
+	assert(goal.priority >= 0);
+	return goal.priority;
 }

+ 4 - 6
AI/VCAI/FuzzyEngines.h

@@ -42,8 +42,6 @@ class HeroMovementGoalEngineBase : public engineBase //in future - maybe derive
 public:
 	HeroMovementGoalEngineBase();
 
-	virtual float evaluate(Goals::AbstractGoal & goal) = 0;
-
 protected:
 	void setSharedFuzzyVariables(Goals::AbstractGoal & goal);
 
@@ -61,14 +59,14 @@ class VisitTileEngine : public HeroMovementGoalEngineBase
 {
 public:
 	VisitTileEngine();
-	float evaluate(Goals::AbstractGoal & goal) override;
+	float evaluate(Goals::VisitTile & goal);
 };
 
-class GetObjEngine : public HeroMovementGoalEngineBase
+class VisitObjEngine : public HeroMovementGoalEngineBase
 {
 public:
-	GetObjEngine();
-	float evaluate(Goals::AbstractGoal & goal) override;
+	VisitObjEngine();
+	float evaluate(Goals::VisitObj & goal);
 protected:
 	fl::InputVariable * objectValue;
 };

+ 1 - 1
AI/VCAI/FuzzyHelper.cpp

@@ -68,7 +68,7 @@ float FuzzyHelper::evaluate(Goals::VisitTile & g)
 }
 float FuzzyHelper::evaluate(Goals::VisitObj & g)
 {
-	return getObjEngine.evaluate(g);
+	return visitObjEngine.evaluate(g);
 }
 float FuzzyHelper::evaluate(Goals::VisitHero & g)
 {

+ 1 - 1
AI/VCAI/FuzzyHelper.h

@@ -17,7 +17,7 @@ class FuzzyHelper
 public:
 	TacticalAdvantageEngine tacticalAdvantageEngine;
 	VisitTileEngine visitTileEngine;
-	GetObjEngine getObjEngine;
+	VisitObjEngine visitObjEngine;
 
 	float evaluate(Goals::Explore & g);
 	float evaluate(Goals::RecruitHero & g);