Procházet zdrojové kódy

Blocked movement of war machines in tactics phase

Ivan Savenko před 2 roky
rodič
revize
484f0a175a

+ 2 - 0
client/battle/BattleActionsController.cpp

@@ -525,6 +525,8 @@ bool BattleActionsController::actionIsLegal(PossiblePlayerBattleAction action, B
 	switch (action.get())
 	switch (action.get())
 	{
 	{
 		case PossiblePlayerBattleAction::CHOOSE_TACTICS_STACK:
 		case PossiblePlayerBattleAction::CHOOSE_TACTICS_STACK:
+			return (targetStack && targetStackOwned && targetStack->Speed() > 0);
+
 		case PossiblePlayerBattleAction::CREATURE_INFO:
 		case PossiblePlayerBattleAction::CREATURE_INFO:
 			return (targetStack && targetStackOwned);
 			return (targetStack && targetStackOwned);
 
 

+ 4 - 1
server/CGameHandler.cpp

@@ -1434,7 +1434,10 @@ int CGameHandler::moveStack(int stack, BattleHex dest)
 
 
 	ret = path.second;
 	ret = path.second;
 
 
-	int creSpeed = gs->curB->tacticDistance ? GameConstants::BFIELD_SIZE : curStack->Speed(0, true);
+	int creSpeed = curStack->Speed(0, true);
+
+	if (gs->curB->tacticDistance > 0 && creSpeed > 0)
+		creSpeed = GameConstants::BFIELD_SIZE;
 
 
 	auto isGateDrawbridgeHex = [&](BattleHex hex) -> bool
 	auto isGateDrawbridgeHex = [&](BattleHex hex) -> bool
 	{
 	{