mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	Fixed AI trying to visit tile already occupied by different hero, including #1902.
This commit is contained in:
		| @@ -715,7 +715,12 @@ TGoalVec VisitTile::getAllPossibleSubgoals() | ||||
| 	{ | ||||
| 		auto obj = frontOrNull(cb->getVisitableObjs(tile)); | ||||
| 		if (obj && obj->ID == Obj::HERO && obj->tempOwner == ai->playerID) //our own hero stands on that tile | ||||
| 			ret.push_back (sptr(Goals::VisitTile(tile).sethero(dynamic_cast<const CGHeroInstance *>(obj)).setisElementar(true))); | ||||
| 		{ | ||||
| 			if (hero.get(true) && hero->id == obj->id) //if it's assigned hero, visit tile. If it's different hero, we can't visit tile now | ||||
| 				ret.push_back(sptr(Goals::VisitTile(tile).sethero(dynamic_cast<const CGHeroInstance *>(obj)).setisElementar(true))); | ||||
| 			else | ||||
| 				throw cannotFulfillGoalException("Tile is already occupied by another hero "); //FIXME: we should give up this tile earlier | ||||
| 		} | ||||
| 		else | ||||
| 			ret.push_back (sptr(Goals::ClearWayTo(tile))); | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user