瀏覽代碼

Fix handling damage in bridge in fortress (#349)

Remove "Moat" obstacle on bridge hex from affected obstacles by creature,
when bridge is opened/destroyed.

Resolves: https://bugs.vcmi.eu/view.php?id=2577
FeniksFire 8 年之前
父節點
當前提交
b56d05b75b
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      lib/battle/CBattleInfoCallback.cpp

+ 6 - 0
lib/battle/CBattleInfoCallback.cpp

@@ -836,6 +836,12 @@ std::vector<std::shared_ptr<const CObstacleInstance>> CBattleInfoCallback::getAl
 				for(auto & i : battleGetAllObstaclesOnPos(otherHex, false))
 					affectedObstacles.push_back(i);
 		}
+		for(auto hex : stack->getHexes())
+			if(hex == ESiegeHex::GATE_BRIDGE)
+				if(battleGetGateState() == EGateState::OPENED || battleGetGateState() == EGateState::DESTROYED)
+					for(int i=0; i<affectedObstacles.size(); i++)
+						if(affectedObstacles.at(i)->obstacleType == CObstacleInstance::MOAT)
+							affectedObstacles.erase(affectedObstacles.begin()+i);
 	}
 	return affectedObstacles;
 }