1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-08-15 20:03:15 +02:00

Do not allow fleeing from cities without fort

This commit is contained in:
Ivan Savenko
2023-11-21 20:32:07 +02:00
parent e96cde291a
commit 07e7d6cc14

View File

@@ -282,7 +282,7 @@ bool CBattleInfoEssentials::battleCanFlee(const PlayerColor & player) const
return false;
//we are besieged defender
if(side == BattleSide::DEFENDER && battleGetSiegeLevel())
if(side == BattleSide::DEFENDER && getBattle()->getDefendedTown() != nullptr)
{
const auto * town = battleGetDefendedTown();
if(!town->hasBuilt(BuildingSubID::ESCAPE_TUNNEL))
@@ -357,7 +357,7 @@ bool CBattleInfoEssentials::battleCanSurrender(const PlayerColor & player) const
const auto side = playerToSide(player);
if(!side)
return false;
bool iAmSiegeDefender = (side.value() == BattleSide::DEFENDER && battleGetSiegeLevel());
bool iAmSiegeDefender = (side.value() == BattleSide::DEFENDER && getBattle()->getDefendedTown() != nullptr);
//conditions like for fleeing (except escape tunnel presence) + enemy must have a hero
return battleCanFlee(player) && !iAmSiegeDefender && battleHasHero(otherSide(side.value()));
}