From 5f212908a152e76c314e55d8b7c60cf2303b97eb Mon Sep 17 00:00:00 2001 From: Meridian Date: Fri, 2 Feb 2024 08:31:50 +0100 Subject: [PATCH] Experimental: allow zombifying hostiles (by player) --- src/Savegame/BattleUnit.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/Savegame/BattleUnit.cpp b/src/Savegame/BattleUnit.cpp index 414c9d93c7..f419b6d888 100644 --- a/src/Savegame/BattleUnit.cpp +++ b/src/Savegame/BattleUnit.cpp @@ -1663,7 +1663,22 @@ int BattleUnit::damage(Position relative, int damage, const RuleDamageType *type && !specialDamageTransform->getZombieUnit(this).empty() && getArmor()->getZombiImmune() == false) { - specialDamageTransformChance = getOriginalFaction() != FACTION_HOSTILE ? specialDamageTransform->getZombieUnitChance() : 0; + if (attack.attacker) + { + if (getOriginalFaction() == FACTION_HOSTILE && attack.attacker->getOriginalFaction() == FACTION_HOSTILE) + { + // (mind-controlled) chryssalid on snakeman action still not allowed + specialDamageTransformChance = 0; + } + else + { + specialDamageTransformChance = specialDamageTransform->getZombieUnitChance(); + } + } + else + { + specialDamageTransformChance = getOriginalFaction() != FACTION_HOSTILE ? specialDamageTransform->getZombieUnitChance() : 0; + } } else {