When an enemy is near our city that currently has a hero hiding in it, we don't buy a hero without army as that one would be forced to wait outside and likely be killed.
@@ -97,6 +97,10 @@ Goals::TGoalVec RecruitHeroBehavior::decompose(const Nullkiller * ai) const
for(auto hero : availableHeroes)
{
+ if ((town->visitingHero || town->garrisonHero)
+ && closestThreat < 0
+ && hero->getArmyCost() < GameConstants::HERO_GOLD_COST / 3.0)
+ continue;
auto score = ai->heroManager->evaluateHero(hero);
if(score > minScoreToHireMain)