1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00

nullkiller2: Replace hasBuiltSomeTradeBuilding() with hasBuiltResourceMarketplace()

This commit is contained in:
Mircea TheHonestCTO
2025-11-18 18:18:35 +01:00
parent 3c7abd988e
commit 1900e03b47
7 changed files with 11 additions and 18 deletions

View File

@@ -645,7 +645,7 @@ bool Nullkiller::handleTrading()
ObjectInstanceID marketId; ObjectInstanceID marketId;
for (auto town : cb->getTownsInfo()) for (auto town : cb->getTownsInfo())
{ {
if (town->hasBuiltSomeTradeBuilding()) if (town->hasBuiltResourceMarketplace())
{ {
marketId = town->id; marketId = town->id;
} }

View File

@@ -1578,7 +1578,7 @@ float PriorityEvaluator::evaluate(Goals::TSubgoal task, int priorityTier)
logAi->trace("Should make sure to build market-place instead of %s", task->toString()); logAi->trace("Should make sure to build market-place instead of %s", task->toString());
for (auto town : ai->cb->getTownsInfo()) for (auto town : ai->cb->getTownsInfo())
{ {
if (!town->hasBuiltSomeTradeBuilding()) if (!town->hasBuiltResourceMarketplace())
return 0; return 0;
} }
} }

View File

@@ -250,9 +250,7 @@ void Nullkiller::invalidatePathfinderData()
void Nullkiller::updateState() void Nullkiller::updateState()
{ {
#if NK2AI_TRACE_LEVEL >= 1
logAi->info("PERFORMANCE: AI updateState started"); logAi->info("PERFORMANCE: AI updateState started");
#endif
makingTurnInterruption.interruptionPoint(); makingTurnInterruption.interruptionPoint();
std::unique_lock lockGuard(aiStateMutex); std::unique_lock lockGuard(aiStateMutex);
@@ -309,8 +307,7 @@ void Nullkiller::updateState()
armyManager->update(); armyManager->update();
#if NK2AI_TRACE_LEVEL >= 1 if(const auto timeElapsedMs = timeElapsed(start); timeElapsedMs > 999)
if(const auto timeElapsedMs = timeElapsed(start); timeElapsedMs > 499)
{ {
logAi->warn("PERFORMANCE: AI updateState took %ld ms", timeElapsedMs); logAi->warn("PERFORMANCE: AI updateState took %ld ms", timeElapsedMs);
} }
@@ -318,7 +315,6 @@ void Nullkiller::updateState()
{ {
logAi->info("PERFORMANCE: AI updateState took %ld ms", timeElapsedMs); logAi->info("PERFORMANCE: AI updateState took %ld ms", timeElapsedMs);
} }
#endif
} }
bool Nullkiller::isHeroLocked(const CGHeroInstance * hero) const bool Nullkiller::isHeroLocked(const CGHeroInstance * hero) const
@@ -382,14 +378,10 @@ void Nullkiller::makeTurn()
decompose(tasks, sptr(ExplorationBehavior()), MAX_DEPTH); decompose(tasks, sptr(ExplorationBehavior()), MAX_DEPTH);
TTaskVec selectedTasks; TTaskVec selectedTasks;
#if NK2AI_TRACE_LEVEL >= 1
int prioOfTask = 0; int prioOfTask = 0;
#endif
for (int prio = PriorityEvaluator::PriorityTier::INSTAKILL; prio <= PriorityEvaluator::PriorityTier::MAX_PRIORITY_TIER; ++prio) for (int prio = PriorityEvaluator::PriorityTier::INSTAKILL; prio <= PriorityEvaluator::PriorityTier::MAX_PRIORITY_TIER; ++prio)
{ {
#if NK2AI_TRACE_LEVEL >= 1
prioOfTask = prio; prioOfTask = prio;
#endif
selectedTasks = buildPlan(tasks, prio); selectedTasks = buildPlan(tasks, prio);
if (!selectedTasks.empty() || settings->isUseFuzzy()) if (!selectedTasks.empty() || settings->isUseFuzzy())
break; break;

View File

@@ -1628,7 +1628,7 @@ float PriorityEvaluator::evaluate(Goals::TSubgoal task, int priorityTier)
logAi->trace("Should make sure to build market-place instead of %s", task->toString()); logAi->trace("Should make sure to build market-place instead of %s", task->toString());
for (auto town : aiNk->cc->getTownsInfo()) for (auto town : aiNk->cc->getTownsInfo())
{ {
if (!town->hasBuiltSomeTradeBuilding()) if (!town->hasBuiltResourceMarketplace())
return 0; return 0;
} }
} }

View File

@@ -20,7 +20,7 @@ bool ResourceTrader::trade(BuildAnalyzer & buildAnalyzer, CCallback & cc, const
// Are those used anywhere? To inspect. // Are those used anywhere? To inspect.
for(const auto * const town : cc.getTownsInfo()) for(const auto * const town : cc.getTownsInfo())
{ {
if(town->hasBuiltSomeTradeBuilding()) if(town->hasBuiltResourceMarketplace())
{ {
marketId = town->id; marketId = town->id;
break; break;

View File

@@ -651,7 +651,7 @@ BoatId CGTownInstance::getBoatType() const
int CGTownInstance::getMarketEfficiency() const int CGTownInstance::getMarketEfficiency() const
{ {
if(!hasBuiltSomeTradeBuilding()) if(!hasBuiltResourceMarketplace())
return 0; return 0;
const PlayerState *p = cb->getPlayerState(tempOwner); const PlayerState *p = cb->getPlayerState(tempOwner);
@@ -659,7 +659,7 @@ int CGTownInstance::getMarketEfficiency() const
int marketCount = 0; int marketCount = 0;
for(const CGTownInstance *t : p->getTowns()) for(const CGTownInstance *t : p->getTowns())
if(t->hasBuiltSomeTradeBuilding()) if(t->hasBuiltResourceMarketplace())
marketCount++; marketCount++;
return marketCount; return marketCount;
@@ -885,9 +885,10 @@ const CArmedInstance * CGTownInstance::getUpperArmy() const
return this; return this;
} }
bool CGTownInstance::hasBuiltSomeTradeBuilding() const bool CGTownInstance::hasBuiltResourceMarketplace() const
{ {
return availableModes().empty() ? false : true; const auto modes = availableModes();
return std::find(modes.begin(), modes.end(), EMarketMode::RESOURCE_RESOURCE) != modes.end();
} }
bool CGTownInstance::hasBuilt(BuildingSubID::EBuildingSubID buildingID) const bool CGTownInstance::hasBuilt(BuildingSubID::EBuildingSubID buildingID) const

View File

@@ -160,7 +160,7 @@ public:
GrowthInfo getGrowthInfo(int level) const; GrowthInfo getGrowthInfo(int level) const;
bool hasFort() const; bool hasFort() const;
bool hasCapitol() const; bool hasCapitol() const;
bool hasBuiltSomeTradeBuilding() const; bool hasBuiltResourceMarketplace() const;
//checks if special building with type buildingID is constructed //checks if special building with type buildingID is constructed
bool hasBuilt(BuildingSubID::EBuildingSubID buildingID) const; bool hasBuilt(BuildingSubID::EBuildingSubID buildingID) const;
//checks if building is constructed and town has same subID //checks if building is constructed and town has same subID