2
0
Эх сурвалжийг харах

Add option to recalculate hitmap on tile reveal

Ivan Savenko 10 сар өмнө
parent
commit
01dd1858e4

+ 3 - 0
AI/Nullkiller/AIGateway.cpp

@@ -281,6 +281,9 @@ void AIGateway::tileRevealed(const std::unordered_set<int3> & pos)
 		for(const CGObjectInstance * obj : myCb->getVisitableObjs(tile))
 			addVisitableObj(obj);
 	}
+
+	if (nullkiller->settings->isUpdateHitmapOnTileReveal())
+		nullkiller->dangerHitMap->reset();
 }
 
 void AIGateway::heroExchangeStarted(ObjectInstanceID hero1, ObjectInstanceID hero2, QueryID query)

+ 2 - 0
AI/Nullkiller/Engine/Settings.cpp

@@ -37,6 +37,7 @@ namespace NKAI
 		pathfinderBucketSize(32),
 		allowObjectGraph(true),
 		useTroopsFromGarrisons(false),
+		updateHitmapOnTileReveal(false),
 		openMap(true),
 		useFuzzy(false)
 	{
@@ -55,6 +56,7 @@ namespace NKAI
 		retreatThresholdAbsolute = node["retreatThresholdAbsolute"].Float();
 		safeAttackRatio = node["safeAttackRatio"].Float();
 		allowObjectGraph = node["allowObjectGraph"].Bool();
+		updateHitmapOnTileReveal = node["updateHitmapOnTileReveal"].Bool();
 		openMap = node["openMap"].Bool();
 		useFuzzy = node["useFuzzy"].Bool();
 		useTroopsFromGarrisons = node["useTroopsFromGarrisons"].Bool();

+ 2 - 0
AI/Nullkiller/Engine/Settings.h

@@ -33,6 +33,7 @@ namespace NKAI
 		float safeAttackRatio;
 		bool allowObjectGraph;
 		bool useTroopsFromGarrisons;
+		bool updateHitmapOnTileReveal;
 		bool openMap;
 		bool useFuzzy;
 
@@ -51,6 +52,7 @@ namespace NKAI
 		int getPathfinderBucketSize() const { return pathfinderBucketSize; }
 		bool isObjectGraphAllowed() const { return allowObjectGraph; }
 		bool isGarrisonTroopsUsageAllowed() const { return useTroopsFromGarrisons; }
+		bool isUpdateHitmapOnTileReveal() const { return updateHitmapOnTileReveal; }
 		bool isOpenMap() const { return openMap; }
 		bool isUseFuzzy() const { return useFuzzy; }
 	};

+ 5 - 0
config/ai/nkai/nkai-settings.json

@@ -5,6 +5,7 @@
 		"mainHeroTurnDistanceLimit" : 10,
 		"scoutHeroTurnDistanceLimit" : 5,
 		"maxGoldPressure" : 0.3,
+		"updateHitmapOnTileReveal" : false,
 		"useTroopsFromGarrisons" : true,
 		"openMap": false,
 		"allowObjectGraph": false,
@@ -22,6 +23,7 @@
 		"mainHeroTurnDistanceLimit" : 10,
 		"scoutHeroTurnDistanceLimit" : 5,
 		"maxGoldPressure" : 0.3,
+		"updateHitmapOnTileReveal" : false,
 		"useTroopsFromGarrisons" : true,
 		"openMap": false,
 		"allowObjectGraph": false,
@@ -39,6 +41,7 @@
 		"mainHeroTurnDistanceLimit" : 10,
 		"scoutHeroTurnDistanceLimit" : 5,
 		"maxGoldPressure" : 0.3,
+		"updateHitmapOnTileReveal" : false,
 		"useTroopsFromGarrisons" : true,
 		"openMap": false,
 		"allowObjectGraph": false,
@@ -56,6 +59,7 @@
 		"mainHeroTurnDistanceLimit" : 10,
 		"scoutHeroTurnDistanceLimit" : 5,
 		"maxGoldPressure" : 0.3,
+		"updateHitmapOnTileReveal" : false,
 		"useTroopsFromGarrisons" : true,
 		"openMap": true,
 		"allowObjectGraph": false,
@@ -73,6 +77,7 @@
 		"mainHeroTurnDistanceLimit" : 10,
 		"scoutHeroTurnDistanceLimit" : 5,
 		"maxGoldPressure" : 0.3,
+		"updateHitmapOnTileReveal" : false,
 		"useTroopsFromGarrisons" : true,
 		"openMap": true,
 		"allowObjectGraph": false,