1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-12-01 23:12:49 +02:00

Merge pull request #2041 from IvanSavenko/bugfixing_for_hotfix

Fixes for 1.2.1
This commit is contained in:
Ivan Savenko
2023-04-24 18:13:00 +03:00
committed by GitHub
42 changed files with 217 additions and 114 deletions

View File

@@ -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);
@@ -6788,12 +6788,13 @@ void CGameHandler::runBattle()
{
//check for good morale
nextStackMorale = next->MoraleVal();
if(!next->hadMorale //only one extra move per turn possible
if( !battleResult.get()
&& !next->hadMorale
&& !next->defending
&& !next->waited()
&& !next->fear
&& next->alive()
&& nextStackMorale > 0)
&& next->alive()
&& nextStackMorale > 0)
{
auto diceSize = VLC->settings()->getVector(EGameSettings::COMBAT_GOOD_MORALE_DICE);
size_t diceIndex = std::min<size_t>(diceSize.size()-1, nextStackMorale);