Pārlūkot izejas kodu

Bad morale can no longer happen after waiting

Ivan Savenko 2 gadi atpakaļ
vecāks
revīzija
d9939f0918
1 mainītis faili ar 2 papildinājumiem un 2 dzēšanām
  1. 2 2
      server/CGameHandler.cpp

+ 2 - 2
server/CGameHandler.cpp

@@ -6600,9 +6600,9 @@ void CGameHandler::runBattle()
 			if(!removeGhosts.changedStacks.empty())
 				sendAndApply(&removeGhosts);
 
-			//check for bad morale => freeze
+			// check for bad morale => freeze
 			int nextStackMorale = next->MoraleVal();
-			if (nextStackMorale < 0)
+			if(!next->hadMorale && !next->waited() && nextStackMorale < 0)
 			{
 				auto diceSize = VLC->settings()->getVector(EGameSettings::COMBAT_BAD_MORALE_DICE);
 				size_t diceIndex = std::min<size_t>(diceSize.size()-1, -nextStackMorale);