Преглед на файлове

Bad morale can no longer happen after waiting

Ivan Savenko преди 2 години
родител
ревизия
d9939f0918
променени са 1 файла, в които са добавени 2 реда и са изтрити 2 реда
  1. 2 2
      server/CGameHandler.cpp

+ 2 - 2
server/CGameHandler.cpp

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