diff --git a/AI/VCAI/Goals/GatherTroops.cpp b/AI/VCAI/Goals/GatherTroops.cpp index 10b15147d..8292fb9c2 100644 --- a/AI/VCAI/Goals/GatherTroops.cpp +++ b/AI/VCAI/Goals/GatherTroops.cpp @@ -115,6 +115,7 @@ TGoalVec GatherTroops::getAllPossibleSubgoals() }*/ } } + for(auto obj : ai->visitableObjs) { auto d = dynamic_cast(obj); @@ -135,6 +136,12 @@ TGoalVec GatherTroops::getAllPossibleSubgoals() } } + CreatureID creID = CreatureID(objid); + + vstd::erase_if(solutions, [&](TSubgoal goal)->bool{ + return goal->hero && !goal->hero->getSlotFor(creID).validSlot() && !goal->hero->getFreeSlot().validSlot(); + }); + return solutions; //TODO: exchange troops between heroes }