diff --git a/AI/VCAI/VCAI.cpp b/AI/VCAI/VCAI.cpp index e1e5409d2..6ba96cf55 100644 --- a/AI/VCAI/VCAI.cpp +++ b/AI/VCAI/VCAI.cpp @@ -823,6 +823,7 @@ void VCAI::makeTurn() } markHeroAbleToExplore(primaryHero()); visitedHeroes.clear(); + ai->ah->resetPaths(); try { @@ -1007,6 +1008,9 @@ void VCAI::mainLoop() for (auto basicGoal : ultimateGoalsFromBasic[goalToRealize]) goalsToRemove.push_back(basicGoal); + // sometimes resource manager contains an elementar goal which is not able to execute anymore and just fails each turn. + ai->ah->notifyGoalCompleted(goalToRealize); + //we failed to realize best goal, but maybe others are still possible? } @@ -2056,6 +2060,10 @@ void VCAI::tryRealize(Goals::RecruitHero & g) //TODO try to free way to blocked town //TODO: adventure map tavern or prison? } + else + { + throw cannotFulfillGoalException("No town to recruit hero!"); + } } void VCAI::tryRealize(Goals::VisitTile & g)