1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-07-13 01:20:34 +02:00

Merge branch 'pr/4528' into develop

This commit is contained in:
Xilmi
2024-08-30 22:09:43 +02:00
2 changed files with 15 additions and 9 deletions

View File

@ -485,6 +485,8 @@ ReachabilityData BattleExchangeEvaluator::getExchangeUnits(
vstd::concatenate(allReachableUnits, turn == 0 ? reachabilityMap.at(hex) : getOneTurnReachableUnits(turn, hex)); vstd::concatenate(allReachableUnits, turn == 0 ? reachabilityMap.at(hex) : getOneTurnReachableUnits(turn, hex));
} }
if(!ap.attack.attacker->isTurret())
{
for(auto hex : ap.attack.attacker->getHexes()) for(auto hex : ap.attack.attacker->getHexes())
{ {
auto unitsReachingAttacker = turn == 0 ? reachabilityMap.at(hex) : getOneTurnReachableUnits(turn, hex); auto unitsReachingAttacker = turn == 0 ? reachabilityMap.at(hex) : getOneTurnReachableUnits(turn, hex);
@ -497,6 +499,7 @@ ReachabilityData BattleExchangeEvaluator::getExchangeUnits(
} }
} }
} }
}
vstd::removeDuplicates(allReachableUnits); vstd::removeDuplicates(allReachableUnits);

View File

@ -126,20 +126,23 @@ void HeroManager::update()
} }
std::sort(myHeroes.begin(), myHeroes.end(), scoreSort); std::sort(myHeroes.begin(), myHeroes.end(), scoreSort);
heroRoles.clear();
std::map<HeroPtr, HeroRole> newHeroRoles;
for(auto hero : myHeroes) for(auto hero : myHeroes)
{ {
if(hero->patrol.patrolling) if(hero->patrol.patrolling)
{ {
heroRoles[hero] = HeroRole::MAIN; newHeroRoles[hero] = HeroRole::MAIN;
} }
else else
{ {
heroRoles[hero] = (globalMainCount--) > 0 ? HeroRole::MAIN : HeroRole::SCOUT; newHeroRoles[hero] = (globalMainCount--) > 0 ? HeroRole::MAIN : HeroRole::SCOUT;
} }
} }
heroRoles = std::move(newHeroRoles);
for(auto hero : myHeroes) for(auto hero : myHeroes)
{ {
logAi->trace("Hero %s has role %s", hero->getNameTranslated(), heroRoles[hero] == HeroRole::MAIN ? "main" : "scout"); logAi->trace("Hero %s has role %s", hero->getNameTranslated(), heroRoles[hero] == HeroRole::MAIN ? "main" : "scout");