mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-26 22:57:00 +02:00
50 lines
1.1 KiB
C++
50 lines
1.1 KiB
C++
/*
|
|
* ExplorationHelper.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 "../AIUtility.h"
|
|
|
|
#include "../../../lib/GameConstants.h"
|
|
#include "../../../lib/VCMI_Lib.h"
|
|
#include "../Goals/AbstractGoal.h"
|
|
|
|
namespace NKAI
|
|
{
|
|
|
|
class ExplorationHelper
|
|
{
|
|
private:
|
|
const CGHeroInstance * hero;
|
|
int sightRadius;
|
|
float bestValue;
|
|
Goals::TSubgoal bestGoal;
|
|
int3 bestTile;
|
|
int bestTilesDiscovered;
|
|
const Nullkiller * ai;
|
|
CCallback * cbp;
|
|
const TeamState * ts;
|
|
int3 ourPos;
|
|
bool allowDeadEndCancellation;
|
|
bool useCPathfinderAccessibility;
|
|
|
|
public:
|
|
ExplorationHelper(const CGHeroInstance * hero, const Nullkiller * ai, bool useCPathfinderAccessibility = false);
|
|
Goals::TSubgoal makeComposition() const;
|
|
bool scanSector(int scanRadius);
|
|
bool scanMap();
|
|
int howManyTilesWillBeDiscovered(const int3 & pos) const;
|
|
|
|
private:
|
|
void scanTile(const int3 & tile);
|
|
bool hasReachableNeighbor(const int3 & pos) const;
|
|
};
|
|
|
|
}
|