diff --git a/client/battle/BattleActionsController.cpp b/client/battle/BattleActionsController.cpp index 23842e9c5..2f48f2492 100644 --- a/client/battle/BattleActionsController.cpp +++ b/client/battle/BattleActionsController.cpp @@ -525,6 +525,8 @@ bool BattleActionsController::actionIsLegal(PossiblePlayerBattleAction action, B switch (action.get()) { case PossiblePlayerBattleAction::CHOOSE_TACTICS_STACK: + return (targetStack && targetStackOwned && targetStack->Speed() > 0); + case PossiblePlayerBattleAction::CREATURE_INFO: return (targetStack && targetStackOwned); diff --git a/server/CGameHandler.cpp b/server/CGameHandler.cpp index d8fadc640..9643b3bef 100644 --- a/server/CGameHandler.cpp +++ b/server/CGameHandler.cpp @@ -1434,7 +1434,10 @@ int CGameHandler::moveStack(int stack, BattleHex dest) 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 {