Browse Source

Nullkiller AI: add Analyzers folder, add BuildingBehavior

Andrii Danylchenko 4 years ago
parent
commit
de2361650b

+ 19 - 0
AI/Nullkiller/Analyzers/BuildAnalyzer.cpp

@@ -0,0 +1,19 @@
+/*
+* BuildAnalyzer.cpp, part of VCMI engine
+*
+* Authors: listed in file AUTHORS in main folder
+*
+* License: GNU General Public License v2.0 or later
+* Full text of license available in license.txt file, in main folder
+*
+*/
+#include "StdInc.h"
+#include "BuildAnalyzer.h"
+#include "lib/mapping/CMap.h" //for victory conditions
+
+extern boost::thread_specific_ptr<CCallback> cb;
+extern boost::thread_specific_ptr<VCAI> ai;
+
+void BuildAnalyzer::reset()
+{
+}

+ 22 - 0
AI/Nullkiller/Analyzers/BuildAnalyzer.h

@@ -0,0 +1,22 @@
+/*
+* BuildAnalyzer.h, part of VCMI engine
+*
+* Authors: listed in file AUTHORS in main folder
+*
+* License: GNU General Public License v2.0 or later
+* Full text of license available in license.txt file, in main folder
+*
+*/
+#pragma once
+
+#include "../VCAI.h"
+#include "../../../lib/ResourceSet.h"
+
+class BuildAnalyzer
+{
+private:
+	TResources requiredResources;
+
+public:
+	void reset();
+};

+ 0 - 0
AI/Nullkiller/Engine/DangerHitMapAnalyzer.cpp → AI/Nullkiller/Analyzers/DangerHitMapAnalyzer.cpp


+ 0 - 0
AI/Nullkiller/Engine/DangerHitMapAnalyzer.h → AI/Nullkiller/Analyzers/DangerHitMapAnalyzer.h


+ 38 - 0
AI/Nullkiller/Behaviors/BuildingBehavior.cpp

@@ -0,0 +1,38 @@
+/*
+* BuyArmyBehavior.cpp, part of VCMI engine
+*
+* Authors: listed in file AUTHORS in main folder
+*
+* License: GNU General Public License v2.0 or later
+* Full text of license available in license.txt file, in main folder
+*
+*/
+#include "StdInc.h"
+#include "BuildingBehavior.h"
+#include "../VCAI.h"
+#include "../AIhelper.h"
+#include "../AIUtility.h"
+#include "../Goals/BuyArmy.h"
+#include "../Goals/VisitTile.h"
+#include "lib/mapping/CMap.h" //for victory conditions
+#include "lib/CPathfinder.h"
+#include "../Engine/Nullkiller.h"
+
+extern boost::thread_specific_ptr<CCallback> cb;
+extern boost::thread_specific_ptr<VCAI> ai;
+extern FuzzyHelper * fh;
+
+using namespace Goals;
+
+std::string BuildingBehavior::toString() const
+{
+	return "Build";
+}
+
+Goals::TGoalVec BuildingBehavior::getTasks()
+{
+	Goals::TGoalVec tasks;
+
+
+	return tasks;
+}

+ 26 - 0
AI/Nullkiller/Behaviors/BuildingBehavior.h

@@ -0,0 +1,26 @@
+/*
+* BuildingBehavior.h, part of VCMI engine
+*
+* Authors: listed in file AUTHORS in main folder
+*
+* License: GNU General Public License v2.0 or later
+* Full text of license available in license.txt file, in main folder
+*
+*/
+#pragma once
+
+#include "lib/VCMI_Lib.h"
+#include "Behavior.h"
+#include "../AIUtility.h"
+
+class BuildingBehavior : public Behavior
+{
+public:
+	BuildingBehavior()
+	{
+	}
+
+	virtual Goals::TGoalVec getTasks() override;
+	virtual std::string toString() const override;
+};
+

+ 6 - 2
AI/Nullkiller/CMakeLists.txt

@@ -51,13 +51,15 @@ set(VCAI_SRCS
 		Goals/ExchangeSwapTownHeroes.cpp
 		Engine/Nullkiller.cpp
 		Engine/PriorityEvaluator.cpp
-		Engine/DangerHitMapAnalyzer.cpp
+		Analyzers/DangerHitMapAnalyzer.cpp
+		Analyzers/BuildAnalyzer.cpp
 		Behaviors/Behavior.cpp
 		Behaviors/CaptureObjectsBehavior.cpp
 		Behaviors/RecruitHeroBehavior.cpp
 		Behaviors/BuyArmyBehavior.cpp
 		Behaviors/DefenceBehavior.cpp
 		Behaviors/StartupBehavior.cpp
+		Behaviors/BuildingBehavior.cpp
 		main.cpp
 		VCAI.cpp
 )
@@ -119,13 +121,15 @@ set(VCAI_HEADERS
 		Goals/Goals.h
 		Engine/Nullkiller.h
 		Engine/PriorityEvaluator.h
-		Engine/DangerHitMapAnalyzer.h
+		Analyzers/DangerHitMapAnalyzer.h
+		Analyzers/BuildAnalyzer.h
 		Behaviors/Behavior.h
 		Behaviors/CaptureObjectsBehavior.h
 		Behaviors/RecruitHeroBehavior.h
 		Behaviors/BuyArmyBehavior.h
 		Behaviors/DefenceBehavior.h
 		Behaviors/StartupBehavior.h
+		Behaviors/BuildingBehavior.h
 		VCAI.h
 )
 

+ 2 - 1
AI/Nullkiller/Engine/Nullkiller.h

@@ -10,7 +10,8 @@
 #pragma once
 
 #include "PriorityEvaluator.h"
-#include "DangerHitMapAnalyzer.h"
+#include "../Analyzers/DangerHitMapAnalyzer.h"
+#include "../Analyzers/BuildAnalyzer.h"
 #include "../Goals/AbstractGoal.h"
 #include "../Behaviors/Behavior.h"