diff --git a/server/CGameHandler.cpp b/server/CGameHandler.cpp index fbc0302b0..e50f2d44e 100644 --- a/server/CGameHandler.cpp +++ b/server/CGameHandler.cpp @@ -4100,6 +4100,10 @@ void CGameHandler::handleSpellCasting( int spellID, int spellLvl, BattleHex dest pseudoBonus.val = spellLvl; pseudoBonus.turnsRemain = gs->curB->calculateSpellDuration(spell, caster, stackSpellPower ? stackSpellPower : usedSpellPower); CStack::stackEffectToFeature(sse.effect, pseudoBonus); + if (spellID == Spells::SHIELD || spellID == Spells::AIR_SHIELD) + { + sse.effect.back().val = (100 - sse.effect.back().val); //fix to original config: shiled should display damage reduction + } if (spellID == Spells::BIND && stack)//bind { sse.effect.back().additionalInfo = stack->ID; //we need to know who casted Bind